Viewing: predbat.log

2026-08-18 10:05:04.526022: Marginal costs baseline metric (no standing charge): 283.0256
2026-08-18 10:05:04.942641: Marginal energy costs matrix computed: min=19.75 max=32.0
2026-08-18 10:05:05.130423: Rate array import [{'start': 605, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 605, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:05:05.131500: - Your estimated bill for today is £1.58 and tomorrow is £1.91
2026-08-18 10:05:05.131555: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:05:05.131584: - The battery is currently at 71% and is in eco mode for the next 13 hours.
2026-08-18 10:05:05.137589: - For the next 48 hours there will be no solar generation.
2026-08-18 10:05:05.137677: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 10:05:05.137706: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:05:05.137777: 
2026-08-18 10:05:05.248581: Plan calculation took 2.12 seconds
2026-08-18 10:05:05.252139: No high rate period found
2026-08-18 10:05:05.316100: Import threshold used for optimisation was 8.0p
2026-08-18 10:05:05.377101: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:05:05.384765: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 71%, target 100%
2026-08-18 10:05:05.384916: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:05:05.384978: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:05:05.385235: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:05:05.385349: No export window planned
2026-08-18 10:05:05.385491: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:05:05.385532: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:05:05.385710: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:05:05.385938: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:05:05.386056: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:05:05.386190: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:05:05.386328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.386445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.386535: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.386664: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.386750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.386855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.386940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:05:05.387583: Inverter 0 count register writes 0
2026-08-18 10:05:05.406273: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 10:05:05.412267: Total inverter register writes now 867
2026-08-18 10:05:05.450308: Info: Completed run status Demand
2026-08-18 10:05:05.459622: Info: record_status Demand
2026-08-18 10:05:05.469786: Saved current settings to /config/predbat_config.json
2026-08-18 10:05:05.470000: Compare, best tariff: current metric 129.87p
2026-08-18 10:05:10.126710: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0064 val_mae=0.0027 kWh val_bias=-0.0011 kWh (-2.5%) combined=0.0023 kWh ema_combined=0.0019 kWh
2026-08-18 10:05:28.019080: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0025 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-18 10:05:44.263418: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-18 10:05:48.644413: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:05:48.644751: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:05:48.644804: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:05:48.645163: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:05:48.645219: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:05:48.645243: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:05:48.645354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:05:58.973512: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 10:06:12.830577: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 10:06:26.928269: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0011 kWh (-2.5%) combined=0.0021 kWh ema_combined=0.0017 kWh
2026-08-18 10:06:43.037285: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0058 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 10:06:58.079169: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-18 10:07:13.054773: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0023 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-18 10:07:26.752805: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0050 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-18 10:07:42.386668: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0050 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 10:07:49.039373: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:07:49.039751: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:07:49.039875: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:07:49.040240: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:07:49.040375: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:07:49.040475: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:07:49.040559: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:07:56.533245: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0048 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 10:08:10.916973: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0013 kWh
2026-08-18 10:08:24.575165: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 10:08:24.576277: ML Predictor: Restored best weights from epoch with val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.6%)
2026-08-18 10:08:24.576585: ML Predictor: Training complete, final val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.6%)
2026-08-18 10:08:25.576473: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=-0.0003 kWh (-0.6%) [drift vs teacher-forced: +0.0004 kWh]
2026-08-18 10:08:25.582198: ML Predictor: Curriculum training complete, final val_mae=0.0021 kWh
2026-08-18 10:08:25.591018: ML Component: Training successful, val_mae=0.0021 kWh
2026-08-18 10:08:25.705843: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 10:08:25.710359: ML Component: Generating predictions load data age 59.0 days, 17226 data points
2026-08-18 10:08:25.829694: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0339 max_dow {0: 0.08250277803424333, 1: 0.0922861109920674, 2: 0.10978749959506096, 3: 0.10331875034738332, 4: 0.1381031253574416, 5: 0.10191944486482275, 6: 0.10384444441977475}
2026-08-18 10:08:26.353328: ML Component: Generated 576 predictions (total 25.94 kWh over 48h)
2026-08-18 10:08:26.403367: ML Component: Prediction cycle completed
2026-08-18 10:08:26.507161: ML Component: Saved 17226 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 10:09:49.395339: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:09:49.395566: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:09:49.395600: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:09:49.395728: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:09:49.395765: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:09:49.395786: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:09:49.395804: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:10:00.507345: --------------- PredBat - update at 2026-08-18 10:10:00+01:00 with clock skew 0 minutes, minutes now 610
2026-08-18 10:10:00.508244: Saved current settings to /config/predbat_config.json
2026-08-18 10:10:00.508372: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 10:10:00.508455: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:10:00.508561: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:10:00.529309: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:10:00.529426: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:10:00.529584: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:10:00.530456: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:10:00.530613: Predbat mode is set to Control charge & discharge
2026-08-18 10:10:00.704997: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:10:00.705138: Using load_power data to fill gaps in load_today data
2026-08-18 10:10:01.532945: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:10:01.533351: Zero load period starting at 2026-08-17T10:54:00+0100 (1396 minutes) for 189 minutes with base value 208.025
2026-08-18 10:10:01.534437: Processing 721 30-minute periods for power integration
2026-08-18 10:10:01.721895: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:10:01.722009: Car charging hold False, threshold 6.0kWh
2026-08-18 10:10:01.722067: Current data so far today: load 4.85kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:10:01.736194: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:10:01.736278: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:10:01.736941: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:10:01.737009: Standing charge is set to 46.63p
2026-08-18 10:10:01.829301: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:10:01.829545: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:10:01.829727: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:10:01.830807: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:10:01.830910: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:10:01.836285: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:10:01.836994: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:10:01.879840: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:10:01.879979: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:10:01.881243: High export rate found rates in range 99p to -99p
2026-08-18 10:10:01.909744: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:10:01.909845: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:10:01.920564: Battery level now 11.36kWh, -1hr ago 11.83kWh, at midnight 6.84kWh, battery value change in the last hour -3.24p, change today 31.07p, rate_forward 6.87p
2026-08-18 10:10:01.920977: 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-18 10:10:01.983952: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:10:01.984103: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:10:02.053563: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:10:02.082581: Today's load divergence 91.9%, in-day adjustment 92.52%, damping 0.95x, yesterday 92.68% today 92.31% blend 57.64%
2026-08-18 10:10:02.082870: Today's predicted so far 5.97kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 5.97kWh forecast extra.
2026-08-18 10:10:02.082907: Today's actual load so far 4.76kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 10:10:02.113588: Inverter 0: Type SK Sunsynk
2026-08-18 10:10:02.113658: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:10:02.113802: Reserve min: 7%, battery_min: 7%
2026-08-18 10:10:02.113850: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:10:02.114113: Inverter 0 SoC: 11.05kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 3278W, current battery voltage 51.2V, grid power -50W, load power 3294W, PV Power 0W
2026-08-18 10:10:02.114365: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:10:02.114453: Inverter 0 scheduled charge enable is False
2026-08-18 10:10:02.114482: Inverter 0 charge windows currently []
2026-08-18 10:10:02.114512: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:10:02.114605: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:10:02.114709: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:10:02.114757: Inverter 0 scheduled discharge enable is False
2026-08-18 10:10:02.114870: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:10:02.114960: Inverter 0 discharge windows currently []
2026-08-18 10:10:02.114989: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:10:02.115005: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:10:02.115024: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:10:02.162229: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:10:02.162314: Plan was last updated on 2026-08-18 10:00:00+01:00 and is now 10.0 minutes old
2026-08-18 10:10:02.162504: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:10:02.162549: Best export window [  ]
2026-08-18 10:10:02.163178: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:10:02.165715: Load divergence over 8.0 hours mean 424.82W, min 345.0W, max 712.8W, std dev 62.0W, divergence 7.3%
2026-08-18 10:10:02.183241: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:10:02.183340: LoadML is_calculating False
2026-08-18 10:10:02.183396: Creating pool of 12 processes to match your CPU count
2026-08-18 10:10:02.288033: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 614.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.31kWh, PV 0.0kWh
2026-08-18 10:10:02.405573: Battery has 13.58 hours left - now at 11.05kWh
2026-08-18 10:10:02.450416: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 640.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.52kWh, PV 0.0kWh
2026-08-18 10:10:02.530879: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 347.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.52kWh, PV 0.0kWh
2026-08-18 10:10:02.606839: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 335.63p, metric_keep 0kWh, min_soc 1.48kWh @ 08-18 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-18 10:10:02.606932: Saving plan best values to HA entities
2026-08-18 10:10:02.762766: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:10:02.767778: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:10:02.773199: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.33kWh, house 0.0kWh, export 0.0kWh, metric 335.63p, metric10 347.25p
2026-08-18 10:10:02.846625: Marginal costs baseline metric (no standing charge): 288.9996
2026-08-18 10:10:03.121900: Marginal energy costs matrix computed: min=25.54 max=32.72
2026-08-18 10:10:03.210150: Rate array import [{'start': 610, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 610, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:10:03.210921: - Your estimated bill for today is £1.58 and tomorrow is £1.93
2026-08-18 10:10:03.210972: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:10:03.210995: - The battery is currently at 69% and is in eco mode for the next 13 hours.
2026-08-18 10:10:03.211013: - For the next 48 hours there will be no solar generation.
2026-08-18 10:10:03.211037: - You will reach a minimum of 9% battery in 13 hours.
2026-08-18 10:10:03.211074: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:10:03.211092: 
2026-08-18 10:10:03.270987: Plan calculation took 1.11 seconds
2026-08-18 10:10:03.274520: No high rate period found
2026-08-18 10:10:03.322286: Import threshold used for optimisation was 8.0p
2026-08-18 10:10:03.372642: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:10:03.378408: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 69%, target 100%
2026-08-18 10:10:03.378535: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:10:03.378666: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:10:03.378918: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:10:03.379011: No export window planned
2026-08-18 10:10:03.379149: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:10:03.379186: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:10:03.379317: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:10:03.379495: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:10:03.379556: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:10:03.379625: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:10:03.379720: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379759: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379790: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379816: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379841: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.379988: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:03.380205: Inverter 0 count register writes 0
2026-08-18 10:10:03.395970: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 10:10:03.396188: Recompute is saving previous plan...
2026-08-18 10:10:03.397149: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 10:10:03.397221: Best export window [  ]
2026-08-18 10:10:03.398123: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:10:03.401212: Load divergence over 8.0 hours mean 424.82W, min 345.0W, max 712.8W, std dev 62.0W, divergence 7.3%
2026-08-18 10:10:03.419404: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:10:03.419521: LoadML is_calculating False
2026-08-18 10:10:03.419583: Creating pool of 12 processes to match your CPU count
2026-08-18 10:10:03.503654: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 10:10:03.504471: Optimise levels pass started at 2026-08-18 10:10:03
2026-08-18 10:10:03.504530: Optimise all windows, total charge 24 export 1
2026-08-18 10:10:04.025806: >> Region optimisation pass width 960 gives best_metric 330.44p, best_cost 333.93p, best_cycle 39.82kWh, best_import 24.95kWh
2026-08-18 10:10:04.167841: >> Region optimisation pass width 480 gives best_metric 330.44p, best_cost 333.93p, best_cycle 39.82kWh, best_import 24.95kWh
2026-08-18 10:10:04.405318: >> Region optimisation pass width 240 gives best_metric 330.44p, best_cost 333.93p, best_cycle 39.82kWh, best_import 24.95kWh
2026-08-18 10:10:04.937288: >> Region optimisation pass width 120 gives best_metric 330.44p, best_cost 333.93p, best_cycle 39.82kWh, best_import 24.95kWh
2026-08-18 10:10:04.937843: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 10:10:04.937904: Optimise levels pass ended at 2026-08-18 10:10:04, duration 1.4 seconds tried 53 combinations
2026-08-18 10:10:04.937956: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 330.44p, best_keep 0kWh, best_cycle 39.82kWh, best_carbon 0kg, best_import 24.95kWh
2026-08-18 10:10:04.954036: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 10:10:07.778657: Tweak plan optimisation started metric 271.84p, cost 282.76p
2026-08-18 10:10:08.142699: Tweak optimisation finished metric 271.84p, cost 282.76p, metric_keep 0kWh, cycle 34.97kWh, carbon 0kg, import 18.55kWh, changed 8 window(s)
2026-08-18 10:10:08.159751: Swap charge optimisation started metric 271.84p, cost 282.76p, min_improvement_swap 0.1p
2026-08-18 10:10:08.930397: Swap charge optimisation finished metric 271.84p, cost 282.76p
2026-08-18 10:10:09.081526: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 270.04p -> 269.46p, plan now metric 272.75p, cost 278.6p, cycle 34.98kWh, import 18.03kWh
2026-08-18 10:10:09.091436: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:10:09.091769: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:10:09.092058: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:10:09.092259: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:10:09.126888: Previous plan best metric is 271.84 (cost 282.76) and new plan best metric is 271.84 (cost 282.76)
2026-08-18 10:10:09.127069: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 10:10:09.127198: Plan valid is now true after recompute was False
2026-08-18 10:10:09.151626: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 612.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.11kWh, PV 0.0kWh
2026-08-18 10:10:09.239204: Battery has 13.58 hours left - now at 11.05kWh
2026-08-18 10:10:09.281027: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 638.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.31kWh, PV 0.0kWh
2026-08-18 10:10:09.358449: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 340.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.31kWh, PV 0.0kWh
2026-08-18 10:10:09.422905: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 327.38p, metric_keep 0kWh, min_soc 1.48kWh @ 08-18 23:25:00, load 30.11kWh, PV 0.0kWh
2026-08-18 10:10:09.422991: Saving plan best values to HA entities
2026-08-18 10:10:09.586754: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:10:09.591885: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:10:09.596155: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.3kWh, house 0.0kWh, export 0.0kWh, metric 327.38p, metric10 340.03p
2026-08-18 10:10:09.653645: Marginal costs baseline metric (no standing charge): 280.7457
2026-08-18 10:10:09.877749: Marginal energy costs matrix computed: min=25.54 max=32.72
2026-08-18 10:10:09.943801: Rate array import [{'start': 610, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 610, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:10:09.944424: - Your estimated bill for today is £1.58 and tomorrow is £1.93
2026-08-18 10:10:09.944469: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:10:09.944502: - The battery is currently at 69% and is in eco mode for the next 13 hours.
2026-08-18 10:10:09.944519: - For the next 48 hours there will be no solar generation.
2026-08-18 10:10:09.944533: - You will reach a minimum of 9% battery in 13 hours.
2026-08-18 10:10:09.944555: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:10:09.944572: 
2026-08-18 10:10:09.999004: Plan calculation took 6.60 seconds
2026-08-18 10:10:09.999289: Inverter 0: Type SK Sunsynk
2026-08-18 10:10:09.999328: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:10:09.999564: Reserve min: 7%, battery_min: 7%
2026-08-18 10:10:09.999637: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:10:09.999962: Inverter 0 SoC: 11.05kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 3412W, current battery voltage 51.2V, grid power -50W, load power 3460W, PV Power 0W
2026-08-18 10:10:10.000187: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:10:10.000276: Inverter 0 scheduled charge enable is False
2026-08-18 10:10:10.000300: Inverter 0 charge windows currently []
2026-08-18 10:10:10.000324: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:10:10.000412: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:10:10.000437: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:10:10.000465: Inverter 0 scheduled discharge enable is False
2026-08-18 10:10:10.000619: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:10:10.000655: Inverter 0 discharge windows currently []
2026-08-18 10:10:10.000674: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:10:10.000698: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:10:10.000712: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:10:10.052444: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 69%, target 100%
2026-08-18 10:10:10.052588: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:10:10.052652: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:10:10.052829: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:10:10.052909: No export window planned
2026-08-18 10:10:10.053018: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:10:10.053068: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:10:10.053204: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:10:10.053361: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:10:10.053413: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:10:10.053472: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:10:10.053562: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053633: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053716: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053746: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053920: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.053998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:10:10.054018: Inverter 0 count register writes 0
2026-08-18 10:10:10.075156: Total inverter register writes now 867
2026-08-18 10:10:10.109036: Info: Completed run status Demand
2026-08-18 10:10:10.116091: Info: record_status Demand
2026-08-18 10:10:10.122879: Saved current settings to /config/predbat_config.json
2026-08-18 10:10:10.123195: Compare, best tariff: current metric 129.87p
2026-08-18 10:10:49.241154: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:10:49.241378: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:10:49.241412: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:10:49.241539: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:10:49.241576: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:10:49.241598: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:10:49.241624: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:12:49.458378: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:12:49.458617: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:12:49.458651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:12:49.458779: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:12:49.458817: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:12:49.458838: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:12:49.458857: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:15:00.691380: --------------- PredBat - update at 2026-08-18 10:15:00+01:00 with clock skew 0 minutes, minutes now 615
2026-08-18 10:15:00.692243: Saved current settings to /config/predbat_config.json
2026-08-18 10:15:00.692435: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 10:15:00.692517: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:15:00.692666: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:15:00.710991: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:15:00.711097: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:15:00.711254: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:15:00.711728: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:15:00.711843: Predbat mode is set to Control charge & discharge
2026-08-18 10:15:00.899374: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:15:00.899500: Using load_power data to fill gaps in load_today data
2026-08-18 10:15:01.778704: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:15:01.778900: Zero load period starting at 2026-08-17T10:54:00+0100 (1401 minutes) for 189 minutes with base value 208.0
2026-08-18 10:15:01.780149: Processing 721 30-minute periods for power integration
2026-08-18 10:15:01.965544: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:15:01.965665: Car charging hold False, threshold 6.0kWh
2026-08-18 10:15:01.965719: Current data so far today: load 4.9kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:15:01.981246: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:15:01.981344: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:15:01.982258: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:15:01.982335: Standing charge is set to 46.63p
2026-08-18 10:15:02.087018: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:15:02.087331: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:15:02.087576: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:15:02.089267: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:15:02.089414: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:15:02.096537: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:15:02.096976: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:15:02.133348: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:15:02.133435: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:15:02.134541: High export rate found rates in range 99p to -99p
2026-08-18 10:15:02.157766: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:15:02.157835: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:15:02.169134: Battery level now 11.05kWh, -1hr ago 11.68kWh, at midnight 6.84kWh, battery value change in the last hour -4.34p, change today 28.92p, rate_forward 6.87p
2026-08-18 10:15:02.169663: 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-18 10:15:02.221532: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:15:02.221703: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:15:02.291450: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:15:02.317165: Today's load divergence 92.22%, in-day adjustment 92.65%, damping 0.95x, yesterday 92.68% today 92.61% blend 57.29%
2026-08-18 10:15:02.317227: Today's predicted so far 5.98kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 5.98kWh forecast extra.
2026-08-18 10:15:02.317252: Today's actual load so far 4.81kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 10:15:02.350344: Inverter 0: Type SK Sunsynk
2026-08-18 10:15:02.350425: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:15:02.350591: Reserve min: 7%, battery_min: 7%
2026-08-18 10:15:02.350658: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:15:02.350918: Inverter 0 SoC: 11.05kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 3541W, current battery voltage 51.2V, grid power -55W, load power 3558W, PV Power 0W
2026-08-18 10:15:02.351067: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:15:02.351149: Inverter 0 scheduled charge enable is False
2026-08-18 10:15:02.351182: Inverter 0 charge windows currently []
2026-08-18 10:15:02.351209: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:15:02.351313: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:15:02.351348: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:15:02.351384: Inverter 0 scheduled discharge enable is False
2026-08-18 10:15:02.351507: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:15:02.351543: Inverter 0 discharge windows currently []
2026-08-18 10:15:02.351565: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:15:02.351584: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:15:02.351601: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:15:02.400976: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:15:02.401080: Plan was last updated on 2026-08-18 10:10:00+01:00 and is now 5.0 minutes old
2026-08-18 10:15:02.401366: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:15:02.401420: Best export window [  ]
2026-08-18 10:15:02.402250: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:15:02.404738: Load divergence over 8.0 hours mean 425.03W, min 307.2W, max 753.0W, std dev 74.12W, divergence 8.72%
2026-08-18 10:15:02.419852: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:15:02.419969: LoadML is_calculating False
2026-08-18 10:15:02.420044: Creating pool of 12 processes to match your CPU count
2026-08-18 10:15:02.516348: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 613.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.23kWh, PV 0.0kWh
2026-08-18 10:15:02.618843: Battery has 13.5 hours left - now at 11.05kWh
2026-08-18 10:15:02.661791: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 638.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.44kWh, PV 0.0kWh
2026-08-18 10:15:02.724491: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 342.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.44kWh, PV 0.0kWh
2026-08-18 10:15:02.790121: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 331.23p, metric_keep 0kWh, min_soc 1.52kWh @ 08-18 23:25:00, load 30.23kWh, PV 0.0kWh
2026-08-18 10:15:02.790190: Saving plan best values to HA entities
2026-08-18 10:15:02.925802: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:15:02.930813: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:15:02.935796: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.78kWh, house 0.0kWh, export 0.0kWh, metric 331.23p, metric10 342.52p
2026-08-18 10:15:02.999699: Marginal costs baseline metric (no standing charge): 284.5917
2026-08-18 10:15:03.223667: Marginal energy costs matrix computed: min=24.69 max=32.62
2026-08-18 10:15:03.287328: Rate array import [{'start': 615, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 615, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:15:03.287930: - Your estimated bill for today is £1.58 and tomorrow is £1.93
2026-08-18 10:15:03.287968: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:15:03.287987: - The battery is currently at 69% and is in eco mode for the next 13 hours.
2026-08-18 10:15:03.288002: - For the next 48 hours there will be no solar generation.
2026-08-18 10:15:03.288016: - You will reach a minimum of 9% battery in 13 hours.
2026-08-18 10:15:03.288053: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:15:03.288073: 
2026-08-18 10:15:03.341768: Plan calculation took 0.94 seconds
2026-08-18 10:15:03.345431: No high rate period found
2026-08-18 10:15:03.384392: Import threshold used for optimisation was 8.0p
2026-08-18 10:15:03.428801: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:15:03.434053: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 69%, target 100%
2026-08-18 10:15:03.434196: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:15:03.434294: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:15:03.434532: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:15:03.434625: No export window planned
2026-08-18 10:15:03.434750: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:15:03.434785: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:15:03.434934: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:15:03.435136: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:15:03.435198: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:15:03.435265: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:15:03.435356: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435432: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435541: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:15:03.435785: Inverter 0 count register writes 0
2026-08-18 10:15:03.449990: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 10:15:03.454707: Total inverter register writes now 867
2026-08-18 10:15:03.483323: Info: Completed run status Demand
2026-08-18 10:15:03.488159: Info: record_status Demand
2026-08-18 10:15:03.494141: Saved current settings to /config/predbat_config.json
2026-08-18 10:15:03.494433: Compare, best tariff: current metric 129.87p
2026-08-18 10:15:34.586520: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:15:34.586733: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:15:34.586775: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:15:34.586914: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:15:34.586951: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:15:34.586970: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:15:34.586985: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:17:48.812365: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:17:48.812588: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:17:48.812622: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:17:48.812802: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:17:48.812844: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:17:48.812866: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:17:48.812884: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:19:49.042159: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:19:49.042384: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:19:49.042445: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:19:49.042591: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:19:49.042628: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:19:49.042649: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:19:49.042687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:20:00.137225: --------------- PredBat - update at 2026-08-18 10:20:00+01:00 with clock skew 0 minutes, minutes now 620
2026-08-18 10:20:00.137931: Saved current settings to /config/predbat_config.json
2026-08-18 10:20:00.138038: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 10:20:00.138101: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:20:00.138217: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:20:00.156147: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:20:00.156264: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:20:00.156457: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:20:00.156985: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:20:00.157105: Predbat mode is set to Control charge & discharge
2026-08-18 10:20:00.349017: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:20:00.349175: Using load_power data to fill gaps in load_today data
2026-08-18 10:20:01.189452: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:20:01.189654: Zero load period starting at 2026-08-17T10:54:00+0100 (1406 minutes) for 189 minutes with base value 207.975
2026-08-18 10:20:01.190806: Processing 721 30-minute periods for power integration
2026-08-18 10:20:01.371333: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:20:01.371446: Car charging hold False, threshold 6.0kWh
2026-08-18 10:20:01.371487: Current data so far today: load 5.7kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:20:01.386040: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:20:01.386131: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:20:01.386941: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:20:01.387028: Standing charge is set to 46.63p
2026-08-18 10:20:01.485263: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:20:01.485591: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:20:01.485886: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:20:01.487031: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:20:01.487192: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:20:01.492611: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:20:01.493098: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:20:01.535274: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:20:01.535380: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:20:01.536753: High export rate found rates in range 99p to -99p
2026-08-18 10:20:01.565393: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:20:01.565721: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:20:01.576782: Battery level now 11.05kWh, -1hr ago 11.68kWh, at midnight 6.84kWh, battery value change in the last hour -4.34p, change today 28.92p, rate_forward 6.87p
2026-08-18 10:20:01.577168: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 1.28kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:20:01.630468: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:20:01.630594: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:20:01.703601: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:20:01.729131: Today's load divergence 96.69%, in-day adjustment 94.48%, damping 0.95x, yesterday 92.68% today 96.86% blend 56.94%
2026-08-18 10:20:01.729469: Today's predicted so far 6.01kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 6.01kWh forecast extra.
2026-08-18 10:20:01.729522: Today's actual load so far 5.49kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 10:20:01.764141: Inverter 0: Type SK Sunsynk
2026-08-18 10:20:01.764219: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:20:01.764365: Reserve min: 7%, battery_min: 7%
2026-08-18 10:20:01.764421: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:20:01.764633: Inverter 0 SoC: 10.78kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 3106W, current battery voltage 51.2V, grid power -56W, load power 3132W, PV Power 0W
2026-08-18 10:20:01.764776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:20:01.764842: Inverter 0 scheduled charge enable is False
2026-08-18 10:20:01.764869: Inverter 0 charge windows currently []
2026-08-18 10:20:01.764890: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:20:01.764971: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:20:01.765001: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:20:01.765029: Inverter 0 scheduled discharge enable is False
2026-08-18 10:20:01.765126: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:20:01.765155: Inverter 0 discharge windows currently []
2026-08-18 10:20:01.765173: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:20:01.765189: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:20:01.765203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:20:01.817421: Dynamic load last period 3.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:20:01.817524: Plan was last updated on 2026-08-18 10:10:00+01:00 and is now 10.0 minutes old
2026-08-18 10:20:01.817768: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:20:01.817809: Best export window [  ]
2026-08-18 10:20:01.818445: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:20:01.821086: Load divergence over 8.0 hours mean 425.01W, min 316.8W, max 620.4W, std dev 62.96W, divergence 7.41%
2026-08-18 10:20:01.837242: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:20:01.837328: LoadML is_calculating False
2026-08-18 10:20:01.837393: Creating pool of 12 processes to match your CPU count
2026-08-18 10:20:01.938002: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 616.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.25kWh, PV 0.0kWh
2026-08-18 10:20:02.069290: Battery has 13.08 hours left - now at 10.78kWh
2026-08-18 10:20:02.115940: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 652.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.47kWh, PV 0.0kWh
2026-08-18 10:20:02.198644: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 358.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.47kWh, PV 0.0kWh
2026-08-18 10:20:02.273820: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 339.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.25kWh, PV 0.0kWh
2026-08-18 10:20:02.273899: Saving plan best values to HA entities
2026-08-18 10:20:02.422952: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:20:02.429116: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:20:02.434456: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.73kWh, house 0.01kWh, export 0.0kWh, metric 339.03p, metric10 358.88p
2026-08-18 10:20:02.505769: Marginal costs baseline metric (no standing charge): 292.3917
2026-08-18 10:20:02.748922: Marginal energy costs matrix computed: min=33.75 max=33.75
2026-08-18 10:20:02.809934: Rate array import [{'start': 620, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 620, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:20:02.810499: - Your estimated bill for today is £1.59 and tomorrow is £1.96
2026-08-18 10:20:02.810534: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:20:02.810552: - The battery is currently at 67% and is in eco mode for the next 13 hours.
2026-08-18 10:20:02.810567: - For the next 48 hours there will be no solar generation.
2026-08-18 10:20:02.810581: - You have enough battery to reach the next charge.
2026-08-18 10:20:02.810594: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:20:02.810612: 
2026-08-18 10:20:02.864682: Plan calculation took 1.05 seconds
2026-08-18 10:20:02.868098: No high rate period found
2026-08-18 10:20:02.913180: Import threshold used for optimisation was 8.0p
2026-08-18 10:20:02.957080: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:20:02.962536: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 67%, target 100%
2026-08-18 10:20:02.962709: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:20:02.962866: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:20:02.963162: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:20:02.963266: No export window planned
2026-08-18 10:20:02.963389: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:20:02.963425: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:20:02.963554: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:20:02.963754: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:20:02.963819: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:20:02.963879: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:20:02.964035: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964125: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964176: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:02.964487: Inverter 0 count register writes 0
2026-08-18 10:20:02.979498: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 10:20:02.979725: Recompute is saving previous plan...
2026-08-18 10:20:02.980730: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 10:20:02.980795: Best export window [  ]
2026-08-18 10:20:02.981716: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:20:02.985148: Load divergence over 8.0 hours mean 425.01W, min 316.8W, max 620.4W, std dev 62.96W, divergence 7.41%
2026-08-18 10:20:03.003109: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:20:03.003219: LoadML is_calculating False
2026-08-18 10:20:03.003309: Creating pool of 12 processes to match your CPU count
2026-08-18 10:20:03.083407: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 10:20:03.084159: Optimise levels pass started at 2026-08-18 10:20:03
2026-08-18 10:20:03.084212: Optimise all windows, total charge 24 export 1
2026-08-18 10:20:03.606003: >> Region optimisation pass width 960 gives best_metric 338.33p, best_cost 340.35p, best_cycle 40.3kWh, best_import 25.45kWh
2026-08-18 10:20:03.722619: >> Region optimisation pass width 480 gives best_metric 338.33p, best_cost 340.35p, best_cycle 40.3kWh, best_import 25.45kWh
2026-08-18 10:20:03.911065: >> Region optimisation pass width 240 gives best_metric 338.33p, best_cost 340.35p, best_cycle 40.3kWh, best_import 25.45kWh
2026-08-18 10:20:04.630827: >> Region optimisation pass width 120 gives best_metric 335.65p, best_cost 342.58p, best_cycle 41.6kWh, best_import 26.01kWh
2026-08-18 10:20:04.630976: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 10:20:04.631025: Optimise levels pass ended at 2026-08-18 10:20:04, duration 1.5 seconds tried 57 combinations
2026-08-18 10:20:04.631075: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 335.65p, best_keep 0kWh, best_cycle 41.6kWh, best_carbon 0kg, best_import 26.01kWh
2026-08-18 10:20:04.645598: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 10:20:07.220300: Tweak plan optimisation started metric 276.48p, cost 286.15p
2026-08-18 10:20:07.485080: Tweak optimisation finished metric 276.48p, cost 286.15p, metric_keep 0kWh, cycle 35.43kWh, carbon 0kg, import 18.96kWh, changed 8 window(s)
2026-08-18 10:20:07.504913: Swap charge optimisation started metric 276.48p, cost 286.15p, min_improvement_swap 0.1p
2026-08-18 10:20:08.245618: Swap charge optimisation finished metric 276.48p, cost 286.15p
2026-08-18 10:20:08.315011: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 273.43p -> 273.43p, plan now metric 281.97p, cost 286.15p, cycle 35.43kWh, import 18.96kWh
2026-08-18 10:20:08.322955: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:20:08.323188: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:20:08.323333: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:20:08.323446: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:20:08.352145: Previous plan best metric is 276.48 (cost 286.15) and new plan best metric is 276.48 (cost 286.15)
2026-08-18 10:20:08.352288: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 10:20:08.352443: Plan valid is now true after recompute was False
2026-08-18 10:20:08.376817: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 615.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.06kWh, PV 0.0kWh
2026-08-18 10:20:08.467054: Battery has 13.08 hours left - now at 10.78kWh
2026-08-18 10:20:08.501428: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 650.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.27kWh, PV 0.0kWh
2026-08-18 10:20:08.566166: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 351.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.27kWh, PV 0.0kWh
2026-08-18 10:20:08.629836: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 330.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.06kWh, PV 0.0kWh
2026-08-18 10:20:08.629908: Saving plan best values to HA entities
2026-08-18 10:20:08.763953: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:20:08.768142: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:20:08.772996: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.7kWh, house 0.01kWh, export 0.0kWh, metric 330.79p, metric10 351.68p
2026-08-18 10:20:08.838744: Marginal costs baseline metric (no standing charge): 284.1586
2026-08-18 10:20:09.053808: Marginal energy costs matrix computed: min=33.75 max=33.75
2026-08-18 10:20:09.123253: Rate array import [{'start': 620, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 620, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:20:09.124027: - Your estimated bill for today is £1.59 and tomorrow is £1.96
2026-08-18 10:20:09.124077: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:20:09.124101: - The battery is currently at 67% and is in eco mode for the next 13 hours.
2026-08-18 10:20:09.124119: - For the next 48 hours there will be no solar generation.
2026-08-18 10:20:09.124137: - You have enough battery to reach the next charge.
2026-08-18 10:20:09.124154: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:20:09.124171: 
2026-08-18 10:20:09.183179: Plan calculation took 6.20 seconds
2026-08-18 10:20:09.183468: Inverter 0: Type SK Sunsynk
2026-08-18 10:20:09.183511: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:20:09.183738: Reserve min: 7%, battery_min: 7%
2026-08-18 10:20:09.183816: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:20:09.184234: Inverter 0 SoC: 10.49kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 3096W, current battery voltage 51.2V, grid power -53W, load power 3123W, PV Power 0W
2026-08-18 10:20:09.184469: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:20:09.184571: Inverter 0 scheduled charge enable is False
2026-08-18 10:20:09.184609: Inverter 0 charge windows currently []
2026-08-18 10:20:09.184639: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:20:09.184774: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:20:09.184809: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:20:09.184845: Inverter 0 scheduled discharge enable is False
2026-08-18 10:20:09.184976: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:20:09.185014: Inverter 0 discharge windows currently []
2026-08-18 10:20:09.185036: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:20:09.185055: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:20:09.185072: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:20:09.238015: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 66%, target 100%
2026-08-18 10:20:09.238187: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:20:09.238266: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:20:09.238457: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:20:09.238554: No export window planned
2026-08-18 10:20:09.238711: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:20:09.238755: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:20:09.238936: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:20:09.239134: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:20:09.239203: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:20:09.239270: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:20:09.239387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239452: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239501: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239600: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239700: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239792: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.239996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:20:09.240013: Inverter 0 count register writes 0
2026-08-18 10:20:09.261069: Total inverter register writes now 867
2026-08-18 10:20:09.298811: Info: Completed run status Demand
2026-08-18 10:20:09.304483: Info: record_status Demand
2026-08-18 10:20:09.310748: Saved current settings to /config/predbat_config.json
2026-08-18 10:20:09.311052: Compare, best tariff: current metric 129.87p
2026-08-18 10:20:49.437371: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:20:49.437652: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:20:49.437717: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:20:49.437928: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:20:49.437973: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:20:49.438006: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:20:49.438048: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:23:03.671661: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:23:03.672017: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:23:03.672070: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:23:03.672301: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:23:03.672342: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:23:03.672360: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:23:03.672375: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:25:00.897464: --------------- PredBat - update at 2026-08-18 10:25:00+01:00 with clock skew 0 minutes, minutes now 625
2026-08-18 10:25:00.898214: Saved current settings to /config/predbat_config.json
2026-08-18 10:25:00.898330: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 10:25:00.898396: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:25:00.898472: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:25:00.914548: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:25:00.914665: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:25:00.914822: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:25:00.915313: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:25:00.915429: Predbat mode is set to Control charge & discharge
2026-08-18 10:25:01.080028: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:25:01.080135: Using load_power data to fill gaps in load_today data
2026-08-18 10:25:01.780763: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:25:01.780930: Zero load period starting at 2026-08-17T10:54:00+0100 (1411 minutes) for 189 minutes with base value 207.95
2026-08-18 10:25:01.781808: Processing 721 30-minute periods for power integration
2026-08-18 10:25:01.946483: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:25:01.946602: Car charging hold False, threshold 6.0kWh
2026-08-18 10:25:01.946638: Current data so far today: load 6.0kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:25:01.958716: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:25:01.958806: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:25:01.959429: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:25:01.959486: Standing charge is set to 46.63p
2026-08-18 10:25:02.053716: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:25:02.053910: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:25:02.054045: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:25:02.054895: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:25:02.054979: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:25:02.059183: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:25:02.059452: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:25:02.093829: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:25:02.093926: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:25:02.095027: High export rate found rates in range 99p to -99p
2026-08-18 10:25:02.117607: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:25:02.117705: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:25:02.127805: Battery level now 10.78kWh, -1hr ago 11.68kWh, at midnight 6.84kWh, battery value change in the last hour -6.21p, change today 27.05p, rate_forward 6.87p
2026-08-18 10:25:02.128130: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 1.55kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:25:02.185491: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:25:02.185627: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:25:02.257730: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:25:02.283355: Today's load divergence 98.28%, in-day adjustment 95.15%, damping 0.95x, yesterday 92.68% today 98.37% blend 56.6%
2026-08-18 10:25:02.283551: Today's predicted so far 6.03kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 6.03kWh forecast extra.
2026-08-18 10:25:02.283579: Today's actual load so far 5.76kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 10:25:02.319086: Inverter 0: Type SK Sunsynk
2026-08-18 10:25:02.319220: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:25:02.319380: Reserve min: 7%, battery_min: 7%
2026-08-18 10:25:02.319479: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:25:02.319717: Inverter 0 SoC: 10.27kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 3389W, current battery voltage 51.2V, grid power -56W, load power 3387W, PV Power 0W
2026-08-18 10:25:02.319841: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:25:02.319932: Inverter 0 scheduled charge enable is False
2026-08-18 10:25:02.319960: Inverter 0 charge windows currently []
2026-08-18 10:25:02.319987: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:25:02.320077: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:25:02.320106: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:25:02.320134: Inverter 0 scheduled discharge enable is False
2026-08-18 10:25:02.320266: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:25:02.320303: Inverter 0 discharge windows currently []
2026-08-18 10:25:02.320322: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:25:02.320337: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:25:02.320351: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:25:02.368869: Dynamic load last period 3.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:25:02.368953: Plan was last updated on 2026-08-18 10:20:00+01:00 and is now 5.0 minutes old
2026-08-18 10:25:02.369117: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:25:02.369150: Best export window [  ]
2026-08-18 10:25:02.369828: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:25:02.372556: Load divergence over 8.0 hours mean 424.83W, min 324.0W, max 601.2W, std dev 58.62W, divergence 6.9%
2026-08-18 10:25:02.387749: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:25:02.387843: LoadML is_calculating False
2026-08-18 10:25:02.387891: Creating pool of 12 processes to match your CPU count
2026-08-18 10:25:02.504817: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.49kWh, PV 0.0kWh
2026-08-18 10:25:02.617365: Battery has 12.58 hours left - now at 10.27kWh
2026-08-18 10:25:02.656057: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 668.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.71kWh, PV 0.0kWh
2026-08-18 10:25:02.720183: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 372.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.71kWh, PV 0.0kWh
2026-08-18 10:25:02.795683: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 351.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.49kWh, PV 0.0kWh
2026-08-18 10:25:02.795760: Saving plan best values to HA entities
2026-08-18 10:25:02.954045: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:25:02.959047: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:25:02.963797: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.2kWh, house 0.51kWh, export 0.0kWh, metric 351.74p, metric10 372.75p
2026-08-18 10:25:03.031129: Marginal costs baseline metric (no standing charge): 305.1054
2026-08-18 10:25:03.247924: Marginal energy costs matrix computed: min=33.75 max=33.75
2026-08-18 10:25:03.328051: Rate array import [{'start': 625, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 625, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:25:03.329044: - Your estimated bill for today is £1.76 and tomorrow is £1.96
2026-08-18 10:25:03.329608: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:25:03.329655: - The battery is currently at 64% and is in eco mode for the next 13 hours.
2026-08-18 10:25:03.329684: - For the next 48 hours there will be no solar generation.
2026-08-18 10:25:03.329700: - You will run out of battery in 12 hours.
2026-08-18 10:25:03.329714: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:25:03.329729: 
2026-08-18 10:25:03.389065: Plan calculation took 1.02 seconds
2026-08-18 10:25:03.393334: No high rate period found
2026-08-18 10:25:03.439882: Import threshold used for optimisation was 8.0p
2026-08-18 10:25:03.486537: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:25:03.491195: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 64%, target 100%
2026-08-18 10:25:03.491299: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:25:03.491382: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:25:03.491606: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:25:03.491684: No export window planned
2026-08-18 10:25:03.491797: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:25:03.491827: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:25:03.492024: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:25:03.492202: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:25:03.492255: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:25:03.492306: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:25:03.492387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492486: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492523: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492605: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:25:03.492759: Inverter 0 count register writes 0
2026-08-18 10:25:03.509246: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 10:25:03.513895: Total inverter register writes now 867
2026-08-18 10:25:03.543324: Info: Completed run status Demand
2026-08-18 10:25:03.549130: Info: record_status Demand
2026-08-18 10:25:03.555555: Saved current settings to /config/predbat_config.json
2026-08-18 10:25:03.555812: Compare, best tariff: current metric 129.87p
2026-08-18 10:25:33.658850: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:25:33.659095: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:25:33.659143: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:25:33.659293: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:25:33.659334: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:25:33.659355: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:25:33.659373: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:27:33.863233: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:27:33.863518: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:27:33.863565: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:27:33.863700: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:27:33.863737: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:27:33.863758: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:27:33.863776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:29:34.084910: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:29:34.085252: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:29:34.085315: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:29:34.085546: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:29:34.085614: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:29:34.085660: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:29:34.085692: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:30:00.188587: --------------- PredBat - update at 2026-08-18 10:30:00+01:00 with clock skew 0 minutes, minutes now 630
2026-08-18 10:30:00.189509: Saved current settings to /config/predbat_config.json
2026-08-18 10:30:00.189674: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 10:30:00.189756: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:30:00.189903: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:30:00.222286: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:30:00.222460: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:30:00.222676: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:30:00.223207: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:30:00.223335: Predbat mode is set to Control charge & discharge
2026-08-18 10:30:00.435522: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:30:00.435658: Using load_power data to fill gaps in load_today data
2026-08-18 10:30:01.187435: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:30:01.187602: Zero load period starting at 2026-08-17T10:54:00+0100 (1416 minutes) for 189 minutes with base value 207.925
2026-08-18 10:30:01.188760: Processing 721 30-minute periods for power integration
2026-08-18 10:30:01.356273: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:30:01.356408: Car charging hold False, threshold 6.0kWh
2026-08-18 10:30:01.356447: Current data so far today: load 6.15kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:30:01.368593: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:30:01.368682: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:30:01.369293: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:30:01.369351: Standing charge is set to 46.63p
2026-08-18 10:30:01.452210: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:30:01.452854: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:30:01.453082: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:30:01.454033: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:30:01.454168: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:30:01.458626: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:30:01.458986: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:30:01.494068: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:30:01.495281: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:30:01.496405: High export rate found rates in range 99p to -99p
2026-08-18 10:30:01.519387: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:30:01.519506: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:30:01.529783: Battery level now 10.27kWh, -1hr ago 11.68kWh, at midnight 6.84kWh, battery value change in the last hour -9.68p, change today 23.59p, rate_forward 6.87p
2026-08-18 10:30:01.530083: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.68kWh, net cost 0.15p, import 0.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:30:01.583981: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:30:01.584118: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:30:01.660974: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:30:01.686499: Today's load divergence 99.71%, in-day adjustment 95.76%, damping 0.95x, yesterday 92.68% today 99.73% blend 56.25%
2026-08-18 10:30:01.686803: Today's predicted so far 6.17kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 6.17kWh forecast extra.
2026-08-18 10:30:01.686843: Today's actual load so far 6.13kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 10:30:01.725996: Inverter 0: Type SK Sunsynk
2026-08-18 10:30:01.726072: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:30:01.726261: Reserve min: 7%, battery_min: 7%
2026-08-18 10:30:01.726433: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:30:01.726717: Inverter 0 SoC: 10.27kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 566W, current battery voltage 51.2V, grid power -54W, load power 626W, PV Power 0W
2026-08-18 10:30:01.726936: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:30:01.727106: Inverter 0 scheduled charge enable is False
2026-08-18 10:30:01.727194: Inverter 0 charge windows currently []
2026-08-18 10:30:01.727307: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:30:01.727555: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:30:01.727651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:30:01.727795: Inverter 0 scheduled discharge enable is False
2026-08-18 10:30:01.728008: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:30:01.728099: Inverter 0 discharge windows currently []
2026-08-18 10:30:01.728194: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:30:01.728282: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:30:01.728358: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:30:01.783943: Dynamic load last period 3.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:30:01.784068: Plan was last updated on 2026-08-18 10:20:00+01:00 and is now 10.0 minutes old
2026-08-18 10:30:01.784268: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:30:01.784305: Best export window [  ]
2026-08-18 10:30:01.784977: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:30:01.787463: Load divergence over 8.0 hours mean 424.83W, min 345.6W, max 633.6W, std dev 51.47W, divergence 6.06%
2026-08-18 10:30:01.808682: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:30:01.808818: LoadML is_calculating False
2026-08-18 10:30:01.808906: Creating pool of 12 processes to match your CPU count
2026-08-18 10:30:01.919211: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.72kWh, PV 0.0kWh
2026-08-18 10:30:02.036169: Battery has 12.5 hours left - now at 10.27kWh
2026-08-18 10:30:02.079595: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 668.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.93kWh, PV 0.0kWh
2026-08-18 10:30:02.182497: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 375.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.93kWh, PV 0.0kWh
2026-08-18 10:30:02.273831: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 355.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.72kWh, PV 0.0kWh
2026-08-18 10:30:02.273915: Saving plan best values to HA entities
2026-08-18 10:30:02.453073: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 10:30:02.460889: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:30:02.466991: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.72kWh, house 0.49kWh, export 0.0kWh, metric 355.34p, metric10 375.53p
2026-08-18 10:30:02.551559: Marginal costs baseline metric (no standing charge): 308.7086
2026-08-18 10:30:02.846512: Marginal energy costs matrix computed: min=33.75 max=33.75
2026-08-18 10:30:02.923413: Rate array import [{'start': 630, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 630, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:30:02.924255: - Your estimated bill for today is £1.75 and tomorrow is £1.96
2026-08-18 10:30:02.924307: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:30:02.924330: - The battery is currently at 64% and is in eco mode for the next 13 hours.
2026-08-18 10:30:02.924369: - For the next 48 hours there will be no solar generation.
2026-08-18 10:30:02.924388: - You will run out of battery in 12 hours.
2026-08-18 10:30:02.924427: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:30:02.924445: 
2026-08-18 10:30:02.987269: Plan calculation took 1.20 seconds
2026-08-18 10:30:02.991036: No high rate period found
2026-08-18 10:30:03.046554: Import threshold used for optimisation was 8.0p
2026-08-18 10:30:03.099153: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:30:03.104971: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 64%, target 100%
2026-08-18 10:30:03.105127: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:30:03.105269: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:30:03.105581: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:30:03.105704: No export window planned
2026-08-18 10:30:03.105887: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:30:03.105930: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:30:03.106104: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:30:03.106319: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:30:03.106406: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:30:03.106501: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:30:03.106638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.106687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.106735: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.106789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.106842: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.106903: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.106965: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:03.107507: Inverter 0 count register writes 0
2026-08-18 10:30:03.124415: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 10:30:03.124668: Recompute is saving previous plan...
2026-08-18 10:30:03.125662: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 10:30:03.125715: Best export window [  ]
2026-08-18 10:30:03.126619: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:30:03.130040: Load divergence over 8.0 hours mean 424.83W, min 345.6W, max 633.6W, std dev 51.47W, divergence 6.06%
2026-08-18 10:30:03.147887: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:30:03.148036: LoadML is_calculating False
2026-08-18 10:30:03.148125: Creating pool of 12 processes to match your CPU count
2026-08-18 10:30:03.234361: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 10:30:03.235291: Optimise levels pass started at 2026-08-18 10:30:03
2026-08-18 10:30:03.235357: Optimise all windows, total charge 24 export 1
2026-08-18 10:30:03.826652: >> Region optimisation pass width 960 gives best_metric 352.1p, best_cost 356.69p, best_cycle 40.84kWh, best_import 26.21kWh
2026-08-18 10:30:03.991812: >> Region optimisation pass width 480 gives best_metric 352.1p, best_cost 356.69p, best_cycle 40.84kWh, best_import 26.21kWh
2026-08-18 10:30:04.252694: >> Region optimisation pass width 240 gives best_metric 352.1p, best_cost 356.69p, best_cycle 40.84kWh, best_import 26.21kWh
2026-08-18 10:30:04.868346: >> Region optimisation pass width 120 gives best_metric 352.1p, best_cost 356.69p, best_cycle 40.84kWh, best_import 26.21kWh
2026-08-18 10:30:04.868547: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 10:30:04.868605: Optimise levels pass ended at 2026-08-18 10:30:04, duration 1.6 seconds tried 61 combinations
2026-08-18 10:30:04.868662: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 352.1p, best_keep 0kWh, best_cycle 40.84kWh, best_carbon 0kg, best_import 26.21kWh
2026-08-18 10:30:04.887548: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 10:30:07.578555: Tweak plan optimisation started metric 292.99p, cost 302.62p
2026-08-18 10:30:07.894915: Tweak optimisation finished metric 292.98p, cost 302.62p, metric_keep 0kWh, cycle 34.95kWh, carbon 0kg, import 19.45kWh, changed 8 window(s)
2026-08-18 10:30:07.912902: Swap charge optimisation started metric 292.98p, cost 302.62p, min_improvement_swap 0.1p
2026-08-18 10:30:08.617148: Swap charge optimisation finished metric 292.98p, cost 302.62p
2026-08-18 10:30:08.723728: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 289.93p -> 289.93p, plan now metric 298.49p, cost 302.62p, cycle 34.95kWh, import 19.45kWh
2026-08-18 10:30:08.733716: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:30:08.734105: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:30:08.734465: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:30:08.734694: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:30:08.781422: Previous plan best metric is 292.99 (cost 302.62) and new plan best metric is 292.98 (cost 302.62)
2026-08-18 10:30:08.781652: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 10:30:08.781873: Plan valid is now true after recompute was False
2026-08-18 10:30:08.817773: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.53kWh, PV 0.0kWh
2026-08-18 10:30:08.921001: Battery has 12.5 hours left - now at 10.27kWh
2026-08-18 10:30:08.976077: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 667.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.74kWh, PV 0.0kWh
2026-08-18 10:30:09.062256: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.74kWh, PV 0.0kWh
2026-08-18 10:30:09.153774: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 347.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.53kWh, PV 0.0kWh
2026-08-18 10:30:09.153861: Saving plan best values to HA entities
2026-08-18 10:30:09.302155: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 10:30:09.307162: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:30:09.312335: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.7kWh, house 0.49kWh, export 0.0kWh, metric 347.22p, metric10 368.45p
2026-08-18 10:30:09.398709: Marginal costs baseline metric (no standing charge): 300.5843
2026-08-18 10:30:09.693230: Marginal energy costs matrix computed: min=33.75 max=33.75
2026-08-18 10:30:09.762326: Rate array import [{'start': 630, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 630, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:30:09.763127: - Your estimated bill for today is £1.75 and tomorrow is £1.96
2026-08-18 10:30:09.763179: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:30:09.763204: - The battery is currently at 64% and is in eco mode for the next 13 hours.
2026-08-18 10:30:09.763223: - For the next 48 hours there will be no solar generation.
2026-08-18 10:30:09.763240: - You will run out of battery in 12 hours.
2026-08-18 10:30:09.763258: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:30:09.763282: 
2026-08-18 10:30:09.826673: Plan calculation took 6.70 seconds
2026-08-18 10:30:09.826998: Inverter 0: Type SK Sunsynk
2026-08-18 10:30:09.827047: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:30:09.827228: Reserve min: 7%, battery_min: 7%
2026-08-18 10:30:09.827289: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:30:09.827584: Inverter 0 SoC: 10.1kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 562W, current battery voltage 51.2V, grid power -55W, load power 616W, PV Power 0W
2026-08-18 10:30:09.827843: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:30:09.827992: Inverter 0 scheduled charge enable is False
2026-08-18 10:30:09.828036: Inverter 0 charge windows currently []
2026-08-18 10:30:09.828062: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:30:09.828167: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:30:09.828199: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:30:09.828229: Inverter 0 scheduled discharge enable is False
2026-08-18 10:30:09.828334: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:30:09.828364: Inverter 0 discharge windows currently []
2026-08-18 10:30:09.828383: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:30:09.828417: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:30:09.828438: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:30:09.882776: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 63%, target 100%
2026-08-18 10:30:09.882997: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:30:09.883114: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:30:09.883346: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:30:09.883476: No export window planned
2026-08-18 10:30:09.883676: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:30:09.883742: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:30:09.883973: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:30:09.884232: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:30:09.884312: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:30:09.884423: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:30:09.884602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884679: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884719: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884748: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884811: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884836: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884932: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.884981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.885013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.885037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.885071: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:30:09.885111: Inverter 0 count register writes 0
2026-08-18 10:30:09.904844: Total inverter register writes now 867
2026-08-18 10:30:09.934554: Info: Completed run status Demand
2026-08-18 10:30:09.941573: Info: record_status Demand
2026-08-18 10:30:09.948535: Saved current settings to /config/predbat_config.json
2026-08-18 10:30:09.948846: Compare, best tariff: current metric 129.87p
2026-08-18 10:30:49.064153: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:30:49.064368: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:30:49.064589: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:30:49.064808: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:30:49.064871: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:30:49.064889: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:30:49.064904: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:32:49.264581: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:32:49.264803: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:32:49.264844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:32:49.264975: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:32:49.265012: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:32:49.265033: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:32:49.265052: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:34:49.477376: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:34:49.477642: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:34:49.477737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:34:49.477984: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:34:49.478042: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:34:49.478067: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:34:49.478086: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:35:00.565778: --------------- PredBat - update at 2026-08-18 10:35:00+01:00 with clock skew 0 minutes, minutes now 635
2026-08-18 10:35:00.566618: Saved current settings to /config/predbat_config.json
2026-08-18 10:35:00.566775: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 10:35:00.566912: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:35:00.567007: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:35:00.584189: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:35:00.584288: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:35:00.584436: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:35:00.584844: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:35:00.584942: Predbat mode is set to Control charge & discharge
2026-08-18 10:35:00.761168: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:35:00.761293: Using load_power data to fill gaps in load_today data
2026-08-18 10:35:01.516554: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:35:01.516731: Zero load period starting at 2026-08-17T10:54:00+0100 (1421 minutes) for 189 minutes with base value 207.9
2026-08-18 10:35:01.517796: Processing 721 30-minute periods for power integration
2026-08-18 10:35:01.693370: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:35:01.693475: Car charging hold False, threshold 6.0kWh
2026-08-18 10:35:01.693528: Current data so far today: load 6.4kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:35:01.705126: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:35:01.705196: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:35:01.705803: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:35:01.705861: Standing charge is set to 46.63p
2026-08-18 10:35:01.800415: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:35:01.800608: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:35:01.800742: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:35:01.801595: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:35:01.801688: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:35:01.805945: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:35:01.806289: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:35:01.848281: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:35:01.848396: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:35:01.849463: High export rate found rates in range 99p to -99p
2026-08-18 10:35:01.871546: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:35:01.871632: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:35:01.881407: Battery level now 10.27kWh, -1hr ago 11.52kWh, at midnight 6.84kWh, battery value change in the last hour -8.58p, change today 23.59p, rate_forward 6.87p
2026-08-18 10:35:01.881704: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:35:01.927516: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:35:01.927622: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:35:01.995245: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:35:02.020319: Today's load divergence 99.39%, in-day adjustment 95.65%, damping 0.95x, yesterday 92.68% today 99.42% blend 55.9%
2026-08-18 10:35:02.020383: Today's predicted so far 6.29kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 6.29kWh forecast extra.
2026-08-18 10:35:02.020408: Today's actual load so far 6.19kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 10:35:02.051856: Inverter 0: Type SK Sunsynk
2026-08-18 10:35:02.051981: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:35:02.052189: Reserve min: 7%, battery_min: 7%
2026-08-18 10:35:02.052278: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:35:02.052612: Inverter 0 SoC: 10.1kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 3555W, current battery voltage 51.2V, grid power -56W, load power 3564W, PV Power 0W
2026-08-18 10:35:02.052849: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:35:02.052993: Inverter 0 scheduled charge enable is False
2026-08-18 10:35:02.053054: Inverter 0 charge windows currently []
2026-08-18 10:35:02.053115: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:35:02.053323: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:35:02.053409: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:35:02.053477: Inverter 0 scheduled discharge enable is False
2026-08-18 10:35:02.053697: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:35:02.053742: Inverter 0 discharge windows currently []
2026-08-18 10:35:02.053766: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:35:02.053785: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:35:02.053803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:35:02.105495: Dynamic load last period 3.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:35:02.105596: Plan was last updated on 2026-08-18 10:30:00+01:00 and is now 5.0 minutes old
2026-08-18 10:35:02.105795: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:35:02.105835: Best export window [  ]
2026-08-18 10:35:02.106730: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:35:02.110187: Load divergence over 8.0 hours mean 425.02W, min 345.0W, max 675.0W, std dev 59.91W, divergence 7.05%
2026-08-18 10:35:02.129736: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:35:02.129840: LoadML is_calculating False
2026-08-18 10:35:02.129902: Creating pool of 12 processes to match your CPU count
2026-08-18 10:35:02.235154: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.8kWh, PV 0.0kWh
2026-08-18 10:35:02.357615: Battery has 12.33 hours left - now at 10.1kWh
2026-08-18 10:35:02.405648: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 670.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 33.01kWh, PV 0.0kWh
2026-08-18 10:35:02.481338: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 374.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 33.01kWh, PV 0.0kWh
2026-08-18 10:35:02.546977: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 353.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.8kWh, PV 0.0kWh
2026-08-18 10:35:02.547044: Saving plan best values to HA entities
2026-08-18 10:35:02.696578: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:35:02.701047: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:35:02.705328: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.22kWh, house 0.57kWh, export 0.0kWh, metric 353.94p, metric10 374.54p
2026-08-18 10:35:02.766194: Marginal costs baseline metric (no standing charge): 307.302
2026-08-18 10:35:02.997834: Marginal energy costs matrix computed: min=31.61 max=33.75
2026-08-18 10:35:03.063644: Rate array import [{'start': 635, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 635, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:35:03.064443: - Your estimated bill for today is £1.77 and tomorrow is £1.96
2026-08-18 10:35:03.064494: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:35:03.064517: - The battery is currently at 63% and is in eco mode for the next 12 hours.
2026-08-18 10:35:03.064552: - For the next 48 hours there will be no solar generation.
2026-08-18 10:35:03.064571: - You will run out of battery in 12 hours.
2026-08-18 10:35:03.064588: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:35:03.064605: 
2026-08-18 10:35:03.120453: Plan calculation took 1.01 seconds
2026-08-18 10:35:03.123724: No high rate period found
2026-08-18 10:35:03.172345: Import threshold used for optimisation was 8.0p
2026-08-18 10:35:03.223245: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:35:03.229038: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 63%, target 100%
2026-08-18 10:35:03.229182: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:35:03.229335: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:35:03.229594: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:35:03.229705: No export window planned
2026-08-18 10:35:03.229873: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:35:03.229916: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:35:03.230063: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:35:03.230244: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:35:03.230299: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:35:03.230403: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:35:03.230518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230596: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230714: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.230984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.231032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.231081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.231121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:35:03.231152: Inverter 0 count register writes 0
2026-08-18 10:35:03.243761: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 10:35:03.248530: Total inverter register writes now 867
2026-08-18 10:35:03.280716: Info: Completed run status Demand
2026-08-18 10:35:03.287179: Info: record_status Demand
2026-08-18 10:35:03.294149: Saved current settings to /config/predbat_config.json
2026-08-18 10:35:03.294524: Compare, best tariff: current metric 129.87p
2026-08-18 10:35:27.928481: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 10:35:28.809988: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:35:28.810623: Zero load period starting at 2026-08-17T10:54:00+0100 (1421 minutes) for 189 minutes with base value 399.0
2026-08-18 10:35:28.811507: Processing 1345 30-minute periods for power integration
2026-08-18 10:35:28.893426: ML Component: Car charging hold False, car energy reported load False
2026-08-18 10:35:28.975821: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:35:29.053807: ML Temperature data points: 49766
2026-08-18 10:35:29.268757: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 10:35:29.301691: ML Component: Data fetch completed, load data age 59.0 days, 17238 data points
2026-08-18 10:35:29.301798: ML Component: No training needed, model age is 0.44 hours
2026-08-18 10:35:29.301852: ML Component: Generating predictions load data age 59.0 days, 17238 data points
2026-08-18 10:35:29.411550: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.3009 max_dow {0: 0.08250277803424333, 1: 0.0922861109920674, 2: 0.10978749959506096, 3: 0.10331875034738332, 4: 0.1381031253574416, 5: 0.10191944486482275, 6: 0.10384444441977475}
2026-08-18 10:35:29.801716: ML Component: Generated 576 predictions (total 27.00 kWh over 48h)
2026-08-18 10:35:29.827926: ML Component: Prediction cycle completed
2026-08-18 10:35:29.908420: ML Component: Saved 17238 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 10:35:34.409120: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:35:34.409366: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:35:34.409415: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:35:34.409561: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:35:34.409603: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:35:34.409625: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:35:34.409647: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:37:34.623422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:37:34.623641: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:37:34.623694: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:37:34.623894: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:37:34.623965: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:37:34.623988: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:37:34.624013: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:39:48.851856: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:39:48.852140: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:39:48.852190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:39:48.852358: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:39:48.852400: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:39:48.852422: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:39:48.852448: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:40:00.957428: --------------- PredBat - update at 2026-08-18 10:40:00+01:00 with clock skew 0 minutes, minutes now 640
2026-08-18 10:40:00.958108: Saved current settings to /config/predbat_config.json
2026-08-18 10:40:00.958224: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 10:40:00.958324: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:40:00.958411: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:40:00.976419: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:40:00.976523: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:40:00.976654: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:40:00.977056: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:40:00.977154: Predbat mode is set to Control charge & discharge
2026-08-18 10:40:01.153536: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:40:01.153642: Using load_power data to fill gaps in load_today data
2026-08-18 10:40:01.901598: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:40:01.901787: Zero load period starting at 2026-08-17T10:54:00+0100 (1426 minutes) for 189 minutes with base value 207.875
2026-08-18 10:40:01.902937: Processing 721 30-minute periods for power integration
2026-08-18 10:40:02.091962: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:40:02.092078: Car charging hold False, threshold 6.0kWh
2026-08-18 10:40:02.092121: Current data so far today: load 6.35kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:40:02.108551: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:40:02.108653: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:40:02.109365: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:40:02.109435: Standing charge is set to 46.63p
2026-08-18 10:40:02.211645: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:40:02.212002: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:40:02.212310: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:40:02.213469: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:40:02.213632: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:40:02.218995: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:40:02.219361: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:40:02.264441: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:40:02.264570: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:40:02.266074: High export rate found rates in range 99p to -99p
2026-08-18 10:40:02.297792: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:40:02.297916: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:40:02.311231: Battery level now 10.1kWh, -1hr ago 11.52kWh, at midnight 6.84kWh, battery value change in the last hour -9.79p, change today 22.38p, rate_forward 6.87p
2026-08-18 10:40:02.311604: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:40:02.359855: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:40:02.360029: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:40:02.443999: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:40:02.475430: Today's load divergence 99.84%, in-day adjustment 95.87%, damping 0.95x, yesterday 92.68% today 99.85% blend 55.56%
2026-08-18 10:40:02.475511: Today's predicted so far 6.33kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 6.33kWh forecast extra.
2026-08-18 10:40:02.475543: Today's actual load so far 6.3kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 10:40:02.510054: Inverter 0: Type SK Sunsynk
2026-08-18 10:40:02.510138: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:40:02.510329: Reserve min: 7%, battery_min: 7%
2026-08-18 10:40:02.510403: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:40:02.510651: Inverter 0 SoC: 9.99kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 798W, current battery voltage 51.2V, grid power -53W, load power 847W, PV Power 0W
2026-08-18 10:40:02.510799: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:40:02.510884: Inverter 0 scheduled charge enable is False
2026-08-18 10:40:02.510911: Inverter 0 charge windows currently []
2026-08-18 10:40:02.510936: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:40:02.511107: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:40:02.511151: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:40:02.511189: Inverter 0 scheduled discharge enable is False
2026-08-18 10:40:02.511341: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:40:02.511380: Inverter 0 discharge windows currently []
2026-08-18 10:40:02.511403: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:40:02.511422: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:40:02.511443: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:40:02.583878: Dynamic load last period 1.80kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:40:02.584056: Plan was last updated on 2026-08-18 10:30:00+01:00 and is now 10.0 minutes old
2026-08-18 10:40:02.584280: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:40:02.584322: Best export window [  ]
2026-08-18 10:40:02.585098: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:40:02.588216: Load divergence over 8.0 hours mean 426.48W, min 345.0W, max 712.8W, std dev 62.63W, divergence 7.34%
2026-08-18 10:40:02.607184: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:40:02.607282: LoadML is_calculating False
2026-08-18 10:40:02.607344: Creating pool of 12 processes to match your CPU count
2026-08-18 10:40:02.725229: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.78kWh, PV 0.0kWh
2026-08-18 10:40:02.844647: Battery has 12.25 hours left - now at 9.99kWh
2026-08-18 10:40:02.888461: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 672.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.99kWh, PV 0.0kWh
2026-08-18 10:40:02.980970: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 379.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.99kWh, PV 0.0kWh
2026-08-18 10:40:03.055797: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 359.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.78kWh, PV 0.0kWh
2026-08-18 10:40:03.055875: Saving plan best values to HA entities
2026-08-18 10:40:03.198819: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:40:03.203751: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:40:03.208578: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.74kWh, house 0.61kWh, export 0.0kWh, metric 359.32p, metric10 379.09p
2026-08-18 10:40:03.271274: Marginal costs baseline metric (no standing charge): 312.6857
2026-08-18 10:40:03.497595: Marginal energy costs matrix computed: min=29.46 max=33.75
2026-08-18 10:40:03.560643: Rate array import [{'start': 640, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 640, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:40:03.561224: - Your estimated bill for today is £1.79 and tomorrow is £1.96
2026-08-18 10:40:03.561277: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:40:03.561296: - The battery is currently at 62% and is in eco mode for the next 12 hours.
2026-08-18 10:40:03.561312: - For the next 48 hours there will be no solar generation.
2026-08-18 10:40:03.561326: - You will run out of battery in 12 hours.
2026-08-18 10:40:03.561340: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:40:03.561353: 
2026-08-18 10:40:03.627769: Plan calculation took 1.04 seconds
2026-08-18 10:40:03.632104: No high rate period found
2026-08-18 10:40:03.684368: Import threshold used for optimisation was 8.0p
2026-08-18 10:40:03.734361: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:40:03.739836: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 62%, target 100%
2026-08-18 10:40:03.739969: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:40:03.740064: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:40:03.740285: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:40:03.740399: No export window planned
2026-08-18 10:40:03.740565: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:40:03.740603: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:40:03.740737: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:40:03.740891: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:40:03.740943: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:40:03.741004: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:40:03.741082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741115: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741140: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741161: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741185: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741205: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741225: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741287: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:03.741460: Inverter 0 count register writes 0
2026-08-18 10:40:03.754296: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 10:40:03.754447: Recompute is saving previous plan...
2026-08-18 10:40:03.755359: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 10:40:03.755410: Best export window [  ]
2026-08-18 10:40:03.756440: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:40:03.759493: Load divergence over 8.0 hours mean 426.48W, min 345.0W, max 712.8W, std dev 62.63W, divergence 7.34%
2026-08-18 10:40:03.777904: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:40:03.778005: LoadML is_calculating False
2026-08-18 10:40:03.778066: Creating pool of 12 processes to match your CPU count
2026-08-18 10:40:03.862375: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 10:40:03.863535: Optimise levels pass started at 2026-08-18 10:40:03
2026-08-18 10:40:03.865103: Optimise all windows, total charge 24 export 1
2026-08-18 10:40:04.428745: >> Region optimisation pass width 960 gives best_metric 357.45p, best_cost 362.36p, best_cycle 40.48kWh, best_import 26.55kWh
2026-08-18 10:40:04.567728: >> Region optimisation pass width 480 gives best_metric 357.45p, best_cost 362.36p, best_cycle 40.48kWh, best_import 26.55kWh
2026-08-18 10:40:04.804979: >> Region optimisation pass width 240 gives best_metric 357.45p, best_cost 362.36p, best_cycle 40.48kWh, best_import 26.55kWh
2026-08-18 10:40:05.422752: >> Region optimisation pass width 120 gives best_metric 357.45p, best_cost 362.36p, best_cycle 40.48kWh, best_import 26.55kWh
2026-08-18 10:40:05.422927: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 10:40:05.423012: Optimise levels pass ended at 2026-08-18 10:40:05, duration 1.6 seconds tried 63 combinations
2026-08-18 10:40:05.423076: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 357.45p, best_keep 0kWh, best_cycle 40.48kWh, best_carbon 0kg, best_import 26.55kWh
2026-08-18 10:40:05.437985: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 10:40:08.104219: Tweak plan optimisation started metric 296.75p, cost 306.44p
2026-08-18 10:40:08.396043: Tweak optimisation finished metric 296.75p, cost 306.44p, metric_keep 0kWh, cycle 34.67kWh, carbon 0kg, import 19.56kWh, changed 8 window(s)
2026-08-18 10:40:08.412869: Swap charge optimisation started metric 296.75p, cost 306.44p, min_improvement_swap 0.1p
2026-08-18 10:40:09.097337: Swap charge optimisation finished metric 296.75p, cost 306.44p
2026-08-18 10:40:09.176986: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 293.73p -> 293.73p, plan now metric 302.24p, cost 306.44p, cycle 34.67kWh, import 19.56kWh
2026-08-18 10:40:09.187576: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:40:09.187888: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:40:09.188350: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:40:09.188511: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:40:09.217877: Previous plan best metric is 296.75 (cost 306.44) and new plan best metric is 296.75 (cost 306.44)
2026-08-18 10:40:09.218034: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 10:40:09.218169: Plan valid is now true after recompute was False
2026-08-18 10:40:09.241457: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.58kWh, PV 0.0kWh
2026-08-18 10:40:09.361000: Battery has 12.25 hours left - now at 9.99kWh
2026-08-18 10:40:09.412888: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 670.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.79kWh, PV 0.0kWh
2026-08-18 10:40:09.485388: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 371.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.79kWh, PV 0.0kWh
2026-08-18 10:40:09.559676: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 351.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.58kWh, PV 0.0kWh
2026-08-18 10:40:09.559756: Saving plan best values to HA entities
2026-08-18 10:40:09.719829: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:40:09.724950: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:40:09.730275: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.7kWh, house 0.61kWh, export 0.0kWh, metric 351.07p, metric10 371.87p
2026-08-18 10:40:09.804090: Marginal costs baseline metric (no standing charge): 304.4319
2026-08-18 10:40:10.080172: Marginal energy costs matrix computed: min=29.46 max=33.75
2026-08-18 10:40:10.150090: Rate array import [{'start': 640, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 640, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:40:10.150888: - Your estimated bill for today is £1.79 and tomorrow is £1.96
2026-08-18 10:40:10.150938: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:40:10.150961: - The battery is currently at 62% and is in eco mode for the next 12 hours.
2026-08-18 10:40:10.150996: - For the next 48 hours there will be no solar generation.
2026-08-18 10:40:10.151038: - You will run out of battery in 12 hours.
2026-08-18 10:40:10.151061: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:40:10.151090: 
2026-08-18 10:40:10.210596: Plan calculation took 6.46 seconds
2026-08-18 10:40:10.210946: Inverter 0: Type SK Sunsynk
2026-08-18 10:40:10.211000: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:40:10.211278: Reserve min: 7%, battery_min: 7%
2026-08-18 10:40:10.211384: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:40:10.211764: Inverter 0 SoC: 9.77kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 779W, current battery voltage 51.2V, grid power -55W, load power 832W, PV Power 0W
2026-08-18 10:40:10.212068: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:40:10.212206: Inverter 0 scheduled charge enable is False
2026-08-18 10:40:10.212273: Inverter 0 charge windows currently []
2026-08-18 10:40:10.212328: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:40:10.212501: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:40:10.212554: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:40:10.212623: Inverter 0 scheduled discharge enable is False
2026-08-18 10:40:10.212820: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:40:10.212867: Inverter 0 discharge windows currently []
2026-08-18 10:40:10.212905: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:40:10.212945: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:40:10.212967: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:40:10.263706: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 61%, target 100%
2026-08-18 10:40:10.263929: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:40:10.264049: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:40:10.264302: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:40:10.264404: No export window planned
2026-08-18 10:40:10.264572: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:40:10.264614: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:40:10.264830: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:40:10.265022: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:40:10.265080: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:40:10.265178: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:40:10.265318: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265367: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265434: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265490: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265668: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.265985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.266043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.266101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:40:10.266148: Inverter 0 count register writes 0
2026-08-18 10:40:10.284473: Total inverter register writes now 867
2026-08-18 10:40:10.311381: Info: Completed run status Demand
2026-08-18 10:40:10.316937: Info: record_status Demand
2026-08-18 10:40:10.324045: Saved current settings to /config/predbat_config.json
2026-08-18 10:40:10.324356: Compare, best tariff: current metric 129.87p
2026-08-18 10:40:49.434535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:40:49.434733: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:40:49.434761: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:40:49.434871: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:40:49.434907: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:40:49.434925: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:40:49.434939: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:43:03.676161: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:43:03.676432: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:43:03.676475: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:43:03.676767: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:43:03.676814: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:43:03.676837: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:43:03.676855: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:45:00.876841: --------------- PredBat - update at 2026-08-18 10:45:00+01:00 with clock skew 0 minutes, minutes now 645
2026-08-18 10:45:00.877470: Saved current settings to /config/predbat_config.json
2026-08-18 10:45:00.877574: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 10:45:00.877624: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:45:00.877689: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:45:00.894666: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:45:00.894785: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:45:00.894945: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:45:00.895448: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:45:00.895567: Predbat mode is set to Control charge & discharge
2026-08-18 10:45:01.077158: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:45:01.077285: Using load_power data to fill gaps in load_today data
2026-08-18 10:45:01.779478: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:45:01.779626: Zero load period starting at 2026-08-17T10:54:00+0100 (1431 minutes) for 189 minutes with base value 207.85
2026-08-18 10:45:01.780561: Processing 721 30-minute periods for power integration
2026-08-18 10:45:01.931757: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:45:01.931868: Car charging hold False, threshold 6.0kWh
2026-08-18 10:45:01.931925: Current data so far today: load 6.5kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:45:01.943874: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:45:01.944014: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:45:01.944671: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:45:01.944732: Standing charge is set to 46.63p
2026-08-18 10:45:02.038161: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:45:02.038412: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:45:02.038601: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:45:02.039664: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:45:02.039767: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:45:02.045025: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:45:02.045466: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:45:02.087855: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:45:02.087973: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:45:02.089234: High export rate found rates in range 99p to -99p
2026-08-18 10:45:02.117479: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:45:02.118023: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:45:02.129084: Battery level now 9.99kWh, -1hr ago 11.52kWh, at midnight 6.84kWh, battery value change in the last hour -10.5p, change today 21.66p, rate_forward 6.87p
2026-08-18 10:45:02.129442: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:45:02.179780: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:45:02.179945: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:45:02.263543: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:45:02.296175: Today's load divergence 100.49%, in-day adjustment 96.17%, damping 0.95x, yesterday 92.68% today 100.47% blend 55.21%
2026-08-18 10:45:02.296283: Today's predicted so far 6.35kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 6.35kWh forecast extra.
2026-08-18 10:45:02.296314: Today's actual load so far 6.43kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 10:45:02.329683: Inverter 0: Type SK Sunsynk
2026-08-18 10:45:02.329767: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:45:02.329937: Reserve min: 7%, battery_min: 7%
2026-08-18 10:45:02.330004: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:45:02.330266: Inverter 0 SoC: 9.62kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 748W, current battery voltage 51.2V, grid power -55W, load power 796W, PV Power 0W
2026-08-18 10:45:02.330415: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:45:02.330498: Inverter 0 scheduled charge enable is False
2026-08-18 10:45:02.330532: Inverter 0 charge windows currently []
2026-08-18 10:45:02.330559: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:45:02.330671: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:45:02.330706: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:45:02.330741: Inverter 0 scheduled discharge enable is False
2026-08-18 10:45:02.330856: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:45:02.330892: Inverter 0 discharge windows currently []
2026-08-18 10:45:02.330914: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:45:02.330932: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:45:02.330949: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:45:02.397486: Dynamic load last period 1.80kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:45:02.397580: Plan was last updated on 2026-08-18 10:40:00+01:00 and is now 5.0 minutes old
2026-08-18 10:45:02.397783: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:45:02.397826: Best export window [  ]
2026-08-18 10:45:02.398682: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:45:02.401955: Load divergence over 8.0 hours mean 428.02W, min 307.2W, max 753.0W, std dev 75.75W, divergence 8.85%
2026-08-18 10:45:02.420384: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:45:02.420484: LoadML is_calculating False
2026-08-18 10:45:02.420543: Creating pool of 12 processes to match your CPU count
2026-08-18 10:45:02.531435: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 647.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 31.81kWh, PV 0.0kWh
2026-08-18 10:45:02.647309: Battery has 11.83 hours left - now at 9.62kWh
2026-08-18 10:45:02.690714: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 682.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:10:00, load 33.02kWh, PV 0.0kWh
2026-08-18 10:45:02.764607: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 386.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:10:00, load 33.02kWh, PV 0.0kWh
2026-08-18 10:45:02.843893: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 366.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 31.81kWh, PV 0.0kWh
2026-08-18 10:45:02.844272: Saving plan best values to HA entities
2026-08-18 10:45:03.004701: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:45:03.010564: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 10:45:03.015725: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.23kWh, house 0.93kWh, export 0.0kWh, metric 366.03p, metric10 386.37p
2026-08-18 10:45:03.089167: Marginal costs baseline metric (no standing charge): 319.3917
2026-08-18 10:45:03.321214: Marginal energy costs matrix computed: min=27.31 max=33.75
2026-08-18 10:45:03.393504: Rate array import [{'start': 645, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 645, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:45:03.394615: - Your estimated bill for today is £1.90 and tomorrow is £1.96
2026-08-18 10:45:03.394685: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:45:03.394718: - The battery is currently at 60% and is in eco mode for the next 12 hours.
2026-08-18 10:45:03.394753: - For the next 48 hours there will be no solar generation.
2026-08-18 10:45:03.394790: - You will run out of battery in 11 hours.
2026-08-18 10:45:03.394826: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:45:03.394859: 
2026-08-18 10:45:03.456673: Plan calculation took 1.06 seconds
2026-08-18 10:45:03.460130: No high rate period found
2026-08-18 10:45:03.506512: Import threshold used for optimisation was 8.0p
2026-08-18 10:45:03.551580: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:45:03.556911: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 10:45:03.557025: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:45:03.557125: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:45:03.557398: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:45:03.557497: No export window planned
2026-08-18 10:45:03.557622: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:45:03.557657: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:45:03.557791: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:45:03.557966: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:45:03.558025: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:45:03.558092: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:45:03.558220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558269: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558302: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558408: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558617: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:45:03.558665: Inverter 0 count register writes 0
2026-08-18 10:45:03.572909: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 10:45:03.577593: Total inverter register writes now 867
2026-08-18 10:45:03.606272: Info: Completed run status Demand
2026-08-18 10:45:03.612218: Info: record_status Demand
2026-08-18 10:45:03.618561: Saved current settings to /config/predbat_config.json
2026-08-18 10:45:03.618863: Compare, best tariff: current metric 129.87p
2026-08-18 10:45:33.724782: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:45:33.725229: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:45:33.725300: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:45:33.725610: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:45:33.725707: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:45:33.725756: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:45:33.725778: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:47:33.970838: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:47:33.971092: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:47:33.971135: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:47:33.971297: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:47:33.971335: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:47:33.971354: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:47:33.971386: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:49:34.181724: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:49:34.181942: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:49:34.181983: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:49:34.182163: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:49:34.182212: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:49:34.182249: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:49:34.182267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:50:00.285683: --------------- PredBat - update at 2026-08-18 10:50:00+01:00 with clock skew 0 minutes, minutes now 650
2026-08-18 10:50:00.286454: Saved current settings to /config/predbat_config.json
2026-08-18 10:50:00.286577: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 10:50:00.286642: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:50:00.286761: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:50:00.305422: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:50:00.305552: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:50:00.305714: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:50:00.306223: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:50:00.306342: Predbat mode is set to Control charge & discharge
2026-08-18 10:50:00.502825: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:50:00.502955: Using load_power data to fill gaps in load_today data
2026-08-18 10:50:01.348728: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:50:01.348921: Zero load period starting at 2026-08-17T10:54:00+0100 (1436 minutes) for 189 minutes with base value 207.825
2026-08-18 10:50:01.350028: Processing 721 30-minute periods for power integration
2026-08-18 10:50:01.530193: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:50:01.530322: Car charging hold False, threshold 6.0kWh
2026-08-18 10:50:01.530366: Current data so far today: load 6.65kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:50:01.544723: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:50:01.544854: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:50:01.545740: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:50:01.545822: Standing charge is set to 46.63p
2026-08-18 10:50:01.639033: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:50:01.639283: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:50:01.639468: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:50:01.640703: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:50:01.640818: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:50:01.646475: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:50:01.647148: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:50:01.690979: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:50:01.691079: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:50:01.692419: High export rate found rates in range 99p to -99p
2026-08-18 10:50:01.721386: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:50:01.721490: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:50:01.733611: Battery level now 9.62kWh, -1hr ago 11.52kWh, at midnight 6.84kWh, battery value change in the last hour -13.09p, change today 19.08p, rate_forward 6.87p
2026-08-18 10:50:01.733966: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 2.0kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:50:01.784594: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:50:01.784733: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:50:01.868678: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:50:01.901502: Today's load divergence 101.12%, in-day adjustment 96.47%, damping 0.95x, yesterday 92.68% today 101.07% blend 54.86%
2026-08-18 10:50:01.901685: Today's predicted so far 6.4kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 6.4kWh forecast extra.
2026-08-18 10:50:01.901881: Today's actual load so far 6.58kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 10:50:01.937841: Inverter 0: Type SK Sunsynk
2026-08-18 10:50:01.937928: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:50:01.938104: Reserve min: 7%, battery_min: 7%
2026-08-18 10:50:01.938259: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:50:01.938543: Inverter 0 SoC: 9.62kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 634W, current battery voltage 51.2V, grid power -51W, load power 700W, PV Power 0W
2026-08-18 10:50:01.938694: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:50:01.938776: Inverter 0 scheduled charge enable is False
2026-08-18 10:50:01.938804: Inverter 0 charge windows currently []
2026-08-18 10:50:01.938828: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:50:01.938960: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:50:01.938995: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:50:01.939030: Inverter 0 scheduled discharge enable is False
2026-08-18 10:50:01.939164: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:50:01.939202: Inverter 0 discharge windows currently []
2026-08-18 10:50:01.939225: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:50:01.939243: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:50:01.939260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:50:01.999462: Dynamic load last period 1.80kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:50:01.999580: Plan was last updated on 2026-08-18 10:40:00+01:00 and is now 10.0 minutes old
2026-08-18 10:50:01.999840: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:50:01.999927: Best export window [  ]
2026-08-18 10:50:02.000817: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:50:02.003891: Load divergence over 8.0 hours mean 428.03W, min 316.8W, max 620.4W, std dev 65.3W, divergence 7.63%
2026-08-18 10:50:02.022628: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:50:02.022747: LoadML is_calculating False
2026-08-18 10:50:02.022836: Creating pool of 12 processes to match your CPU count
2026-08-18 10:50:02.144551: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 646.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.01kWh, PV 0.0kWh
2026-08-18 10:50:02.264689: Battery has 11.75 hours left - now at 9.62kWh
2026-08-18 10:50:02.310629: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 681.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:10:00, load 33.22kWh, PV 0.0kWh
2026-08-18 10:50:02.384179: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 388.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:10:00, load 33.22kWh, PV 0.0kWh
2026-08-18 10:50:02.470396: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 368.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.01kWh, PV 0.0kWh
2026-08-18 10:50:02.470478: Saving plan best values to HA entities
2026-08-18 10:50:02.629529: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:50:02.634118: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:50:02.638589: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.74kWh, house 0.88kWh, export 0.0kWh, metric 368.77p, metric10 388.32p
2026-08-18 10:50:02.708285: Marginal costs baseline metric (no standing charge): 322.1344
2026-08-18 10:50:02.957765: Marginal energy costs matrix computed: min=25.17 max=33.75
2026-08-18 10:50:03.029842: Rate array import [{'start': 650, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 650, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:50:03.030564: - Your estimated bill for today is £1.89 and tomorrow is £1.97
2026-08-18 10:50:03.030608: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:50:03.030630: - The battery is currently at 60% and is in eco mode for the next 12 hours.
2026-08-18 10:50:03.030665: - For the next 48 hours there will be no solar generation.
2026-08-18 10:50:03.030684: - You will run out of battery in 11 hours.
2026-08-18 10:50:03.030701: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:50:03.030718: 
2026-08-18 10:50:03.083386: Plan calculation took 1.08 seconds
2026-08-18 10:50:03.086224: No high rate period found
2026-08-18 10:50:03.130292: Import threshold used for optimisation was 8.0p
2026-08-18 10:50:03.174402: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:50:03.179802: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 10:50:03.179979: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:50:03.180141: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:50:03.180438: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:50:03.180545: No export window planned
2026-08-18 10:50:03.180740: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:50:03.180784: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:50:03.180972: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:50:03.181211: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:50:03.181284: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:50:03.181393: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:50:03.181537: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181633: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181813: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181868: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.181987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:03.182278: Inverter 0 count register writes 0
2026-08-18 10:50:03.197630: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 10:50:03.197808: Recompute is saving previous plan...
2026-08-18 10:50:03.198685: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 10:50:03.198735: Best export window [  ]
2026-08-18 10:50:03.199427: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:50:03.201956: Load divergence over 8.0 hours mean 428.03W, min 316.8W, max 620.4W, std dev 65.3W, divergence 7.63%
2026-08-18 10:50:03.216518: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:50:03.216599: LoadML is_calculating False
2026-08-18 10:50:03.216649: Creating pool of 12 processes to match your CPU count
2026-08-18 10:50:03.287083: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 10:50:03.287789: Optimise levels pass started at 2026-08-18 10:50:03
2026-08-18 10:50:03.287829: Optimise all windows, total charge 24 export 1
2026-08-18 10:50:03.844927: >> Region optimisation pass width 960 gives best_metric 368.33p, best_cost 371.84p, best_cycle 40.26kWh, best_import 26.84kWh
2026-08-18 10:50:03.985298: >> Region optimisation pass width 480 gives best_metric 368.33p, best_cost 371.84p, best_cycle 40.26kWh, best_import 26.84kWh
2026-08-18 10:50:04.179459: >> Region optimisation pass width 240 gives best_metric 368.33p, best_cost 371.84p, best_cycle 40.26kWh, best_import 26.84kWh
2026-08-18 10:50:04.714212: >> Region optimisation pass width 120 gives best_metric 368.33p, best_cost 371.84p, best_cycle 40.26kWh, best_import 26.84kWh
2026-08-18 10:50:04.714375: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 10:50:04.714423: Optimise levels pass ended at 2026-08-18 10:50:04, duration 1.4 seconds tried 63 combinations
2026-08-18 10:50:04.714475: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 368.33p, best_keep 0kWh, best_cycle 40.26kWh, best_carbon 0kg, best_import 26.84kWh
2026-08-18 10:50:04.730117: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 10:50:07.289330: Tweak plan optimisation started metric 306.18p, cost 315.9p
2026-08-18 10:50:07.561612: Tweak optimisation finished metric 306.18p, cost 315.9p, metric_keep 0kWh, cycle 34.3kWh, carbon 0kg, import 19.85kWh, changed 8 window(s)
2026-08-18 10:50:07.583049: Swap charge optimisation started metric 306.18p, cost 315.9p, min_improvement_swap 0.1p
2026-08-18 10:50:08.356340: Swap charge optimisation finished metric 306.18p, cost 315.9p
2026-08-18 10:50:08.449206: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 303.17p -> 303.17p, plan now metric 311.67p, cost 315.89p, cycle 34.3kWh, import 19.85kWh
2026-08-18 10:50:08.459186: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:50:08.459550: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:50:08.459796: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:50:08.460049: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:50:08.497307: Previous plan best metric is 306.18 (cost 315.9) and new plan best metric is 306.18 (cost 315.9)
2026-08-18 10:50:08.497519: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 10:50:08.497778: Plan valid is now true after recompute was False
2026-08-18 10:50:08.527701: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 645.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 31.82kWh, PV 0.0kWh
2026-08-18 10:50:08.629458: Battery has 11.75 hours left - now at 9.62kWh
2026-08-18 10:50:08.673202: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 679.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:10:00, load 33.02kWh, PV 0.0kWh
2026-08-18 10:50:08.751423: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 381.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:10:00, load 33.02kWh, PV 0.0kWh
2026-08-18 10:50:08.827480: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 360.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 31.82kWh, PV 0.0kWh
2026-08-18 10:50:08.827563: Saving plan best values to HA entities
2026-08-18 10:50:08.972294: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:50:08.977693: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:50:08.982774: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.71kWh, house 0.88kWh, export 0.0kWh, metric 360.54p, metric10 381.12p
2026-08-18 10:50:09.052802: Marginal costs baseline metric (no standing charge): 313.9013
2026-08-18 10:50:09.280613: Marginal energy costs matrix computed: min=25.17 max=33.75
2026-08-18 10:50:09.355539: Rate array import [{'start': 650, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 650, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:50:09.356329: - Your estimated bill for today is £1.89 and tomorrow is £1.97
2026-08-18 10:50:09.356378: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:50:09.356400: - The battery is currently at 60% and is in eco mode for the next 12 hours.
2026-08-18 10:50:09.356419: - For the next 48 hours there will be no solar generation.
2026-08-18 10:50:09.356437: - You will run out of battery in 11 hours.
2026-08-18 10:50:09.356454: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:50:09.356472: 
2026-08-18 10:50:09.413305: Plan calculation took 6.22 seconds
2026-08-18 10:50:09.413635: Inverter 0: Type SK Sunsynk
2026-08-18 10:50:09.413684: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:50:09.413891: Reserve min: 7%, battery_min: 7%
2026-08-18 10:50:09.413966: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:50:09.414318: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 634W, current battery voltage 51.2V, grid power -52W, load power 686W, PV Power 0W
2026-08-18 10:50:09.414540: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:50:09.414644: Inverter 0 scheduled charge enable is False
2026-08-18 10:50:09.414673: Inverter 0 charge windows currently []
2026-08-18 10:50:09.414713: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:50:09.414825: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:50:09.414865: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:50:09.414900: Inverter 0 scheduled discharge enable is False
2026-08-18 10:50:09.415028: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:50:09.415066: Inverter 0 discharge windows currently []
2026-08-18 10:50:09.415088: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:50:09.415108: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:50:09.415143: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:50:09.479858: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 10:50:09.480113: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:50:09.480399: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:50:09.480641: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:50:09.480745: No export window planned
2026-08-18 10:50:09.480914: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:50:09.480958: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:50:09.481164: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:50:09.481366: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:50:09.481424: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:50:09.481520: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:50:09.481639: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.481702: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.481760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.481804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.481859: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.481912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.481971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482222: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:50:09.482357: Inverter 0 count register writes 0
2026-08-18 10:50:09.512801: Total inverter register writes now 867
2026-08-18 10:50:09.549851: Info: Completed run status Demand
2026-08-18 10:50:09.556252: Info: record_status Demand
2026-08-18 10:50:09.563090: Saved current settings to /config/predbat_config.json
2026-08-18 10:50:09.563406: Compare, best tariff: current metric 129.87p
2026-08-18 10:50:48.671648: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:50:48.671873: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:50:48.671965: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:50:48.672133: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:50:48.672174: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:50:48.672196: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:50:48.672214: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:52:48.892356: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:52:48.892580: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:52:48.892614: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:52:48.892760: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:52:48.892800: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:52:48.892822: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:52:48.892840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:54:49.103274: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:54:49.103492: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:54:49.103534: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:54:49.103678: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:54:49.103715: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:54:49.103736: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:54:49.103754: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:55:00.185911: --------------- PredBat - update at 2026-08-18 10:55:00+01:00 with clock skew 0 minutes, minutes now 655
2026-08-18 10:55:00.186731: Saved current settings to /config/predbat_config.json
2026-08-18 10:55:00.186847: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 10:55:00.186923: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:55:00.187027: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:55:00.209832: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:55:00.209997: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:55:00.210276: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:55:00.210781: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:55:00.210898: Predbat mode is set to Control charge & discharge
2026-08-18 10:55:00.402460: Found 21602 load_today datapoints going back 28 days
2026-08-18 10:55:00.402589: Using load_power data to fill gaps in load_today data
2026-08-18 10:55:01.182776: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:55:01.182949: Zero load period starting at 2026-08-17T10:54:00+0100 (1441 minutes) for 189 minutes with base value 207.8
2026-08-18 10:55:01.183865: Processing 721 30-minute periods for power integration
2026-08-18 10:55:01.338900: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:55:01.339008: Car charging hold False, threshold 6.0kWh
2026-08-18 10:55:01.339095: Current data so far today: load 6.8kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:55:01.351201: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:55:01.351283: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:55:01.352026: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:55:01.352112: Standing charge is set to 46.63p
2026-08-18 10:55:01.467157: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:55:01.467931: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:55:01.468325: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:55:01.470430: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:55:01.470573: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:55:01.476119: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:55:01.476437: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:55:01.518797: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:55:01.518906: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:55:01.520165: High export rate found rates in range 99p to -99p
2026-08-18 10:55:01.548232: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:55:01.548323: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:55:01.560105: Battery level now 9.62kWh, -1hr ago 11.45kWh, at midnight 6.84kWh, battery value change in the last hour -12.59p, change today 19.08p, rate_forward 6.87p
2026-08-18 10:55:01.560525: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 2.1kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:55:01.615491: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:55:01.615627: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:55:01.697999: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:55:01.723279: Today's load divergence 101.81%, in-day adjustment 96.79%, damping 0.95x, yesterday 92.68% today 101.72% blend 54.51%
2026-08-18 10:55:01.723666: Today's predicted so far 6.43kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 6.43kWh forecast extra.
2026-08-18 10:55:01.723704: Today's actual load so far 6.72kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 10:55:01.753465: Inverter 0: Type SK Sunsynk
2026-08-18 10:55:01.753536: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:55:01.753681: Reserve min: 7%, battery_min: 7%
2026-08-18 10:55:01.753730: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:55:01.753934: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 694W, current battery voltage 51.2V, grid power -57W, load power 700W, PV Power 0W
2026-08-18 10:55:01.754055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:55:01.754144: Inverter 0 scheduled charge enable is False
2026-08-18 10:55:01.754168: Inverter 0 charge windows currently []
2026-08-18 10:55:01.754190: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:55:01.754295: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:55:01.754325: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:55:01.754354: Inverter 0 scheduled discharge enable is False
2026-08-18 10:55:01.754451: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:55:01.754480: Inverter 0 discharge windows currently []
2026-08-18 10:55:01.754498: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:55:01.754514: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:55:01.754533: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:55:01.800353: Dynamic load last period 1.80kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:55:01.800463: Plan was last updated on 2026-08-18 10:50:00+01:00 and is now 5.0 minutes old
2026-08-18 10:55:01.800760: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:55:01.800812: Best export window [  ]
2026-08-18 10:55:01.801635: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:55:01.804353: Load divergence over 8.0 hours mean 428.31W, min 324.0W, max 601.2W, std dev 61.58W, divergence 7.19%
2026-08-18 10:55:01.819596: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:55:01.819668: LoadML is_calculating False
2026-08-18 10:55:01.819716: Creating pool of 12 processes to match your CPU count
2026-08-18 10:55:01.917775: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 646.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.06kWh, PV 0.0kWh
2026-08-18 10:55:02.028568: Battery has 11.67 hours left - now at 9.6kWh
2026-08-18 10:55:02.066492: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 681.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:15:00, load 33.26kWh, PV 0.0kWh
2026-08-18 10:55:02.131048: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 385.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:15:00, load 33.26kWh, PV 0.0kWh
2026-08-18 10:55:02.196329: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 364.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.06kWh, PV 0.0kWh
2026-08-18 10:55:02.196398: Saving plan best values to HA entities
2026-08-18 10:55:02.328414: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:55:02.332769: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:55:02.337133: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.21kWh, house 0.88kWh, export 0.0kWh, metric 364.54p, metric10 385.2p
2026-08-18 10:55:02.398230: Marginal costs baseline metric (no standing charge): 317.9082
2026-08-18 10:55:02.615495: Marginal energy costs matrix computed: min=23.02 max=33.75
2026-08-18 10:55:02.673510: Rate array import [{'start': 655, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 655, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:55:02.674196: - Your estimated bill for today is £1.89 and tomorrow is £1.96
2026-08-18 10:55:02.674238: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:55:02.674261: - The battery is currently at 60% and is in eco mode for the next 12 hours.
2026-08-18 10:55:02.674317: - For the next 48 hours there will be no solar generation.
2026-08-18 10:55:02.674339: - You will run out of battery in 11 hours.
2026-08-18 10:55:02.674366: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 10:55:02.674400: 
2026-08-18 10:55:02.726820: Plan calculation took 0.93 seconds
2026-08-18 10:55:02.730811: No high rate period found
2026-08-18 10:55:02.775560: Import threshold used for optimisation was 8.0p
2026-08-18 10:55:02.825777: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:55:02.832380: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 10:55:02.832571: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:55:02.832749: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:55:02.833081: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:55:02.833226: No export window planned
2026-08-18 10:55:02.833437: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:55:02.833488: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:55:02.833699: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:55:02.833937: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:55:02.834025: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:55:02.834146: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:55:02.834310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834490: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.834983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.835028: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.835106: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.835172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:55:02.835221: Inverter 0 count register writes 0
2026-08-18 10:55:02.853112: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 10:55:02.861022: Total inverter register writes now 867
2026-08-18 10:55:02.895451: Info: Completed run status Demand
2026-08-18 10:55:02.901249: Info: record_status Demand
2026-08-18 10:55:02.907799: Saved current settings to /config/predbat_config.json
2026-08-18 10:55:02.908139: Compare, best tariff: current metric 129.87p
2026-08-18 10:55:34.012523: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:55:34.012748: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:55:34.012795: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:55:34.012947: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:55:34.012989: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:55:34.013011: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:55:34.013034: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:56:10.316230: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 10:56:10.469410: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 10:57:34.229414: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:57:34.229638: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:57:34.229679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:57:34.229810: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:57:34.229847: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:57:34.229869: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:57:34.229894: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:59:34.440059: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:59:34.440311: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:59:34.440351: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:59:34.440484: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:59:34.440521: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:59:34.440542: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:59:34.440560: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:59:57.822620: Info: HAHistory: Pruning history data started.
2026-08-18 10:59:57.825280: Info: HAHistory: Pruning history data completed.
2026-08-18 11:00:00.536366: --------------- PredBat - update at 2026-08-18 11:00:00+01:00 with clock skew 0 minutes, minutes now 660
2026-08-18 11:00:00.537186: Saved current settings to /config/predbat_config.json
2026-08-18 11:00:00.537354: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 11:00:00.537493: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:00:00.537595: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:00:00.556905: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:00:00.557092: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:00:00.557388: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:00:00.558150: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:00:00.558343: Predbat mode is set to Control charge & discharge
2026-08-18 11:00:00.757092: Found 21602 load_today datapoints going back 27 days
2026-08-18 11:00:00.757221: Using load_power data to fill gaps in load_today data
2026-08-18 11:00:01.451457: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:00:01.451623: Zero load period starting at 2026-08-17T10:54:00+0100 (1446 minutes) for 189 minutes with base value 207.775
2026-08-18 11:00:01.452539: Processing 721 30-minute periods for power integration
2026-08-18 11:00:01.610722: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:00:01.610850: Car charging hold False, threshold 6.0kWh
2026-08-18 11:00:01.610886: Current data so far today: load 6.65kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:00:01.622964: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:00:01.623052: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:00:01.623639: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:00:01.623700: Standing charge is set to 46.63p
2026-08-18 11:00:01.733243: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:00:01.733440: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:00:01.733580: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:00:01.734418: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:00:01.734503: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:00:01.738823: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:00:01.739169: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:00:01.776674: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:00:01.776771: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:00:01.777831: High export rate found rates in range 99p to -99p
2026-08-18 11:00:01.801515: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:00:01.801624: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:00:01.811832: Battery level now 9.6kWh, -1hr ago 11.36kWh, at midnight 6.84kWh, battery value change in the last hour -12.1p, change today 18.97p, rate_forward 6.87p
2026-08-18 11:00:01.812216: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:00:01.863187: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 11:00:01.863319: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:00:01.934843: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:00:01.962489: Today's load divergence 99.86%, in-day adjustment 95.97%, damping 0.95x, yesterday 92.68% today 99.86% blend 54.17%
2026-08-18 11:00:01.962605: Today's predicted so far 6.65kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 6.65kWh forecast extra.
2026-08-18 11:00:01.962658: Today's actual load so far 6.62kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 11:00:02.000114: Inverter 0: Type SK Sunsynk
2026-08-18 11:00:02.000204: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:00:02.000381: Reserve min: 7%, battery_min: 7%
2026-08-18 11:00:02.000457: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:00:02.000709: Inverter 0 SoC: 9.56kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 654W, current battery voltage 51.2V, grid power -54W, load power 704W, PV Power 0W
2026-08-18 11:00:02.000878: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:00:02.000972: Inverter 0 scheduled charge enable is False
2026-08-18 11:00:02.001047: Inverter 0 charge windows currently []
2026-08-18 11:00:02.001087: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:00:02.001279: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:00:02.001342: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:00:02.001414: Inverter 0 scheduled discharge enable is False
2026-08-18 11:00:02.001641: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:00:02.001702: Inverter 0 discharge windows currently []
2026-08-18 11:00:02.001743: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:00:02.001783: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:00:02.001814: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:00:02.069730: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:00:02.069848: Plan was last updated on 2026-08-18 10:50:00+01:00 and is now 10.0 minutes old
2026-08-18 11:00:02.070170: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:00:02.070222: Best export window [  ]
2026-08-18 11:00:02.071392: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:00:02.076622: Load divergence over 8.0 hours mean 428.09W, min 345.6W, max 633.6W, std dev 54.87W, divergence 6.41%
2026-08-18 11:00:02.092111: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:00:02.092208: LoadML is_calculating False
2026-08-18 11:00:02.092259: Creating pool of 12 processes to match your CPU count
2026-08-18 11:00:02.190417: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 640.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.76kWh, PV 0.0kWh
2026-08-18 11:00:02.316759: Battery has 11.83 hours left - now at 9.56kWh
2026-08-18 11:00:02.360979: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 674.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.95kWh, PV 0.0kWh
2026-08-18 11:00:02.433852: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 381.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.95kWh, PV 0.0kWh
2026-08-18 11:00:02.509735: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 362.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.76kWh, PV 0.0kWh
2026-08-18 11:00:02.509831: Saving plan best values to HA entities
2026-08-18 11:00:02.688205: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:00:02.693403: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:00:02.698137: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.72kWh, house 0.7kWh, export 0.0kWh, metric 362.28p, metric10 381.73p
2026-08-18 11:00:02.765475: Marginal costs baseline metric (no standing charge): 315.6419
2026-08-18 11:00:03.006956: Marginal energy costs matrix computed: min=20.88 max=33.75
2026-08-18 11:00:03.072275: Rate array import [{'start': 660, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 660, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:00:03.072870: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 11:00:03.072906: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:00:03.072924: - The battery is currently at 60% and is in eco mode for the next 12 hours.
2026-08-18 11:00:03.072939: - For the next 48 hours there will be no solar generation.
2026-08-18 11:00:03.072953: - You will run out of battery in 11 hours.
2026-08-18 11:00:03.072967: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:00:03.072981: 
2026-08-18 11:00:03.131467: Plan calculation took 1.06 seconds
2026-08-18 11:00:03.134903: No high rate period found
2026-08-18 11:00:03.188182: Import threshold used for optimisation was 8.0p
2026-08-18 11:00:03.232709: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:00:03.237582: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 11:00:03.237685: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:00:03.237772: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:00:03.237979: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:00:03.238082: No export window planned
2026-08-18 11:00:03.238217: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:00:03.238248: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:00:03.238359: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:00:03.238516: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:00:03.238566: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:00:03.238615: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:00:03.238691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238718: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238828: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238956: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.238999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.239041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:03.239060: Inverter 0 count register writes 0
2026-08-18 11:00:03.252948: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 11:00:03.253134: Recompute is saving previous plan...
2026-08-18 11:00:03.253862: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:00:03.253919: Best export window [  ]
2026-08-18 11:00:03.254601: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:00:03.257190: Load divergence over 8.0 hours mean 428.09W, min 345.6W, max 633.6W, std dev 54.87W, divergence 6.41%
2026-08-18 11:00:03.270806: Calculating data from yesterday for savings calculation
2026-08-18 11:00:03.284456: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 11:00:03.332405: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 11:00:03.347864: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 11:00:03.372460: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 11:00:03.411215: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 11:00:03.490951: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 11:00:03.491132: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 11:00:03.501572: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:00:03.501696: LoadML is_calculating False
2026-08-18 11:00:03.501785: Creating pool of 12 processes to match your CPU count
2026-08-18 11:00:03.585503: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:00:03.586350: Optimise levels pass started at 2026-08-18 11:00:03
2026-08-18 11:00:03.586408: Optimise all windows, total charge 24 export 1
2026-08-18 11:00:04.176855: >> Region optimisation pass width 960 gives best_metric 363.7p, best_cost 367.92p, best_cycle 41.18kWh, best_import 26.95kWh
2026-08-18 11:00:04.319308: >> Region optimisation pass width 480 gives best_metric 363.7p, best_cost 367.92p, best_cycle 41.18kWh, best_import 26.95kWh
2026-08-18 11:00:04.548167: >> Region optimisation pass width 240 gives best_metric 363.7p, best_cost 367.92p, best_cycle 41.18kWh, best_import 26.95kWh
2026-08-18 11:00:05.194420: >> Region optimisation pass width 120 gives best_metric 363.7p, best_cost 367.92p, best_cycle 41.18kWh, best_import 26.95kWh
2026-08-18 11:00:05.194618: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:00:05.194707: Optimise levels pass ended at 2026-08-18 11:00:05, duration 1.6 seconds tried 63 combinations
2026-08-18 11:00:05.194771: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 363.7p, best_keep 0kWh, best_cycle 41.18kWh, best_carbon 0kg, best_import 26.95kWh
2026-08-18 11:00:05.213695: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 11:00:08.225869: Tweak plan optimisation started metric 299.81p, cost 309.55p
2026-08-18 11:00:08.565259: Tweak optimisation finished metric 299.81p, cost 309.55p, metric_keep 0kWh, cycle 34.26kWh, carbon 0kg, import 19.65kWh, changed 8 window(s)
2026-08-18 11:00:08.587101: Swap charge optimisation started metric 299.81p, cost 309.55p, min_improvement_swap 0.1p
2026-08-18 11:00:09.431553: Swap charge optimisation finished metric 299.81p, cost 309.55p
2026-08-18 11:00:09.533474: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 296.87p -> 296.87p, plan now metric 305.32p, cost 309.55p, cycle 34.25kWh, import 19.65kWh
2026-08-18 11:00:09.543295: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:00:09.543636: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:00:09.543838: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:00:09.544040: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:00:09.593831: Previous plan best metric is 299.81 (cost 309.55) and new plan best metric is 299.81 (cost 309.55)
2026-08-18 11:00:09.594045: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 11:00:09.594183: Plan valid is now true after recompute was False
2026-08-18 11:00:09.617824: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 638.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.58kWh, PV 0.0kWh
2026-08-18 11:00:09.725316: Battery has 11.83 hours left - now at 9.56kWh
2026-08-18 11:00:09.780534: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 673.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:00:09.846938: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 374.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:00:09.919929: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 354.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.58kWh, PV 0.0kWh
2026-08-18 11:00:09.920023: Saving plan best values to HA entities
2026-08-18 11:00:10.059281: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:00:10.064185: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:00:10.068991: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.7kWh, house 0.7kWh, export 0.0kWh, metric 354.15p, metric10 374.65p
2026-08-18 11:00:10.132034: Marginal costs baseline metric (no standing charge): 307.5176
2026-08-18 11:00:10.371789: Marginal energy costs matrix computed: min=20.88 max=33.75
2026-08-18 11:00:10.433425: Rate array import [{'start': 660, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 660, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:00:10.434121: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 11:00:10.434175: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:00:10.434210: - The battery is currently at 60% and is in eco mode for the next 12 hours.
2026-08-18 11:00:10.434239: - For the next 48 hours there will be no solar generation.
2026-08-18 11:00:10.434273: - You will run out of battery in 11 hours.
2026-08-18 11:00:10.434295: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:00:10.434316: 
2026-08-18 11:00:10.494388: Plan calculation took 7.24 seconds
2026-08-18 11:00:10.494686: Inverter 0: Type SK Sunsynk
2026-08-18 11:00:10.494729: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:00:10.494939: Reserve min: 7%, battery_min: 7%
2026-08-18 11:00:10.495029: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:00:10.495369: Inverter 0 SoC: 9.56kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 654W, current battery voltage 51.2V, grid power -54W, load power 704W, PV Power 0W
2026-08-18 11:00:10.495589: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:00:10.495691: Inverter 0 scheduled charge enable is False
2026-08-18 11:00:10.495727: Inverter 0 charge windows currently []
2026-08-18 11:00:10.495758: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:00:10.495866: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:00:10.495942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:00:10.496036: Inverter 0 scheduled discharge enable is False
2026-08-18 11:00:10.496196: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:00:10.496236: Inverter 0 discharge windows currently []
2026-08-18 11:00:10.496260: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:00:10.496279: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:00:10.496296: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:00:10.565252: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 11:00:10.565800: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:00:10.565911: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:00:10.566167: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:00:10.566284: No export window planned
2026-08-18 11:00:10.566466: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:00:10.566539: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:00:10.566754: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:00:10.566973: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:00:10.567061: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:00:10.567149: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:00:10.567267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567453: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567484: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567517: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567542: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:00:10.567811: Inverter 0 count register writes 0
2026-08-18 11:00:10.592903: Total inverter register writes now 867
2026-08-18 11:00:10.725160: Info: Completed run status Demand
2026-08-18 11:00:10.731695: Info: record_status Demand
2026-08-18 11:00:10.738545: Saved current settings to /config/predbat_config.json
2026-08-18 11:00:10.738899: Compare, best tariff: current metric 129.87p
2026-08-18 11:00:48.859292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:00:48.859536: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:00:48.859577: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:00:48.859692: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:00:48.859724: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:00:48.859742: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:00:48.859756: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:02:49.081486: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:02:49.081718: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:02:49.081780: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:02:49.081919: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:02:49.081957: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:02:49.081979: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:02:49.082014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:04:49.289643: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:04:49.289889: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:04:49.289924: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:04:49.290078: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:04:49.290118: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:04:49.290140: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:04:49.290158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:05:00.381800: --------------- PredBat - update at 2026-08-18 11:05:00+01:00 with clock skew 0 minutes, minutes now 665
2026-08-18 11:05:00.382923: Saved current settings to /config/predbat_config.json
2026-08-18 11:05:00.383149: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 11:05:00.383259: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:05:00.383385: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:05:00.414362: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:05:00.414487: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:05:00.414707: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:05:00.415322: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:05:00.415491: Predbat mode is set to Control charge & discharge
2026-08-18 11:05:00.592518: Found 21602 load_today datapoints going back 27 days
2026-08-18 11:05:00.592648: Using load_power data to fill gaps in load_today data
2026-08-18 11:05:01.401330: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:05:01.401681: Zero load period starting at 2026-08-17T10:54:00+0100 (1451 minutes) for 189 minutes with base value 207.75
2026-08-18 11:05:01.403457: Processing 721 30-minute periods for power integration
2026-08-18 11:05:01.614342: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:05:01.614461: Car charging hold False, threshold 6.0kWh
2026-08-18 11:05:01.614506: Current data so far today: load 6.7kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:05:01.629346: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:05:01.629452: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:05:01.630199: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:05:01.630279: Standing charge is set to 46.63p
2026-08-18 11:05:01.736098: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:05:01.736573: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:05:01.736768: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:05:01.738254: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:05:01.738379: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:05:01.743819: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:05:01.744241: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:05:01.787798: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:05:01.787930: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:05:01.789218: High export rate found rates in range 99p to -99p
2026-08-18 11:05:01.816735: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:05:01.816837: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:05:01.829733: Battery level now 9.56kWh, -1hr ago 11.36kWh, at midnight 6.84kWh, battery value change in the last hour -12.37p, change today 18.69p, rate_forward 6.87p
2026-08-18 11:05:01.830119: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:05:01.885465: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 11:05:01.885594: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:05:01.973048: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:05:02.008843: Today's load divergence 99.42%, in-day adjustment 95.81%, damping 0.95x, yesterday 92.68% today 99.45% blend 53.82%
2026-08-18 11:05:02.008937: Today's predicted so far 6.77kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 6.77kWh forecast extra.
2026-08-18 11:05:02.009015: Today's actual load so far 6.67kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 11:05:02.047189: Inverter 0: Type SK Sunsynk
2026-08-18 11:05:02.047269: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:05:02.047439: Reserve min: 7%, battery_min: 7%
2026-08-18 11:05:02.047513: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:05:02.047835: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 3764W, current battery voltage 51.2V, grid power -57W, load power 3770W, PV Power 0W
2026-08-18 11:05:02.048115: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:05:02.048217: Inverter 0 scheduled charge enable is False
2026-08-18 11:05:02.048251: Inverter 0 charge windows currently []
2026-08-18 11:05:02.048278: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:05:02.048382: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:05:02.048416: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:05:02.048450: Inverter 0 scheduled discharge enable is False
2026-08-18 11:05:02.048567: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:05:02.048603: Inverter 0 discharge windows currently []
2026-08-18 11:05:02.048625: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:05:02.048644: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:05:02.048661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:05:02.111093: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:05:02.111211: Plan was last updated on 2026-08-18 11:00:00+01:00 and is now 5.0 minutes old
2026-08-18 11:05:02.111442: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:05:02.111485: Best export window [  ]
2026-08-18 11:05:02.112178: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:05:02.114908: Load divergence over 8.0 hours mean 428.12W, min 345.0W, max 675.0W, std dev 62.87W, divergence 7.34%
2026-08-18 11:05:02.130185: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:05:02.130279: LoadML is_calculating False
2026-08-18 11:05:02.130350: Creating pool of 12 processes to match your CPU count
2026-08-18 11:05:02.260836: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 640.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 31.64kWh, PV 0.0kWh
2026-08-18 11:05:02.391979: Battery has 11.67 hours left - now at 9.44kWh
2026-08-18 11:05:02.438341: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 674.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.82kWh, PV 0.0kWh
2026-08-18 11:05:02.527943: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 378.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.82kWh, PV 0.0kWh
2026-08-18 11:05:02.617145: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 358.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 31.64kWh, PV 0.0kWh
2026-08-18 11:05:02.617286: Saving plan best values to HA entities
2026-08-18 11:05:02.775649: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:05:02.781827: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:05:02.786929: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.22kWh, house 0.71kWh, export 0.0kWh, metric 358.86p, metric10 378.66p
2026-08-18 11:05:02.863308: Marginal costs baseline metric (no standing charge): 312.2283
2026-08-18 11:05:03.114307: Marginal energy costs matrix computed: min=18.73 max=33.75
2026-08-18 11:05:03.185489: Rate array import [{'start': 665, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 665, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:05:03.186466: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 11:05:03.186519: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:05:03.186544: - The battery is currently at 59% and is in eco mode for the next 12 hours.
2026-08-18 11:05:03.186563: - For the next 48 hours there will be no solar generation.
2026-08-18 11:05:03.186585: - You will run out of battery in 11 hours.
2026-08-18 11:05:03.186603: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:05:03.186620: 
2026-08-18 11:05:03.246856: Plan calculation took 1.14 seconds
2026-08-18 11:05:03.250842: No high rate period found
2026-08-18 11:05:03.305150: Import threshold used for optimisation was 8.0p
2026-08-18 11:05:03.354331: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:05:03.361358: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 59%, target 100%
2026-08-18 11:05:03.361541: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:05:03.361698: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:05:03.362029: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:05:03.362156: No export window planned
2026-08-18 11:05:03.362335: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:05:03.362377: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:05:03.362547: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:05:03.362761: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:05:03.362847: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:05:03.362943: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:05:03.363064: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363170: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363226: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363251: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:05:03.363524: Inverter 0 count register writes 0
2026-08-18 11:05:03.378105: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 11:05:03.382789: Total inverter register writes now 867
2026-08-18 11:05:03.415265: Info: Completed run status Demand
2026-08-18 11:05:03.420838: Info: record_status Demand
2026-08-18 11:05:03.428358: Saved current settings to /config/predbat_config.json
2026-08-18 11:05:03.428700: Compare, best tariff: current metric 129.87p
2026-08-18 11:05:31.494021: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 11:05:32.483805: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:05:32.484032: Zero load period starting at 2026-08-17T10:54:00+0100 (1451 minutes) for 189 minutes with base value 385.85
2026-08-18 11:05:32.485176: Processing 1297 30-minute periods for power integration
2026-08-18 11:05:32.586409: ML Component: Car charging hold False, car energy reported load False
2026-08-18 11:05:32.682358: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:05:32.776929: ML Temperature data points: 48296
2026-08-18 11:05:33.030542: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-18 11:05:33.065731: ML Component: Data fetch completed, load data age 59.0 days, 17244 data points
2026-08-18 11:05:33.065889: ML Component: No training needed, model age is 0.94 hours
2026-08-18 11:05:33.065978: ML Component: Generating predictions load data age 59.0 days, 17244 data points
2026-08-18 11:05:33.208112: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0702 max_dow {0: 0.08250277803424333, 1: 0.0922861109920674, 2: 0.10978749959506096, 3: 0.10331875034738332, 4: 0.1381031253574416, 5: 0.10191944486482275, 6: 0.10384444441977475}
2026-08-18 11:05:33.646185: ML Component: Generated 576 predictions (total 26.85 kWh over 48h)
2026-08-18 11:05:33.679656: ML Component: Prediction cycle completed
2026-08-18 11:05:33.769689: ML Component: Saved 17244 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 11:05:34.213304: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:05:34.213578: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:05:34.213651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:05:34.213870: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:05:34.213922: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:05:34.213982: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:05:34.214017: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:07:34.420926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:07:34.421200: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:07:34.421264: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:07:34.421462: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:07:34.421525: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:07:34.421576: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:07:34.421622: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:09:34.640845: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:09:34.641222: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:09:34.641305: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:09:34.641510: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:09:34.641561: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:09:34.641602: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:09:34.641636: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:10:00.739517: --------------- PredBat - update at 2026-08-18 11:10:00+01:00 with clock skew 0 minutes, minutes now 670
2026-08-18 11:10:00.740358: Saved current settings to /config/predbat_config.json
2026-08-18 11:10:00.740536: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 11:10:00.740632: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:10:00.740782: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:10:00.758664: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:10:00.758788: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:10:00.758968: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:10:00.759447: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:10:00.759563: Predbat mode is set to Control charge & discharge
2026-08-18 11:10:00.914003: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:10:00.914133: Using load_power data to fill gaps in load_today data
2026-08-18 11:10:01.708468: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:10:01.708622: Zero load period starting at 2026-08-17T10:54:00+0100 (1456 minutes) for 189 minutes with base value 207.725
2026-08-18 11:10:01.709542: Processing 721 30-minute periods for power integration
2026-08-18 11:10:01.859728: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:10:01.859824: Car charging hold False, threshold 6.0kWh
2026-08-18 11:10:01.859859: Current data so far today: load 6.9kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:10:01.871330: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:10:01.871397: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:10:01.872051: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:10:01.872112: Standing charge is set to 46.63p
2026-08-18 11:10:01.960211: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:10:01.960429: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:10:01.960628: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:10:01.961604: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:10:01.961689: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:10:01.965929: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:10:01.966186: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:10:02.006301: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:10:02.006398: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:10:02.007444: High export rate found rates in range 99p to -99p
2026-08-18 11:10:02.029806: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:10:02.029890: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:10:02.043004: Battery level now 9.44kWh, -1hr ago 11.05kWh, at midnight 6.84kWh, battery value change in the last hour -11.05p, change today 17.87p, rate_forward 6.87p
2026-08-18 11:10:02.043294: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:10:02.089904: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 11:10:02.090032: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:10:02.159580: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:10:02.184590: Today's load divergence 100.36%, in-day adjustment 96.24%, damping 0.95x, yesterday 92.68% today 100.34% blend 53.47%
2026-08-18 11:10:02.184666: Today's predicted so far 6.8kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 6.8kWh forecast extra.
2026-08-18 11:10:02.184724: Today's actual load so far 6.86kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 11:10:02.216066: Inverter 0: Type SK Sunsynk
2026-08-18 11:10:02.216147: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:10:02.216319: Reserve min: 7%, battery_min: 7%
2026-08-18 11:10:02.216391: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:10:02.216638: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 532W, current battery voltage 51.2V, grid power -53W, load power 584W, PV Power 0W
2026-08-18 11:10:02.216784: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:10:02.216864: Inverter 0 scheduled charge enable is False
2026-08-18 11:10:02.216896: Inverter 0 charge windows currently []
2026-08-18 11:10:02.216939: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:10:02.217054: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:10:02.217089: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:10:02.217124: Inverter 0 scheduled discharge enable is False
2026-08-18 11:10:02.217247: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:10:02.217282: Inverter 0 discharge windows currently []
2026-08-18 11:10:02.217304: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:10:02.217322: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:10:02.217341: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:10:02.276406: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:10:02.276499: Plan was last updated on 2026-08-18 11:00:00+01:00 and is now 10.0 minutes old
2026-08-18 11:10:02.276725: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:10:02.276787: Best export window [  ]
2026-08-18 11:10:02.277654: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:10:02.280976: Load divergence over 8.0 hours mean 428.1W, min 345.0W, max 712.8W, std dev 63.36W, divergence 7.4%
2026-08-18 11:10:02.300054: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:10:02.300146: LoadML is_calculating False
2026-08-18 11:10:02.300205: Creating pool of 12 processes to match your CPU count
2026-08-18 11:10:02.414896: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 639.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.89kWh, PV 0.0kWh
2026-08-18 11:10:02.527451: Battery has 11.67 hours left - now at 9.44kWh
2026-08-18 11:10:02.572336: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 674.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 33.08kWh, PV 0.0kWh
2026-08-18 11:10:02.662333: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 380.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 33.08kWh, PV 0.0kWh
2026-08-18 11:10:02.736817: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 361.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.89kWh, PV 0.0kWh
2026-08-18 11:10:02.736889: Saving plan best values to HA entities
2026-08-18 11:10:02.881545: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:10:02.886434: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:10:02.891258: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.74kWh, house 0.68kWh, export 0.0kWh, metric 361.78p, metric10 380.79p
2026-08-18 11:10:02.960374: Marginal costs baseline metric (no standing charge): 315.1485
2026-08-18 11:10:03.238306: Marginal energy costs matrix computed: min=16.58 max=33.75
2026-08-18 11:10:03.307777: Rate array import [{'start': 670, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 670, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:10:03.308600: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 11:10:03.308652: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:10:03.308675: - The battery is currently at 59% and is in eco mode for the next 12 hours.
2026-08-18 11:10:03.308694: - For the next 48 hours there will be no solar generation.
2026-08-18 11:10:03.308711: - You will run out of battery in 11 hours.
2026-08-18 11:10:03.308729: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:10:03.308746: 
2026-08-18 11:10:03.365246: Plan calculation took 1.09 seconds
2026-08-18 11:10:03.368076: No high rate period found
2026-08-18 11:10:03.408856: Import threshold used for optimisation was 8.0p
2026-08-18 11:10:03.454032: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:10:03.459415: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 59%, target 100%
2026-08-18 11:10:03.459534: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:10:03.459638: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:10:03.459961: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:10:03.460095: No export window planned
2026-08-18 11:10:03.460212: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:10:03.460247: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:10:03.460384: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:10:03.460555: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:10:03.460616: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:10:03.460682: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:10:03.460806: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.460853: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.460886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.460930: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.460962: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.460986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461017: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:03.461262: Inverter 0 count register writes 0
2026-08-18 11:10:03.476265: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 11:10:03.476439: Recompute is saving previous plan...
2026-08-18 11:10:03.477378: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:10:03.477455: Best export window [  ]
2026-08-18 11:10:03.478259: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:10:03.481515: Load divergence over 8.0 hours mean 428.1W, min 345.0W, max 712.8W, std dev 63.36W, divergence 7.4%
2026-08-18 11:10:03.499846: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:10:03.499981: LoadML is_calculating False
2026-08-18 11:10:03.500084: Creating pool of 12 processes to match your CPU count
2026-08-18 11:10:03.581289: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:10:03.582087: Optimise levels pass started at 2026-08-18 11:10:03
2026-08-18 11:10:03.582140: Optimise all windows, total charge 24 export 1
2026-08-18 11:10:04.077941: >> Region optimisation pass width 960 gives best_metric 364.44p, best_cost 369.11p, best_cycle 40.98kWh, best_import 27.16kWh
2026-08-18 11:10:04.214215: >> Region optimisation pass width 480 gives best_metric 364.44p, best_cost 369.11p, best_cycle 40.98kWh, best_import 27.16kWh
2026-08-18 11:10:04.460364: >> Region optimisation pass width 240 gives best_metric 364.44p, best_cost 369.11p, best_cycle 40.98kWh, best_import 27.16kWh
2026-08-18 11:10:05.004977: >> Region optimisation pass width 120 gives best_metric 364.44p, best_cost 369.11p, best_cycle 40.98kWh, best_import 27.16kWh
2026-08-18 11:10:05.005166: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:10:05.005234: Optimise levels pass ended at 2026-08-18 11:10:05, duration 1.4 seconds tried 54 combinations
2026-08-18 11:10:05.005317: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 364.44p, best_keep 0kWh, best_cycle 40.98kWh, best_carbon 0kg, best_import 27.16kWh
2026-08-18 11:10:05.020107: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 11:10:07.676085: Tweak plan optimisation started metric 299.1p, cost 308.9p
2026-08-18 11:10:07.940305: Tweak optimisation finished metric 299.1p, cost 308.9p, metric_keep 0kWh, cycle 34.13kWh, carbon 0kg, import 19.64kWh, changed 8 window(s)
2026-08-18 11:10:07.955723: Swap charge optimisation started metric 299.1p, cost 308.9p, min_improvement_swap 0.1p
2026-08-18 11:10:08.694482: Swap charge optimisation finished metric 299.1p, cost 308.9p
2026-08-18 11:10:08.791509: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 296.19p -> 296.19p, plan now metric 304.59p, cost 308.9p, cycle 34.13kWh, import 19.64kWh
2026-08-18 11:10:08.801144: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:10:08.801413: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:10:08.801599: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:10:08.801738: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:10:08.836936: Previous plan best metric is 299.1 (cost 308.9) and new plan best metric is 299.1 (cost 308.9)
2026-08-18 11:10:08.837090: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 11:10:08.837253: Plan valid is now true after recompute was False
2026-08-18 11:10:08.865379: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 638.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.7kWh, PV 0.0kWh
2026-08-18 11:10:08.966403: Battery has 11.67 hours left - now at 9.44kWh
2026-08-18 11:10:09.011090: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 672.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.88kWh, PV 0.0kWh
2026-08-18 11:10:09.077282: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 373.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.88kWh, PV 0.0kWh
2026-08-18 11:10:09.144029: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 353.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.7kWh, PV 0.0kWh
2026-08-18 11:10:09.144108: Saving plan best values to HA entities
2026-08-18 11:10:09.280222: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:10:09.284983: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:10:09.289631: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.71kWh, house 0.68kWh, export 0.0kWh, metric 353.53p, metric10 373.57p
2026-08-18 11:10:09.363141: Marginal costs baseline metric (no standing charge): 306.8946
2026-08-18 11:10:09.637531: Marginal energy costs matrix computed: min=16.58 max=33.75
2026-08-18 11:10:09.703607: Rate array import [{'start': 670, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 670, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:10:09.704221: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 11:10:09.704261: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:10:09.704279: - The battery is currently at 59% and is in eco mode for the next 12 hours.
2026-08-18 11:10:09.704294: - For the next 48 hours there will be no solar generation.
2026-08-18 11:10:09.704308: - You will run out of battery in 11 hours.
2026-08-18 11:10:09.704322: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:10:09.704335: 
2026-08-18 11:10:09.758587: Plan calculation took 6.28 seconds
2026-08-18 11:10:09.758880: Inverter 0: Type SK Sunsynk
2026-08-18 11:10:09.758948: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:10:09.759161: Reserve min: 7%, battery_min: 7%
2026-08-18 11:10:09.759236: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:10:09.759555: Inverter 0 SoC: 9.29kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 534W, current battery voltage 51.2V, grid power -54W, load power 588W, PV Power 0W
2026-08-18 11:10:09.759772: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:10:09.759875: Inverter 0 scheduled charge enable is False
2026-08-18 11:10:09.759953: Inverter 0 charge windows currently []
2026-08-18 11:10:09.760007: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:10:09.760131: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:10:09.760171: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:10:09.760208: Inverter 0 scheduled discharge enable is False
2026-08-18 11:10:09.760342: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:10:09.760379: Inverter 0 discharge windows currently []
2026-08-18 11:10:09.760402: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:10:09.760428: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:10:09.760446: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:10:09.813488: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 11:10:09.813648: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:10:09.813750: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:10:09.814005: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:10:09.814100: No export window planned
2026-08-18 11:10:09.814263: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:10:09.814305: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:10:09.814474: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:10:09.814667: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:10:09.814726: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:10:09.814828: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:10:09.814974: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815023: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815226: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815342: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815673: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:10:09.815832: Inverter 0 count register writes 0
2026-08-18 11:10:09.837848: Total inverter register writes now 867
2026-08-18 11:10:09.869962: Info: Completed run status Demand
2026-08-18 11:10:09.875286: Info: record_status Demand
2026-08-18 11:10:09.881321: Saved current settings to /config/predbat_config.json
2026-08-18 11:10:09.881579: Compare, best tariff: current metric 129.87p
2026-08-18 11:10:48.986995: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:10:48.987215: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:10:48.987256: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:10:48.987386: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:10:48.987423: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:10:48.987448: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:10:48.987481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:12:49.186383: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:12:49.186602: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:12:49.186643: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:12:49.186773: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:12:49.186811: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:12:49.186831: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:12:49.186849: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:14:49.397848: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:14:49.398146: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:14:49.398205: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:14:49.398439: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:14:49.398486: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:14:49.398509: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:14:49.398530: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:15:00.488764: --------------- PredBat - update at 2026-08-18 11:15:00+01:00 with clock skew 0 minutes, minutes now 675
2026-08-18 11:15:00.489556: Saved current settings to /config/predbat_config.json
2026-08-18 11:15:00.489665: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 11:15:00.489747: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:15:00.489841: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:15:00.507287: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:15:00.507393: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:15:00.507560: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:15:00.508139: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:15:00.508257: Predbat mode is set to Control charge & discharge
2026-08-18 11:15:00.673616: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:15:00.673764: Using load_power data to fill gaps in load_today data
2026-08-18 11:15:01.521420: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:15:01.521583: Zero load period starting at 2026-08-17T10:54:00+0100 (1461 minutes) for 189 minutes with base value 207.7
2026-08-18 11:15:01.522671: Processing 721 30-minute periods for power integration
2026-08-18 11:15:01.682960: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:15:01.683222: Car charging hold False, threshold 6.0kWh
2026-08-18 11:15:01.683266: Current data so far today: load 7.0kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:15:01.695057: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:15:01.695122: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:15:01.695709: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:15:01.695767: Standing charge is set to 46.63p
2026-08-18 11:15:01.787977: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:15:01.788490: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:15:01.788726: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:15:01.789916: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:15:01.790090: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:15:01.795455: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:15:01.795998: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:15:01.839846: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:15:01.840026: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:15:01.841394: High export rate found rates in range 99p to -99p
2026-08-18 11:15:01.869673: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:15:01.869793: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:15:01.881072: Battery level now 9.44kWh, -1hr ago 11.05kWh, at midnight 6.84kWh, battery value change in the last hour -11.05p, change today 17.87p, rate_forward 6.87p
2026-08-18 11:15:01.881482: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.6kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:15:01.933020: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 11:15:01.933180: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:15:02.007478: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:15:02.033118: Today's load divergence 100.73%, in-day adjustment 96.44%, damping 0.95x, yesterday 92.68% today 100.69% blend 53.12%
2026-08-18 11:15:02.033193: Today's predicted so far 6.83kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 6.83kWh forecast extra.
2026-08-18 11:15:02.033421: Today's actual load so far 6.95kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 11:15:02.061689: Inverter 0: Type SK Sunsynk
2026-08-18 11:15:02.061769: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:15:02.061985: Reserve min: 7%, battery_min: 7%
2026-08-18 11:15:02.062061: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:15:02.062302: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 504W, current battery voltage 51.2V, grid power -53W, load power 557W, PV Power 0W
2026-08-18 11:15:02.062447: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:15:02.062529: Inverter 0 scheduled charge enable is False
2026-08-18 11:15:02.062557: Inverter 0 charge windows currently []
2026-08-18 11:15:02.062583: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:15:02.062691: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:15:02.062722: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:15:02.062759: Inverter 0 scheduled discharge enable is False
2026-08-18 11:15:02.062950: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:15:02.062993: Inverter 0 discharge windows currently []
2026-08-18 11:15:02.063017: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:15:02.063035: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:15:02.063056: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:15:02.117084: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:15:02.117172: Plan was last updated on 2026-08-18 11:10:00+01:00 and is now 5.0 minutes old
2026-08-18 11:15:02.117336: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:15:02.117368: Best export window [  ]
2026-08-18 11:15:02.118057: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:15:02.120682: Load divergence over 8.0 hours mean 428.16W, min 307.2W, max 753.0W, std dev 75.95W, divergence 8.87%
2026-08-18 11:15:02.136407: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:15:02.136505: LoadML is_calculating False
2026-08-18 11:15:02.136553: Creating pool of 12 processes to match your CPU count
2026-08-18 11:15:02.233005: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 642.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 31.86kWh, PV 0.0kWh
2026-08-18 11:15:02.343510: Battery has 11.5 hours left - now at 9.28kWh
2026-08-18 11:15:02.386492: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 676.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:20:00, load 33.04kWh, PV 0.0kWh
2026-08-18 11:15:02.453969: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 380.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:20:00, load 33.04kWh, PV 0.0kWh
2026-08-18 11:15:02.518557: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 361.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 31.86kWh, PV 0.0kWh
2026-08-18 11:15:02.518630: Saving plan best values to HA entities
2026-08-18 11:15:02.657792: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:15:02.663587: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:15:02.676988: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.23kWh, house 0.78kWh, export 0.0kWh, metric 361.11p, metric10 380.67p
2026-08-18 11:15:02.753635: Marginal costs baseline metric (no standing charge): 314.4744
2026-08-18 11:15:02.972053: Marginal energy costs matrix computed: min=14.44 max=33.75
2026-08-18 11:15:03.031819: Rate array import [{'start': 675, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 675, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:15:03.032503: - Your estimated bill for today is £1.85 and tomorrow is £1.96
2026-08-18 11:15:03.032546: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:15:03.032565: - The battery is currently at 58% and is in eco mode for the next 12 hours.
2026-08-18 11:15:03.032581: - For the next 48 hours there will be no solar generation.
2026-08-18 11:15:03.032598: - You will run out of battery in 11 hours.
2026-08-18 11:15:03.032626: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:15:03.032661: 
2026-08-18 11:15:03.082582: Plan calculation took 0.97 seconds
2026-08-18 11:15:03.086227: No high rate period found
2026-08-18 11:15:03.136879: Import threshold used for optimisation was 8.0p
2026-08-18 11:15:03.186098: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:15:03.191468: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 11:15:03.191586: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:15:03.191692: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:15:03.191997: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:15:03.192102: No export window planned
2026-08-18 11:15:03.192233: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:15:03.192268: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:15:03.192401: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:15:03.192575: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:15:03.192634: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:15:03.192697: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:15:03.192793: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.192832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.192880: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.192915: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.192947: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.192973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.192998: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193232: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:15:03.193257: Inverter 0 count register writes 0
2026-08-18 11:15:03.207493: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 11:15:03.213051: Total inverter register writes now 867
2026-08-18 11:15:03.240134: Info: Completed run status Demand
2026-08-18 11:15:03.246465: Info: record_status Demand
2026-08-18 11:15:03.253039: Saved current settings to /config/predbat_config.json
2026-08-18 11:15:03.253378: Compare, best tariff: current metric 129.87p
2026-08-18 11:15:34.349989: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:15:34.350314: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:15:34.350419: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:15:34.350644: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:15:34.350700: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:15:34.350740: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:15:34.350774: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:17:34.564038: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:17:34.564330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:17:34.564388: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:17:34.564573: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:17:34.564618: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:17:34.564640: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:17:34.564666: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:19:48.797729: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:19:48.797941: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:19:48.797970: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:19:48.798075: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:19:48.798145: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:19:48.798163: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:19:48.798177: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:20:00.871602: --------------- PredBat - update at 2026-08-18 11:20:00+01:00 with clock skew 0 minutes, minutes now 680
2026-08-18 11:20:00.872411: Saved current settings to /config/predbat_config.json
2026-08-18 11:20:00.872544: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 11:20:00.872636: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:20:00.872746: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:20:00.891075: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:20:00.891202: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:20:00.891363: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:20:00.891858: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:20:00.892092: Predbat mode is set to Control charge & discharge
2026-08-18 11:20:01.066309: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:20:01.066428: Using load_power data to fill gaps in load_today data
2026-08-18 11:20:01.750931: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:20:01.751080: Zero load period starting at 2026-08-17T10:54:00+0100 (1466 minutes) for 189 minutes with base value 207.675
2026-08-18 11:20:01.752039: Processing 721 30-minute periods for power integration
2026-08-18 11:20:01.900376: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:20:01.900495: Car charging hold False, threshold 6.0kWh
2026-08-18 11:20:01.900532: Current data so far today: load 6.95kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:20:01.912278: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:20:01.912368: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:20:01.913150: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:20:01.913219: Standing charge is set to 46.63p
2026-08-18 11:20:02.008983: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:20:02.009250: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:20:02.009483: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:20:02.010618: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:20:02.010760: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:20:02.015730: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:20:02.016416: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:20:02.052564: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:20:02.052661: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:20:02.053755: High export rate found rates in range 99p to -99p
2026-08-18 11:20:02.077872: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:20:02.077969: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:20:02.093617: Battery level now 9.28kWh, -1hr ago 10.78kWh, at midnight 6.84kWh, battery value change in the last hour -10.28p, change today 16.77p, rate_forward 6.87p
2026-08-18 11:20:02.094183: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 1.3kWh, net cost 1.86p, import 1.86p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:20:02.190818: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:20:02.190973: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:20:02.265774: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:20:02.292709: Today's load divergence 100.06%, in-day adjustment 96.16%, damping 0.95x, yesterday 92.68% today 100.06% blend 52.78%
2026-08-18 11:20:02.292790: Today's predicted so far 6.89kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 6.89kWh forecast extra.
2026-08-18 11:20:02.292838: Today's actual load so far 6.9kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 11:20:02.353267: Inverter 0: Type SK Sunsynk
2026-08-18 11:20:02.353347: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:20:02.353527: Reserve min: 7%, battery_min: 7%
2026-08-18 11:20:02.353602: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:20:02.353889: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 519W, current battery voltage 51.2V, grid power -49W, load power 568W, PV Power 0W
2026-08-18 11:20:02.354045: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:20:02.354136: Inverter 0 scheduled charge enable is False
2026-08-18 11:20:02.354176: Inverter 0 charge windows currently []
2026-08-18 11:20:02.354241: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:20:02.354381: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:20:02.354417: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:20:02.354454: Inverter 0 scheduled discharge enable is False
2026-08-18 11:20:02.354595: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:20:02.354630: Inverter 0 discharge windows currently []
2026-08-18 11:20:02.354649: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:20:02.354681: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:20:02.354708: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:20:02.457139: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:20:02.457276: Plan was last updated on 2026-08-18 11:10:00+01:00 and is now 10.0 minutes old
2026-08-18 11:20:02.457626: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:20:02.457692: Best export window [  ]
2026-08-18 11:20:02.458627: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:20:02.461890: Load divergence over 8.0 hours mean 426.61W, min 316.8W, max 620.4W, std dev 66.24W, divergence 7.76%
2026-08-18 11:20:02.480017: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:20:02.480108: LoadML is_calculating False
2026-08-18 11:20:02.480175: Creating pool of 12 processes to match your CPU count
2026-08-18 11:20:02.631593: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 642.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.78kWh, PV 0.0kWh
2026-08-18 11:20:02.761766: Battery has 11.5 hours left - now at 9.28kWh
2026-08-18 11:20:02.800845: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 676.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.97kWh, PV 0.0kWh
2026-08-18 11:20:02.864383: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 383.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.97kWh, PV 0.0kWh
2026-08-18 11:20:02.930054: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 364.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.78kWh, PV 0.0kWh
2026-08-18 11:20:02.930128: Saving plan best values to HA entities
2026-08-18 11:20:03.077406: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:20:03.082483: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 11:20:03.087343: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.74kWh, house 0.67kWh, export 0.0kWh, metric 364.87p, metric10 383.56p
2026-08-18 11:20:03.162423: Marginal costs baseline metric (no standing charge): 318.2364
2026-08-18 11:20:03.441174: Marginal energy costs matrix computed: min=12.29 max=33.75
2026-08-18 11:20:03.506950: Rate array import [{'start': 680, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 680, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:20:03.507646: - Your estimated bill for today is £1.85 and tomorrow is £1.96
2026-08-18 11:20:03.507704: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:20:03.507737: - The battery is currently at 58% and is in eco mode for the next 12 hours.
2026-08-18 11:20:03.507774: - For the next 48 hours there will be no solar generation.
2026-08-18 11:20:03.507793: - You will run out of battery in 11 hours.
2026-08-18 11:20:03.507826: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:20:03.507846: 
2026-08-18 11:20:03.566899: Plan calculation took 1.11 seconds
2026-08-18 11:20:03.570251: No high rate period found
2026-08-18 11:20:03.619646: Import threshold used for optimisation was 8.0p
2026-08-18 11:20:03.667086: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:20:03.672654: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 11:20:03.672817: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:20:03.672907: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:20:03.673153: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:20:03.673249: No export window planned
2026-08-18 11:20:03.673379: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:20:03.673414: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:20:03.673542: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:20:03.673713: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:20:03.673773: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:20:03.673845: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:20:03.673992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674215: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674256: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674617: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:03.674748: Inverter 0 count register writes 0
2026-08-18 11:20:03.688930: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 11:20:03.689124: Recompute is saving previous plan...
2026-08-18 11:20:03.690070: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:20:03.690122: Best export window [  ]
2026-08-18 11:20:03.691010: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:20:03.694274: Load divergence over 8.0 hours mean 426.61W, min 316.8W, max 620.4W, std dev 66.24W, divergence 7.76%
2026-08-18 11:20:03.712068: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:20:03.712161: LoadML is_calculating False
2026-08-18 11:20:03.712221: Creating pool of 12 processes to match your CPU count
2026-08-18 11:20:03.795491: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:20:03.796634: Optimise levels pass started at 2026-08-18 11:20:03
2026-08-18 11:20:03.796741: Optimise all windows, total charge 24 export 1
2026-08-18 11:20:04.322825: >> Region optimisation pass width 960 gives best_metric 369.02p, best_cost 374.39p, best_cycle 41.24kWh, best_import 27.43kWh
2026-08-18 11:20:04.462890: >> Region optimisation pass width 480 gives best_metric 369.02p, best_cost 374.39p, best_cycle 41.24kWh, best_import 27.43kWh
2026-08-18 11:20:04.658895: >> Region optimisation pass width 240 gives best_metric 369.02p, best_cost 374.39p, best_cycle 41.24kWh, best_import 27.43kWh
2026-08-18 11:20:05.192645: >> Region optimisation pass width 120 gives best_metric 369.02p, best_cost 374.39p, best_cycle 41.24kWh, best_import 27.43kWh
2026-08-18 11:20:05.192826: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:20:05.192884: Optimise levels pass ended at 2026-08-18 11:20:05, duration 1.4 seconds tried 54 combinations
2026-08-18 11:20:05.192932: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 369.02p, best_keep 0kWh, best_cycle 41.24kWh, best_carbon 0kg, best_import 27.43kWh
2026-08-18 11:20:05.207797: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 11:20:07.794995: Tweak plan optimisation started metric 302.15p, cost 312.0p
2026-08-18 11:20:08.056867: Tweak optimisation finished metric 302.15p, cost 312.0p, metric_keep 0kWh, cycle 33.98kWh, carbon 0kg, import 19.63kWh, changed 8 window(s)
2026-08-18 11:20:08.076245: Swap charge optimisation started metric 302.15p, cost 312.0p, min_improvement_swap 0.1p
2026-08-18 11:20:08.818876: Swap charge optimisation finished metric 302.15p, cost 312.0p
2026-08-18 11:20:08.907422: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 299.28p -> 299.28p, plan now metric 307.64p, cost 312.0p, cycle 33.98kWh, import 19.63kWh
2026-08-18 11:20:08.915731: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:20:08.915994: Unclipped charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:20:08.916144: Unfiltered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:20:08.916266: Filtered charge windows [ 19-08 02:30:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:20:08.944611: Previous plan best metric is 302.15 (cost 312.0) and new plan best metric is 302.15 (cost 312.0)
2026-08-18 11:20:08.944732: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 11:20:08.944847: Plan valid is now true after recompute was False
2026-08-18 11:20:08.969413: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 641.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.59kWh, PV 0.0kWh
2026-08-18 11:20:09.060878: Battery has 11.5 hours left - now at 9.28kWh
2026-08-18 11:20:09.098405: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 675.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:20:09.159985: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 376.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:20:09.247086: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 356.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.59kWh, PV 0.0kWh
2026-08-18 11:20:09.247159: Saving plan best values to HA entities
2026-08-18 11:20:09.416778: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:20:09.421699: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 11:20:09.426964: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.71kWh, house 0.67kWh, export 0.0kWh, metric 356.64p, metric10 376.37p
2026-08-18 11:20:09.488329: Marginal costs baseline metric (no standing charge): 310.0033
2026-08-18 11:20:09.742007: Marginal energy costs matrix computed: min=12.29 max=33.75
2026-08-18 11:20:09.798444: Rate array import [{'start': 680, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 680, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:20:09.799040: - Your estimated bill for today is £1.85 and tomorrow is £1.96
2026-08-18 11:20:09.799079: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:20:09.799098: - The battery is currently at 58% and is in eco mode for the next 12 hours.
2026-08-18 11:20:09.799113: - For the next 48 hours there will be no solar generation.
2026-08-18 11:20:09.799127: - You will run out of battery in 11 hours.
2026-08-18 11:20:09.799141: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:20:09.799155: 
2026-08-18 11:20:09.852830: Plan calculation took 6.16 seconds
2026-08-18 11:20:09.853124: Inverter 0: Type SK Sunsynk
2026-08-18 11:20:09.853167: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:20:09.853388: Reserve min: 7%, battery_min: 7%
2026-08-18 11:20:09.853488: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:20:09.853850: Inverter 0 SoC: 9.25kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 485W, current battery voltage 51.2V, grid power -56W, load power 537W, PV Power 0W
2026-08-18 11:20:09.854079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:20:09.854181: Inverter 0 scheduled charge enable is False
2026-08-18 11:20:09.854216: Inverter 0 charge windows currently []
2026-08-18 11:20:09.854246: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:20:09.854355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:20:09.854410: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:20:09.854472: Inverter 0 scheduled discharge enable is False
2026-08-18 11:20:09.854622: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:20:09.854660: Inverter 0 discharge windows currently []
2026-08-18 11:20:09.854682: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:20:09.854700: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:20:09.854736: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:20:09.910404: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 11:20:09.910546: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:20:09.910618: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:20:09.910788: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:20:09.910890: No export window planned
2026-08-18 11:20:09.910996: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:20:09.911031: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:20:09.911163: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:20:09.911320: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:20:09.911372: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:20:09.911429: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:20:09.911521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911618: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911648: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.911984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.912048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.912083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:20:09.912105: Inverter 0 count register writes 0
2026-08-18 11:20:09.931944: Total inverter register writes now 867
2026-08-18 11:20:09.964262: Info: Completed run status Demand
2026-08-18 11:20:09.969677: Info: record_status Demand
2026-08-18 11:20:09.976098: Saved current settings to /config/predbat_config.json
2026-08-18 11:20:09.976388: Compare, best tariff: current metric 129.87p
2026-08-18 11:20:49.091164: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:20:49.091383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:20:49.091456: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:20:49.091659: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:20:49.091705: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:20:49.091727: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:20:49.091749: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:22:49.304051: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:22:49.304302: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:22:49.304343: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:22:49.304483: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:22:49.304519: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:22:49.304540: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:22:49.304563: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:24:21.551512: Web interface setting input_number.predbat_best_soc_keep to 1.5
2026-08-18 11:24:21.551782: number_event: input_number.predbat_best_soc_keep = 1.5
2026-08-18 11:24:34.511714: Refreshing Predbat configuration
2026-08-18 11:24:35.155150: Saved current settings to /config/predbat_config.json
2026-08-18 11:24:35.157644: Validation of apps.yaml was successful
2026-08-18 11:24:35.157808: --------------- PredBat - update at 2026-08-18 11:20:00+01:00 with clock skew 0 minutes, minutes now 680
2026-08-18 11:24:35.158529: Saved current settings to /config/predbat_config.json
2026-08-18 11:24:35.158641: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 114.6 minutes
2026-08-18 11:24:35.158748: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:24:35.158832: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:24:35.174819: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:24:35.174926: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:24:35.175171: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:24:35.175683: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:24:35.175800: Predbat mode is set to Control charge & discharge
2026-08-18 11:24:35.362012: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:24:35.362185: Using load_power data to fill gaps in load_today data
2026-08-18 11:24:36.066959: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:24:36.067156: Zero load period starting at 2026-08-17T10:54:00+0100 (1466 minutes) for 189 minutes with base value 207.675
2026-08-18 11:24:36.068829: Processing 721 30-minute periods for power integration
2026-08-18 11:24:36.218971: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:24:36.219083: Car charging hold False, threshold 6.0kWh
2026-08-18 11:24:36.219135: Current data so far today: load 6.95kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:24:36.230700: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:24:36.230767: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:24:36.231371: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:24:36.231433: Standing charge is set to 46.63p
2026-08-18 11:24:36.311756: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:24:36.312046: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:24:36.312233: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:24:36.313086: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:24:36.313196: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:24:36.317601: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:24:36.317879: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:24:36.353427: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:24:36.353786: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:24:36.354846: High export rate found rates in range 99p to -99p
2026-08-18 11:24:36.377656: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:24:36.377757: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:24:36.387694: Battery level now 9.28kWh, -1hr ago 10.78kWh, at midnight 6.84kWh, battery value change in the last hour -10.28p, change today 16.77p, rate_forward 6.87p
2026-08-18 11:24:36.388051: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 1.3kWh, net cost 1.86p, import 1.86p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:24:36.427366: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:24:36.427518: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:24:36.497888: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:24:36.523727: Today's load divergence 100.06%, in-day adjustment 96.16%, damping 0.95x, yesterday 92.68% today 100.05% blend 52.78%
2026-08-18 11:24:36.523803: Today's predicted so far 6.89kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 6.89kWh forecast extra.
2026-08-18 11:24:36.523829: Today's actual load so far 6.9kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 11:24:36.556397: Inverter 0: Type SK Sunsynk
2026-08-18 11:24:36.556494: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:24:36.556757: Reserve min: 7%, battery_min: 7%
2026-08-18 11:24:36.556876: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:24:36.557269: Inverter 0 SoC: 9.25kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 439W, current battery voltage 51.2V, grid power -55W, load power 495W, PV Power 0W
2026-08-18 11:24:36.557416: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:24:36.557481: Inverter 0 scheduled charge enable is False
2026-08-18 11:24:36.557504: Inverter 0 charge windows currently []
2026-08-18 11:24:36.557526: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:24:36.557612: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:24:36.557642: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:24:36.557671: Inverter 0 scheduled discharge enable is False
2026-08-18 11:24:36.557791: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:24:36.557815: Inverter 0 discharge windows currently []
2026-08-18 11:24:36.557833: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:24:36.557847: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:24:36.557861: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:24:36.616801: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:24:36.616902: Will recompute the plan as it is invalid
2026-08-18 11:24:36.616955: Recompute, previous plan is invalid...
2026-08-18 11:24:36.617985: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:24:36.618052: Best export window [  ]
2026-08-18 11:24:36.618984: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:24:36.622264: Load divergence over 8.0 hours mean 426.61W, min 316.8W, max 620.4W, std dev 66.24W, divergence 7.76%
2026-08-18 11:24:36.642953: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:24:36.643054: LoadML is_calculating False
2026-08-18 11:24:36.643125: Creating pool of 12 processes to match your CPU count
2026-08-18 11:24:36.734730: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:24:36.735595: Optimise levels pass started at 2026-08-18 11:24:36
2026-08-18 11:24:36.735655: Optimise all windows, total charge 24 export 1
2026-08-18 11:24:37.082458: >> Region optimisation pass width 960 gives best_metric 391.65p, best_cost 456.46p, best_cycle 50.04kWh, best_import 37.59kWh
2026-08-18 11:24:37.230208: >> Region optimisation pass width 480 gives best_metric 391.65p, best_cost 456.46p, best_cycle 50.04kWh, best_import 37.59kWh
2026-08-18 11:24:37.428616: >> Region optimisation pass width 240 gives best_metric 391.65p, best_cost 456.46p, best_cycle 50.04kWh, best_import 37.59kWh
2026-08-18 11:24:38.207636: >> Region optimisation pass width 120 gives best_metric 391.08p, best_cost 454.46p, best_cycle 50.3kWh, best_import 37.34kWh
2026-08-18 11:24:38.207826: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:24:38.207889: Optimise levels pass ended at 2026-08-18 11:24:38, duration 1.5 seconds tried 61 combinations
2026-08-18 11:24:38.208045: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 391.08p, best_keep 5.77kWh, best_cycle 50.3kWh, best_carbon 0kg, best_import 37.34kWh
2026-08-18 11:24:38.223965: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 11:24:41.155130: Tweak plan optimisation started metric 308.93p, cost 313.0p
2026-08-18 11:24:41.487163: Tweak optimisation finished metric 308.93p, cost 313.0p, metric_keep 5.77kWh, cycle 33.95kWh, carbon 0kg, import 19.66kWh, changed 8 window(s)
2026-08-18 11:24:41.509526: Swap charge optimisation started metric 308.93p, cost 313.0p, min_improvement_swap 0.1p
2026-08-18 11:24:42.324487: Swap charge optimisation finished metric 308.93p, cost 313.0p
2026-08-18 11:24:42.460737: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 306.05p -> 305.8p, plan now metric 310.15p, cost 308.86p, cycle 33.95kWh, import 19.14kWh
2026-08-18 11:24:42.471554: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:24:42.472048: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:24:42.472344: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:24:42.472572: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:24:42.472993: Plan valid is now true after recompute was False
2026-08-18 11:24:42.503255: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 642.23p, metric_keep 130.32kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 31.59kWh, PV 0.0kWh
2026-08-18 11:24:42.610853: Battery has 11.42 hours left - now at 9.25kWh
2026-08-18 11:24:42.656411: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 676.21p, metric_keep 132.67kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:24:42.737923: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 383.07p, metric_keep 11.47kWh, min_soc 1.12kWh @ 08-18 22:25:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:24:42.825315: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 355.5p, metric_keep 6.1kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 31.59kWh, PV 0.0kWh
2026-08-18 11:24:42.825396: Saving plan best values to HA entities
2026-08-18 11:24:42.980327: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:24:42.985933: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 11:24:42.992132: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.7kWh, export 0.0kWh, metric 355.5p, metric10 383.07p
2026-08-18 11:24:43.071012: Marginal costs baseline metric (no standing charge): 308.8613
2026-08-18 11:24:43.293230: Marginal energy costs matrix computed: min=12.29 max=33.75
2026-08-18 11:24:43.356619: Rate array import [{'start': 680, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 680, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:24:43.357362: - Your estimated bill for today is £1.86 and tomorrow is £1.94
2026-08-18 11:24:43.357410: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:24:43.357433: - The battery is currently at 58% and is in eco mode for the next 12 hours.
2026-08-18 11:24:43.357471: - For the next 48 hours there will be no solar generation.
2026-08-18 11:24:43.357518: - You will run out of battery in 11 hours.
2026-08-18 11:24:43.357556: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:24:43.357589: 
2026-08-18 11:24:43.411402: Plan calculation took 6.79 seconds
2026-08-18 11:24:43.417945: Saved plan to storage
2026-08-18 11:24:43.422712: No high rate period found
2026-08-18 11:24:43.470070: Import threshold used for optimisation was 8.0p
2026-08-18 11:24:43.515076: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:24:43.520222: Inverter 0: Type SK Sunsynk
2026-08-18 11:24:43.520286: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:24:43.520456: Reserve min: 7%, battery_min: 7%
2026-08-18 11:24:43.520518: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:24:43.520781: Inverter 0 SoC: 9.25kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 439W, current battery voltage 51.2V, grid power -55W, load power 495W, PV Power 0W
2026-08-18 11:24:43.520956: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:24:43.521038: Inverter 0 scheduled charge enable is False
2026-08-18 11:24:43.521061: Inverter 0 charge windows currently []
2026-08-18 11:24:43.521084: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:24:43.521191: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:24:43.521242: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:24:43.521272: Inverter 0 scheduled discharge enable is False
2026-08-18 11:24:43.521378: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:24:43.521401: Inverter 0 discharge windows currently []
2026-08-18 11:24:43.521419: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:24:43.521434: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:24:43.521448: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:24:43.567582: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 11:24:43.567698: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:24:43.567752: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:24:43.567942: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:24:43.568014: No export window planned
2026-08-18 11:24:43.568118: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:24:43.568149: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:24:43.568260: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:24:43.568390: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:24:43.568432: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:24:43.568474: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:24:43.568547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568632: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568678: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568699: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:24:43.568975: Inverter 0 count register writes 0
2026-08-18 11:24:43.588509: Total inverter register writes now 867
2026-08-18 11:24:43.621702: Info: Completed run status Demand
2026-08-18 11:24:43.629210: Info: record_status Demand
2026-08-18 11:24:43.636216: Saved current settings to /config/predbat_config.json
2026-08-18 11:24:43.636536: Compare, best tariff: current metric 129.87p
2026-08-18 11:24:43.704167: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-18 11:25:00.722271: --------------- PredBat - update at 2026-08-18 11:25:00+01:00 with clock skew 0 minutes, minutes now 685
2026-08-18 11:25:00.722960: Saved current settings to /config/predbat_config.json
2026-08-18 11:25:00.723066: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 11:25:00.723150: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:25:00.723229: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:25:00.740272: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:25:00.740433: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:25:00.740651: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:25:00.741255: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:25:00.741378: Predbat mode is set to Control charge & discharge
2026-08-18 11:25:00.921243: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:25:00.921371: Using load_power data to fill gaps in load_today data
2026-08-18 11:25:01.682789: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:25:01.682983: Zero load period starting at 2026-08-17T10:54:00+0100 (1471 minutes) for 189 minutes with base value 207.65
2026-08-18 11:25:01.684194: Processing 721 30-minute periods for power integration
2026-08-18 11:25:01.864330: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:25:01.864462: Car charging hold False, threshold 6.0kWh
2026-08-18 11:25:01.864528: Current data so far today: load 7.0kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:25:01.880545: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:25:01.880671: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:25:01.881644: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:25:01.881731: Standing charge is set to 46.63p
2026-08-18 11:25:01.981271: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:25:01.981611: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:25:01.982249: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:25:01.983601: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:25:01.983717: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:25:01.989072: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:25:01.989405: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:25:02.024086: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:25:02.024229: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:25:02.025356: High export rate found rates in range 99p to -99p
2026-08-18 11:25:02.047696: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:25:02.047805: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:25:02.057379: Battery level now 9.28kWh, -1hr ago 10.27kWh, at midnight 6.84kWh, battery value change in the last hour -6.82p, change today 16.77p, rate_forward 6.87p
2026-08-18 11:25:02.057756: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:25:02.105234: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:25:02.105345: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:25:02.189067: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:25:02.222038: Today's load divergence 100.0%, in-day adjustment 96.16%, damping 0.95x, yesterday 92.68% today 100.0% blend 52.43%
2026-08-18 11:25:02.222154: Today's predicted so far 6.95kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 6.95kWh forecast extra.
2026-08-18 11:25:02.222207: Today's actual load so far 6.95kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 11:25:02.259445: Inverter 0: Type SK Sunsynk
2026-08-18 11:25:02.259521: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:25:02.259706: Reserve min: 7%, battery_min: 7%
2026-08-18 11:25:02.259796: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:25:02.260073: Inverter 0 SoC: 9.25kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 439W, current battery voltage 51.2V, grid power -55W, load power 495W, PV Power 0W
2026-08-18 11:25:02.260252: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:25:02.260361: Inverter 0 scheduled charge enable is False
2026-08-18 11:25:02.260401: Inverter 0 charge windows currently []
2026-08-18 11:25:02.260426: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:25:02.260560: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:25:02.260604: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:25:02.260656: Inverter 0 scheduled discharge enable is False
2026-08-18 11:25:02.260801: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:25:02.260837: Inverter 0 discharge windows currently []
2026-08-18 11:25:02.260863: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:25:02.260898: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:25:02.260915: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:25:02.312894: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:25:02.312989: Plan was last updated on 2026-08-18 11:20:00+01:00 and is now 5.0 minutes old
2026-08-18 11:25:02.313216: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:25:02.313260: Best export window [  ]
2026-08-18 11:25:02.314156: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:25:02.317378: Load divergence over 8.0 hours mean 425.06W, min 324.0W, max 601.2W, std dev 64.17W, divergence 7.55%
2026-08-18 11:25:02.336723: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:25:02.336819: LoadML is_calculating False
2026-08-18 11:25:02.336876: Creating pool of 12 processes to match your CPU count
2026-08-18 11:25:02.452274: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 640.91p, metric_keep 129.88kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.66kWh, PV 0.0kWh
2026-08-18 11:25:02.555557: Battery has 11.5 hours left - now at 9.25kWh
2026-08-18 11:25:02.590645: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 674.88p, metric_keep 132.21kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.84kWh, PV 0.0kWh
2026-08-18 11:25:02.658257: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 384.59p, metric_keep 10.93kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.84kWh, PV 0.0kWh
2026-08-18 11:25:02.740390: predict best end_record 08-19 23:35:00, final soc 1.7kWh, metric 356.98p, metric_keep 5.58kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.66kWh, PV 0.0kWh
2026-08-18 11:25:02.740472: Saving plan best values to HA entities
2026-08-18 11:25:02.921371: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:25:02.927257: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 11:25:02.933299: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.94kWh, house 0.62kWh, export 0.0kWh, metric 356.98p, metric10 384.59p
2026-08-18 11:25:03.006494: Marginal costs baseline metric (no standing charge): 310.3505
2026-08-18 11:25:03.282389: Marginal energy costs matrix computed: min=10.15 max=33.75
2026-08-18 11:25:03.350401: Rate array import [{'start': 685, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 685, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:25:03.351202: - Your estimated bill for today is £1.83 and tomorrow is £1.94
2026-08-18 11:25:03.351269: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:25:03.351318: - The battery is currently at 58% and is in eco mode for the next 12 hours.
2026-08-18 11:25:03.351360: - For the next 48 hours there will be no solar generation.
2026-08-18 11:25:03.351380: - You will run out of battery in 11 hours.
2026-08-18 11:25:03.351401: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:25:03.351419: 
2026-08-18 11:25:03.411286: Plan calculation took 1.10 seconds
2026-08-18 11:25:03.415180: No high rate period found
2026-08-18 11:25:03.461535: Import threshold used for optimisation was 8.0p
2026-08-18 11:25:03.531436: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:25:03.537652: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 11:25:03.537786: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:25:03.537892: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:25:03.538158: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:25:03.538257: No export window planned
2026-08-18 11:25:03.538408: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:25:03.538446: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:25:03.538624: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:25:03.538852: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:25:03.538919: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:25:03.538984: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:25:03.539084: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539140: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539265: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539323: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539362: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539388: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:25:03.539642: Inverter 0 count register writes 0
2026-08-18 11:25:03.555414: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 11:25:03.560834: Total inverter register writes now 867
2026-08-18 11:25:03.593697: Info: Completed run status Demand
2026-08-18 11:25:03.599334: Info: record_status Demand
2026-08-18 11:25:03.606288: Saved current settings to /config/predbat_config.json
2026-08-18 11:25:03.606625: Compare, best tariff: current metric 129.87p
2026-08-18 11:25:33.707760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:25:33.708023: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:25:33.708067: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:25:33.708211: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:25:33.708250: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:25:33.708270: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:25:33.708285: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:27:33.912611: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:27:33.912869: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:27:33.912903: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:27:33.913036: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:27:33.913112: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:27:33.913130: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:27:33.913144: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:29:34.119932: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:29:34.120184: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:29:34.120217: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:29:34.120387: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:29:34.120502: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:29:34.120552: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:29:34.120576: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:30:00.229208: --------------- PredBat - update at 2026-08-18 11:30:00+01:00 with clock skew 0 minutes, minutes now 690
2026-08-18 11:30:00.229818: Saved current settings to /config/predbat_config.json
2026-08-18 11:30:00.736606: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:30:00.736744: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:30:00.760129: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:30:00.760301: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:30:00.760542: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:30:00.761041: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:30:00.761158: Predbat mode is set to Control charge & discharge
2026-08-18 11:30:01.003585: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:30:01.003726: Using load_power data to fill gaps in load_today data
2026-08-18 11:30:02.074049: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:30:02.074219: Zero load period starting at 2026-08-17T10:54:00+0100 (1476 minutes) for 189 minutes with base value 207.625
2026-08-18 11:30:02.075327: Processing 721 30-minute periods for power integration
2026-08-18 11:30:02.255044: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:30:02.255195: Car charging hold False, threshold 6.0kWh
2026-08-18 11:30:02.255262: Current data so far today: load 7.05kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:30:02.270021: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:30:02.270136: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:30:02.270927: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:30:02.271024: Standing charge is set to 46.63p
2026-08-18 11:30:02.376147: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:30:02.376413: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:30:02.376606: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:30:02.377664: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:30:02.377772: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:30:02.383123: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:30:02.383465: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:30:02.428408: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:30:02.428525: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:30:02.430030: High export rate found rates in range 99p to -99p
2026-08-18 11:30:02.462779: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:30:02.462891: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:30:02.475881: Battery level now 9.25kWh, -1hr ago 10.27kWh, at midnight 6.84kWh, battery value change in the last hour -7.04p, change today 16.55p, rate_forward 6.87p
2026-08-18 11:30:02.476280: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 1.52p, import 1.52p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:30:02.530345: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:30:02.530513: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:30:02.619245: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:30:02.654061: Today's load divergence 99.46%, in-day adjustment 95.94%, damping 0.95x, yesterday 92.68% today 99.49% blend 52.08%
2026-08-18 11:30:02.654158: Today's predicted so far 7.12kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 7.12kWh forecast extra.
2026-08-18 11:30:02.654192: Today's actual load so far 7.03kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 11:30:02.689702: Inverter 0: Type SK Sunsynk
2026-08-18 11:30:02.689786: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:30:02.689966: Reserve min: 7%, battery_min: 7%
2026-08-18 11:30:02.690092: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:30:02.690396: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 446W, current battery voltage 51.2V, grid power -53W, load power 496W, PV Power 0W
2026-08-18 11:30:02.690571: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:30:02.690708: Inverter 0 scheduled charge enable is False
2026-08-18 11:30:02.690771: Inverter 0 charge windows currently []
2026-08-18 11:30:02.690819: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:30:02.690976: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:30:02.691036: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:30:02.691095: Inverter 0 scheduled discharge enable is False
2026-08-18 11:30:02.691234: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:30:02.691270: Inverter 0 discharge windows currently []
2026-08-18 11:30:02.691293: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:30:02.691312: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:30:02.691329: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:30:02.768438: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:30:02.768545: Plan was last updated on 2026-08-18 11:20:00+01:00 and is now 10.0 minutes old
2026-08-18 11:30:02.768760: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:30:02.768802: Best export window [  ]
2026-08-18 11:30:02.769678: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:30:02.773281: Load divergence over 8.0 hours mean 425.11W, min 335.4W, max 633.6W, std dev 57.57W, divergence 6.77%
2026-08-18 11:30:02.793111: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:30:02.793220: LoadML is_calculating False
2026-08-18 11:30:02.793277: Creating pool of 12 processes to match your CPU count
2026-08-18 11:30:02.920778: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 641.42p, metric_keep 130.06kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.68kWh, PV 0.0kWh
2026-08-18 11:30:03.045000: Battery has 11.33 hours left - now at 9.12kWh
2026-08-18 11:30:03.102349: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 675.15p, metric_keep 132.33kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.85kWh, PV 0.0kWh
2026-08-18 11:30:03.192870: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 387.71p, metric_keep 10.89kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.85kWh, PV 0.0kWh
2026-08-18 11:30:03.277681: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 361.14p, metric_keep 5.61kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.68kWh, PV 0.0kWh
2026-08-18 11:30:03.277767: Saving plan best values to HA entities
2026-08-18 11:30:03.447243: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:30:03.452782: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 11:30:03.458226: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.45kWh, house 0.63kWh, export 0.0kWh, metric 361.14p, metric10 387.71p
2026-08-18 11:30:03.532036: Marginal costs baseline metric (no standing charge): 314.5109
2026-08-18 11:30:03.775639: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:30:03.845754: Rate array import [{'start': 690, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 690, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:30:03.846482: - Your estimated bill for today is £1.83 and tomorrow is £1.94
2026-08-18 11:30:03.846526: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:30:03.846550: - The battery is currently at 57% and is in eco mode for the next 12 hours.
2026-08-18 11:30:03.846587: - For the next 48 hours there will be no solar generation.
2026-08-18 11:30:03.846606: - You will run out of battery in 11 hours.
2026-08-18 11:30:03.846630: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:30:03.846655: 
2026-08-18 11:30:03.910283: Plan calculation took 1.14 seconds
2026-08-18 11:30:03.913633: No high rate period found
2026-08-18 11:30:03.963645: Import threshold used for optimisation was 8.0p
2026-08-18 11:30:04.012704: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:30:04.017686: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 57%, target 100%
2026-08-18 11:30:04.017805: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:30:04.017901: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:30:04.018144: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:30:04.018238: No export window planned
2026-08-18 11:30:04.018368: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:30:04.018421: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:30:04.018558: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:30:04.018737: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:30:04.018797: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:30:04.018866: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:30:04.018965: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019076: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019138: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019163: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:04.019471: Inverter 0 count register writes 0
2026-08-18 11:30:04.034791: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 11:30:04.034950: Recompute is saving previous plan...
2026-08-18 11:30:04.035831: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:30:04.035883: Best export window [  ]
2026-08-18 11:30:04.037061: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:30:04.040255: Load divergence over 8.0 hours mean 425.11W, min 335.4W, max 633.6W, std dev 57.57W, divergence 6.77%
2026-08-18 11:30:04.059460: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:30:04.059582: LoadML is_calculating False
2026-08-18 11:30:04.059649: Creating pool of 12 processes to match your CPU count
2026-08-18 11:30:04.144798: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:30:04.145605: Optimise levels pass started at 2026-08-18 11:30:04
2026-08-18 11:30:04.145661: Optimise all windows, total charge 24 export 1
2026-08-18 11:30:04.806755: >> Region optimisation pass width 960 gives best_metric 381.58p, best_cost 375.38p, best_cycle 42.04kWh, best_import 27.68kWh
2026-08-18 11:30:05.258862: >> Region optimisation pass width 480 gives best_metric 379.22p, best_cost 377.11p, best_cycle 43.41kWh, best_import 27.9kWh
2026-08-18 11:30:05.527579: >> Region optimisation pass width 240 gives best_metric 379.22p, best_cost 377.11p, best_cycle 43.41kWh, best_import 27.9kWh
2026-08-18 11:30:06.637323: >> Region optimisation pass width 120 gives best_metric 376.8p, best_cost 378.55p, best_cycle 45.8kWh, best_import 28.08kWh
2026-08-18 11:30:06.637520: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:30:06.637585: Optimise levels pass ended at 2026-08-18 11:30:06, duration 2.5 seconds tried 78 combinations
2026-08-18 11:30:06.637642: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 376.8p, best_keep 5.25kWh, best_cycle 45.8kWh, best_carbon 0kg, best_import 28.08kWh
2026-08-18 11:30:06.656522: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 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-18 11:30:09.589436: Tweak plan optimisation started metric 305.97p, cost 310.57p
2026-08-18 11:30:09.998018: Tweak optimisation finished metric 305.97p, cost 310.57p, metric_keep 5.25kWh, cycle 33.83kWh, carbon 0kg, import 19.58kWh, changed 8 window(s)
2026-08-18 11:30:10.016877: Swap charge optimisation started metric 305.97p, cost 310.57p, min_improvement_swap 0.1p
2026-08-18 11:30:10.767653: Swap charge optimisation finished metric 305.97p, cost 310.57p
2026-08-18 11:30:10.908834: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 303.14p -> 302.98p, plan now metric 306.41p, cost 308.53p, cycle 34.09kWh, import 19.33kWh
2026-08-18 11:30:10.919295: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:30:10.919669: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:30:10.919897: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:30:10.920132: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:30:10.958979: Previous plan best metric is 305.97 (cost 310.57) and new plan best metric is 305.97 (cost 310.57)
2026-08-18 11:30:10.959176: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 11:30:10.959327: Plan valid is now true after recompute was False
2026-08-18 11:30:10.988623: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 639.96p, metric_keep 129.8kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.5kWh, PV 0.0kWh
2026-08-18 11:30:11.104281: Battery has 11.33 hours left - now at 9.12kWh
2026-08-18 11:30:11.140174: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 673.63p, metric_keep 132.08kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.66kWh, PV 0.0kWh
2026-08-18 11:30:11.207178: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 380.63p, metric_keep 10.87kWh, min_soc 1.12kWh @ 08-18 22:30:00, load 32.66kWh, PV 0.0kWh
2026-08-18 11:30:11.286123: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 353.02p, metric_keep 5.61kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 31.5kWh, PV 0.0kWh
2026-08-18 11:30:11.286198: Saving plan best values to HA entities
2026-08-18 11:30:11.440684: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:30:11.445858: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 11:30:11.451232: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.63kWh, export 0.0kWh, metric 353.02p, metric10 380.63p
2026-08-18 11:30:11.525464: Marginal costs baseline metric (no standing charge): 306.3867
2026-08-18 11:30:11.815389: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:30:11.906268: Rate array import [{'start': 690, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 690, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:30:11.908200: - Your estimated bill for today is £1.83 and tomorrow is £1.94
2026-08-18 11:30:11.909351: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:30:11.909420: - The battery is currently at 57% and is in eco mode for the next 12 hours.
2026-08-18 11:30:11.909466: - For the next 48 hours there will be no solar generation.
2026-08-18 11:30:11.909503: - You will run out of battery in 11 hours.
2026-08-18 11:30:11.909545: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-18 11:30:11.909590: 
2026-08-18 11:30:12.001115: Plan calculation took 7.97 seconds
2026-08-18 11:30:12.001438: Inverter 0: Type SK Sunsynk
2026-08-18 11:30:12.001491: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:30:12.001724: Reserve min: 7%, battery_min: 7%
2026-08-18 11:30:12.001825: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:30:12.002196: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 446W, current battery voltage 51.2V, grid power -53W, load power 496W, PV Power 0W
2026-08-18 11:30:12.002467: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:30:12.002594: Inverter 0 scheduled charge enable is False
2026-08-18 11:30:12.002639: Inverter 0 charge windows currently []
2026-08-18 11:30:12.002680: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:30:12.002839: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:30:12.002885: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:30:12.002939: Inverter 0 scheduled discharge enable is False
2026-08-18 11:30:12.003126: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:30:12.003168: Inverter 0 discharge windows currently []
2026-08-18 11:30:12.003196: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:30:12.003261: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:30:12.003304: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:30:12.055942: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 57%, target 100%
2026-08-18 11:30:12.056066: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:30:12.056121: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:30:12.056270: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:30:12.056339: No export window planned
2026-08-18 11:30:12.056448: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:30:12.056479: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:30:12.056650: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:30:12.056805: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:30:12.056851: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:30:12.056900: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:30:12.056976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057010: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057033: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057117: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057292: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:30:12.057309: Inverter 0 count register writes 0
2026-08-18 11:30:12.077608: Total inverter register writes now 867
2026-08-18 11:30:12.112477: Info: Completed run status Demand
2026-08-18 11:30:12.118407: Info: record_status Demand
2026-08-18 11:30:12.124860: Saved current settings to /config/predbat_config.json
2026-08-18 11:30:12.125194: Compare, best tariff: current metric 129.87p
2026-08-18 11:30:49.234150: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:30:49.234387: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:30:49.234460: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:30:49.234614: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:30:49.234654: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:30:49.234675: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:30:49.234693: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:32:49.443729: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:32:49.443983: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:32:49.444024: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:32:49.444175: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:32:49.444224: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:32:49.444245: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:32:49.444260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:35:00.678157: --------------- PredBat - update at 2026-08-18 11:35:00+01:00 with clock skew 0 minutes, minutes now 695
2026-08-18 11:35:00.678858: Saved current settings to /config/predbat_config.json
2026-08-18 11:35:00.678975: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 11:35:00.679040: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:35:00.679139: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:35:00.697387: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:35:00.697533: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:35:00.697823: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:35:00.698453: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:35:00.698622: Predbat mode is set to Control charge & discharge
2026-08-18 11:35:00.892383: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:35:00.892508: Using load_power data to fill gaps in load_today data
2026-08-18 11:35:01.765605: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:35:01.765772: Zero load period starting at 2026-08-17T10:54:00+0100 (1481 minutes) for 189 minutes with base value 207.6
2026-08-18 11:35:01.766811: Processing 721 30-minute periods for power integration
2026-08-18 11:35:01.954243: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:35:01.958214: Car charging hold False, threshold 6.0kWh
2026-08-18 11:35:01.958284: Current data so far today: load 7.1kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:35:01.971238: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:35:01.971337: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:35:01.972022: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:35:01.972091: Standing charge is set to 46.63p
2026-08-18 11:35:02.083947: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:35:02.084226: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:35:02.084389: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:35:02.085775: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:35:02.085885: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:35:02.090804: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:35:02.091200: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:35:02.132964: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:35:02.133213: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:35:02.134273: High export rate found rates in range 99p to -99p
2026-08-18 11:35:02.161902: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:35:02.162044: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:35:02.180285: Battery level now 9.12kWh, -1hr ago 10.1kWh, at midnight 6.84kWh, battery value change in the last hour -6.71p, change today 15.67p, rate_forward 6.87p
2026-08-18 11:35:02.180610: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 1.35p, import 1.35p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:35:02.250211: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:35:02.250328: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:35:02.345281: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:35:02.379409: Today's load divergence 99.05%, in-day adjustment 95.78%, damping 0.95x, yesterday 92.68% today 99.1% blend 51.74%
2026-08-18 11:35:02.379496: Today's predicted so far 7.25kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 7.25kWh forecast extra.
2026-08-18 11:35:02.379542: Today's actual load so far 7.09kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 11:35:02.419590: Inverter 0: Type SK Sunsynk
2026-08-18 11:35:02.419667: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:35:02.419879: Reserve min: 7%, battery_min: 7%
2026-08-18 11:35:02.420029: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:35:02.420337: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 440W, current battery voltage 51.2V, grid power -56W, load power 594W, PV Power 0W
2026-08-18 11:35:02.420618: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:35:02.420778: Inverter 0 scheduled charge enable is False
2026-08-18 11:35:02.421657: Inverter 0 charge windows currently []
2026-08-18 11:35:02.421717: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:35:02.421914: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:35:02.421963: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:35:02.422037: Inverter 0 scheduled discharge enable is False
2026-08-18 11:35:02.422234: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:35:02.422277: Inverter 0 discharge windows currently []
2026-08-18 11:35:02.422308: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:35:02.422366: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:35:02.422405: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:35:02.488586: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:35:02.488712: Plan was last updated on 2026-08-18 11:30:00+01:00 and is now 5.0 minutes old
2026-08-18 11:35:02.488918: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:35:02.488955: Best export window [  ]
2026-08-18 11:35:02.489899: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:35:02.493512: Load divergence over 8.0 hours mean 425.09W, min 330.0W, max 675.0W, std dev 65.24W, divergence 7.67%
2026-08-18 11:35:02.516415: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:35:02.516535: LoadML is_calculating False
2026-08-18 11:35:02.516604: Creating pool of 12 processes to match your CPU count
2026-08-18 11:35:02.647639: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 637.31p, metric_keep 129.26kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.55kWh, PV 0.0kWh
2026-08-18 11:35:02.789326: Battery has 11.42 hours left - now at 9.12kWh
2026-08-18 11:35:02.835124: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 670.82p, metric_keep 131.53kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.71kWh, PV 0.0kWh
2026-08-18 11:35:02.919832: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 380.62p, metric_keep 10.25kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.71kWh, PV 0.0kWh
2026-08-18 11:35:03.003103: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 353.76p, metric_keep 4.94kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.55kWh, PV 0.0kWh
2026-08-18 11:35:03.003225: Saving plan best values to HA entities
2026-08-18 11:35:03.180135: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:35:03.186055: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:35:03.191644: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.53kWh, export 0.0kWh, metric 353.76p, metric10 380.62p
2026-08-18 11:35:03.268577: Marginal costs baseline metric (no standing charge): 307.1303
2026-08-18 11:35:03.546633: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:35:03.610051: Rate array import [{'start': 695, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 695, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:35:03.610648: - Your estimated bill for today is £1.79 and tomorrow is £1.94
2026-08-18 11:35:03.610685: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:35:03.610703: - The battery is currently at 57% and is in eco mode for the next 11 hours.
2026-08-18 11:35:03.610718: - For the next 48 hours there will be no solar generation.
2026-08-18 11:35:03.610732: - You will run out of battery in 11 hours.
2026-08-18 11:35:03.610746: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:35:03.610760: 
2026-08-18 11:35:03.671635: Plan calculation took 1.18 seconds
2026-08-18 11:35:03.674792: No high rate period found
2026-08-18 11:35:03.723049: Import threshold used for optimisation was 8.0p
2026-08-18 11:35:03.777733: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:35:03.785314: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 57%, target 100%
2026-08-18 11:35:03.785455: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:35:03.785597: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:35:03.785906: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:35:03.786051: No export window planned
2026-08-18 11:35:03.786328: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:35:03.786394: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:35:03.786751: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:35:03.787059: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:35:03.787184: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:35:03.787315: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:35:03.787487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.787661: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.787750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.787819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.787868: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.787966: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788026: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:35:03.788609: Inverter 0 count register writes 0
2026-08-18 11:35:03.808789: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 11:35:03.817294: Total inverter register writes now 867
2026-08-18 11:35:03.887216: Info: Completed run status Demand
2026-08-18 11:35:03.893881: Info: record_status Demand
2026-08-18 11:35:03.900020: Saved current settings to /config/predbat_config.json
2026-08-18 11:35:03.900278: Compare, best tariff: current metric 129.87p
2026-08-18 11:35:33.999453: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:35:33.999698: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:35:33.999746: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:35:33.999881: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:35:33.999958: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:35:34.000016: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:35:34.000055: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:35:35.350079: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 11:35:36.262562: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:35:36.262745: Zero load period starting at 2026-08-17T10:54:00+0100 (1481 minutes) for 189 minutes with base value 398.5
2026-08-18 11:35:36.263658: Processing 1345 30-minute periods for power integration
2026-08-18 11:35:36.349163: ML Component: Car charging hold False, car energy reported load False
2026-08-18 11:35:36.430619: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:35:36.511285: ML Temperature data points: 49706
2026-08-18 11:35:36.785931: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 11:35:36.824358: ML Component: Data fetch completed, load data age 59.0 days, 17250 data points
2026-08-18 11:35:36.824472: ML Component: No training needed, model age is 1.44 hours
2026-08-18 11:35:36.824549: ML Component: Generating predictions load data age 59.0 days, 17250 data points
2026-08-18 11:35:36.970392: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0448 max_dow {0: 0.08250277803424333, 1: 0.0922861109920674, 2: 0.10978749959506096, 3: 0.10331875034738332, 4: 0.1381031253574416, 5: 0.10191944486482275, 6: 0.10384444441977475}
2026-08-18 11:35:37.408545: ML Component: Generated 576 predictions (total 26.76 kWh over 48h)
2026-08-18 11:35:37.447231: ML Component: Prediction cycle completed
2026-08-18 11:35:37.565642: ML Component: Saved 17250 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 11:37:34.220004: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:37:34.220284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:37:34.220337: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:37:34.220475: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:37:34.220514: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:37:34.220535: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:37:34.220561: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:39:34.434423: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:39:34.434682: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:39:34.434726: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:39:34.434855: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:39:34.434892: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:39:34.434913: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:39:34.434931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:40:00.537874: --------------- PredBat - update at 2026-08-18 11:40:00+01:00 with clock skew 0 minutes, minutes now 700
2026-08-18 11:40:00.538596: Saved current settings to /config/predbat_config.json
2026-08-18 11:40:00.538741: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 11:40:00.538878: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:40:00.539003: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:40:00.556547: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:40:00.556683: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:40:00.556840: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:40:00.557313: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:40:00.557427: Predbat mode is set to Control charge & discharge
2026-08-18 11:40:00.721391: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:40:00.721512: Using load_power data to fill gaps in load_today data
2026-08-18 11:40:01.518056: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:40:01.518224: Zero load period starting at 2026-08-17T10:54:00+0100 (1486 minutes) for 189 minutes with base value 207.575
2026-08-18 11:40:01.519383: Processing 721 30-minute periods for power integration
2026-08-18 11:40:01.706633: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:40:01.706777: Car charging hold False, threshold 6.0kWh
2026-08-18 11:40:01.706831: Current data so far today: load 7.15kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:40:01.722060: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:40:01.722160: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:40:01.722990: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:40:01.723069: Standing charge is set to 46.63p
2026-08-18 11:40:01.837139: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:40:01.837419: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:40:01.837685: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:40:01.839012: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:40:01.839170: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:40:01.844995: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:40:01.845300: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:40:01.889745: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:40:01.889865: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:40:01.891165: High export rate found rates in range 99p to -99p
2026-08-18 11:40:01.920259: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:40:01.920400: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:40:01.932030: Battery level now 9.12kWh, -1hr ago 9.99kWh, at midnight 6.84kWh, battery value change in the last hour -5.99p, change today 15.67p, rate_forward 6.87p
2026-08-18 11:40:01.932533: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 1.18p, import 1.18p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:40:01.982662: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:40:01.982785: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:40:02.067409: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:40:02.102828: Today's load divergence 98.91%, in-day adjustment 95.73%, damping 0.95x, yesterday 92.68% today 98.96% blend 51.39%
2026-08-18 11:40:02.103444: Today's predicted so far 7.29kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 7.29kWh forecast extra.
2026-08-18 11:40:02.103528: Today's actual load so far 7.12kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 11:40:02.154891: Inverter 0: Type SK Sunsynk
2026-08-18 11:40:02.155013: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:40:02.155230: Reserve min: 7%, battery_min: 7%
2026-08-18 11:40:02.155371: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:40:02.155703: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 3393W, current battery voltage 51.2V, grid power -52W, load power 3414W, PV Power 0W
2026-08-18 11:40:02.155889: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:40:02.156052: Inverter 0 scheduled charge enable is False
2026-08-18 11:40:02.156164: Inverter 0 charge windows currently []
2026-08-18 11:40:02.156229: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:40:02.156391: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:40:02.156453: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:40:02.156561: Inverter 0 scheduled discharge enable is False
2026-08-18 11:40:02.156771: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:40:02.157530: Inverter 0 discharge windows currently []
2026-08-18 11:40:02.158742: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:40:02.158818: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:40:02.158900: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:40:02.237624: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:40:02.237725: Plan was last updated on 2026-08-18 11:30:00+01:00 and is now 10.0 minutes old
2026-08-18 11:40:02.237948: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:40:02.237990: Best export window [  ]
2026-08-18 11:40:02.238824: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:40:02.242018: Load divergence over 8.0 hours mean 425.06W, min 345.0W, max 712.8W, std dev 64.6W, divergence 7.6%
2026-08-18 11:40:02.260315: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:40:02.260395: LoadML is_calculating False
2026-08-18 11:40:02.260448: Creating pool of 12 processes to match your CPU count
2026-08-18 11:40:02.374320: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.91p, metric_keep 128.83kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.6kWh, PV 0.0kWh
2026-08-18 11:40:02.492588: Battery has 11.42 hours left - now at 9.12kWh
2026-08-18 11:40:02.532955: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 668.35p, metric_keep 131.06kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:40:02.607873: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 380.83p, metric_keep 9.64kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.76kWh, PV 0.0kWh
2026-08-18 11:40:02.673059: predict best end_record 08-19 23:40:00, final soc 2.11kWh, metric 354.79p, metric_keep 4.36kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.6kWh, PV 0.0kWh
2026-08-18 11:40:02.673132: Saving plan best values to HA entities
2026-08-18 11:40:02.832152: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:40:02.836504: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:40:02.841352: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.44kWh, export 0.0kWh, metric 354.79p, metric10 380.83p
2026-08-18 11:40:02.902839: Marginal costs baseline metric (no standing charge): 308.1539
2026-08-18 11:40:03.123240: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:40:03.207729: Rate array import [{'start': 700, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 700, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:40:03.208347: - Your estimated bill for today is £1.76 and tomorrow is £1.94
2026-08-18 11:40:03.208389: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:40:03.208408: - The battery is currently at 57% and is in eco mode for the next 11 hours.
2026-08-18 11:40:03.208423: - For the next 48 hours there will be no solar generation.
2026-08-18 11:40:03.208437: - You will run out of battery in 11 hours.
2026-08-18 11:40:03.208450: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:40:03.208464: 
2026-08-18 11:40:03.259330: Plan calculation took 1.02 seconds
2026-08-18 11:40:03.264746: No high rate period found
2026-08-18 11:40:03.310245: Import threshold used for optimisation was 8.0p
2026-08-18 11:40:03.360690: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:40:03.365822: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 57%, target 100%
2026-08-18 11:40:03.365939: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:40:03.366045: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:40:03.366293: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:40:03.366388: No export window planned
2026-08-18 11:40:03.366515: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:40:03.366550: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:40:03.366706: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:40:03.366885: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:40:03.366945: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:40:03.367007: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:40:03.367108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367147: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367200: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367229: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367428: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:03.367533: Inverter 0 count register writes 0
2026-08-18 11:40:03.382255: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 11:40:03.382403: Recompute is saving previous plan...
2026-08-18 11:40:03.383283: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:40:03.383349: Best export window [  ]
2026-08-18 11:40:03.384274: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:40:03.387562: Load divergence over 8.0 hours mean 425.06W, min 345.0W, max 712.8W, std dev 64.6W, divergence 7.6%
2026-08-18 11:40:03.405240: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:40:03.405325: LoadML is_calculating False
2026-08-18 11:40:03.405402: Creating pool of 12 processes to match your CPU count
2026-08-18 11:40:03.490131: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:40:03.490898: Optimise levels pass started at 2026-08-18 11:40:03
2026-08-18 11:40:03.490947: Optimise all windows, total charge 24 export 1
2026-08-18 11:40:03.844006: >> Region optimisation pass width 960 gives best_metric 383.54p, best_cost 447.48p, best_cycle 50.3kWh, best_import 37.32kWh
2026-08-18 11:40:03.994387: >> Region optimisation pass width 480 gives best_metric 383.54p, best_cost 447.48p, best_cycle 50.3kWh, best_import 37.32kWh
2026-08-18 11:40:04.246735: >> Region optimisation pass width 240 gives best_metric 383.54p, best_cost 447.48p, best_cycle 50.3kWh, best_import 37.32kWh
2026-08-18 11:40:04.754379: >> Region optimisation pass width 120 gives best_metric 383.54p, best_cost 447.48p, best_cycle 50.3kWh, best_import 37.32kWh
2026-08-18 11:40:04.754601: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:40:04.754691: Optimise levels pass ended at 2026-08-18 11:40:04, duration 1.3 seconds tried 58 combinations
2026-08-18 11:40:04.754750: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 383.54p, best_keep 4.03kWh, best_cycle 50.3kWh, best_carbon 0kg, best_import 37.32kWh
2026-08-18 11:40:04.774059: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 11:40:07.440686: Tweak plan optimisation started metric 298.16p, cost 304.06p
2026-08-18 11:40:07.805598: Tweak optimisation finished metric 298.16p, cost 304.06p, metric_keep 4.03kWh, cycle 33.82kWh, carbon 0kg, import 19.39kWh, changed 8 window(s)
2026-08-18 11:40:07.826317: Swap charge optimisation started metric 298.16p, cost 304.06p, min_improvement_swap 0.1p
2026-08-18 11:40:08.606566: Swap charge optimisation finished metric 298.16p, cost 304.06p
2026-08-18 11:40:08.744352: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 295.37p -> 295.12p, plan now metric 299.4p, cost 299.9p, cycle 33.83kWh, import 18.87kWh
2026-08-18 11:40:08.754310: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:40:08.754573: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:40:08.754766: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:40:08.754904: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:40:08.783429: Previous plan best metric is 298.16 (cost 304.06) and new plan best metric is 298.16 (cost 304.06)
2026-08-18 11:40:08.783566: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 11:40:08.783701: Plan valid is now true after recompute was False
2026-08-18 11:40:08.806293: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.32p, metric_keep 128.58kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.4kWh, PV 0.0kWh
2026-08-18 11:40:08.898868: Battery has 11.42 hours left - now at 9.12kWh
2026-08-18 11:40:08.934221: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 666.69p, metric_keep 130.81kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.56kWh, PV 0.0kWh
2026-08-18 11:40:09.005328: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 373.61p, metric_keep 9.62kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.56kWh, PV 0.0kWh
2026-08-18 11:40:09.077022: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 346.53p, metric_keep 4.36kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.4kWh, PV 0.0kWh
2026-08-18 11:40:09.077102: Saving plan best values to HA entities
2026-08-18 11:40:09.209928: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:40:09.215457: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:40:09.222624: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.44kWh, export 0.0kWh, metric 346.53p, metric10 373.61p
2026-08-18 11:40:09.292920: Marginal costs baseline metric (no standing charge): 299.9001
2026-08-18 11:40:09.563189: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:40:09.633510: Rate array import [{'start': 700, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 700, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:40:09.634255: - Your estimated bill for today is £1.76 and tomorrow is £1.94
2026-08-18 11:40:09.634318: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:40:09.634341: - The battery is currently at 57% and is in eco mode for the next 11 hours.
2026-08-18 11:40:09.634360: - For the next 48 hours there will be no solar generation.
2026-08-18 11:40:09.634382: - You will run out of battery in 11 hours.
2026-08-18 11:40:09.634400: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:40:09.634417: 
2026-08-18 11:40:09.695425: Plan calculation took 6.31 seconds
2026-08-18 11:40:09.695735: Inverter 0: Type SK Sunsynk
2026-08-18 11:40:09.695781: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:40:09.696016: Reserve min: 7%, battery_min: 7%
2026-08-18 11:40:09.696100: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:40:09.696414: Inverter 0 SoC: 9.07kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 3386W, current battery voltage 51.2V, grid power -53W, load power 3408W, PV Power 0W
2026-08-18 11:40:09.696732: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:40:09.696852: Inverter 0 scheduled charge enable is False
2026-08-18 11:40:09.696892: Inverter 0 charge windows currently []
2026-08-18 11:40:09.696925: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:40:09.697087: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:40:09.697155: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:40:09.697211: Inverter 0 scheduled discharge enable is False
2026-08-18 11:40:09.697383: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:40:09.697426: Inverter 0 discharge windows currently []
2026-08-18 11:40:09.697449: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:40:09.697468: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:40:09.697491: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:40:09.745607: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 57%, target 100%
2026-08-18 11:40:09.745773: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:40:09.745867: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:40:09.746054: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:40:09.746149: No export window planned
2026-08-18 11:40:09.746298: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:40:09.746340: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:40:09.746515: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:40:09.746726: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:40:09.746806: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:40:09.746884: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:40:09.746984: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747030: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747109: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747792: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747868: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.747972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.748010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:40:09.748043: Inverter 0 count register writes 0
2026-08-18 11:40:09.767218: Total inverter register writes now 867
2026-08-18 11:40:09.796805: Info: Completed run status Demand
2026-08-18 11:40:09.802529: Info: record_status Demand
2026-08-18 11:40:09.808728: Saved current settings to /config/predbat_config.json
2026-08-18 11:40:09.809010: Compare, best tariff: current metric 129.87p
2026-08-18 11:40:48.919865: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:40:48.920136: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:40:48.920177: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:40:48.920309: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:40:48.920348: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:40:48.920369: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:40:48.920392: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:42:49.138572: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:42:49.138883: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:42:49.138962: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:42:49.139176: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:42:49.139230: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:42:49.139264: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:42:49.139284: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:44:49.369555: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:44:49.369809: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:44:49.369865: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:44:49.369996: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:44:49.370028: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:44:49.370046: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:44:49.370061: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:45:00.454234: --------------- PredBat - update at 2026-08-18 11:45:00+01:00 with clock skew 0 minutes, minutes now 705
2026-08-18 11:45:00.455181: Saved current settings to /config/predbat_config.json
2026-08-18 11:45:00.455334: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 11:45:00.455444: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:45:00.455518: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:45:00.473784: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:45:00.473901: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:45:00.474123: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:45:00.474696: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:45:00.474870: Predbat mode is set to Control charge & discharge
2026-08-18 11:45:00.658100: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:45:00.658227: Using load_power data to fill gaps in load_today data
2026-08-18 11:45:01.495661: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:45:01.495847: Zero load period starting at 2026-08-17T10:54:00+0100 (1491 minutes) for 189 minutes with base value 207.55
2026-08-18 11:45:01.497052: Processing 721 30-minute periods for power integration
2026-08-18 11:45:01.679394: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:45:01.679510: Car charging hold False, threshold 6.0kWh
2026-08-18 11:45:01.679553: Current data so far today: load 7.2kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:45:01.695498: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:45:01.695582: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:45:01.696371: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:45:01.696443: Standing charge is set to 46.63p
2026-08-18 11:45:01.789375: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:45:01.789710: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:45:01.789953: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:45:01.791105: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:45:01.791237: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:45:01.796661: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:45:01.797132: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:45:01.842946: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:45:01.843060: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:45:01.844639: High export rate found rates in range 99p to -99p
2026-08-18 11:45:01.872783: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:45:01.872918: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:45:01.885603: Battery level now 9.12kWh, -1hr ago 9.62kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today 15.67p, rate_forward 6.87p
2026-08-18 11:45:01.886071: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.01p, import 1.01p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:45:01.935132: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:45:01.935258: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:45:02.020447: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:45:02.053216: Today's load divergence 98.91%, in-day adjustment 95.76%, damping 0.95x, yesterday 92.68% today 98.96% blend 51.04%
2026-08-18 11:45:02.053295: Today's predicted so far 7.33kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 7.33kWh forecast extra.
2026-08-18 11:45:02.053327: Today's actual load so far 7.16kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 11:45:02.084732: Inverter 0: Type SK Sunsynk
2026-08-18 11:45:02.084809: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:45:02.085024: Reserve min: 7%, battery_min: 7%
2026-08-18 11:45:02.085112: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:45:02.085419: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 504W, current battery voltage 51.2V, grid power -52W, load power 560W, PV Power 0W
2026-08-18 11:45:02.085604: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:45:02.085733: Inverter 0 scheduled charge enable is False
2026-08-18 11:45:02.085779: Inverter 0 charge windows currently []
2026-08-18 11:45:02.085819: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:45:02.085976: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:45:02.086018: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:45:02.086069: Inverter 0 scheduled discharge enable is False
2026-08-18 11:45:02.086240: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:45:02.086283: Inverter 0 discharge windows currently []
2026-08-18 11:45:02.086311: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:45:02.086353: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:45:02.086391: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:45:02.142918: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:45:02.143017: Plan was last updated on 2026-08-18 11:40:00+01:00 and is now 5.0 minutes old
2026-08-18 11:45:02.143269: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:45:02.143337: Best export window [  ]
2026-08-18 11:45:02.144290: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:45:02.147543: Load divergence over 8.0 hours mean 425.18W, min 307.2W, max 753.0W, std dev 76.06W, divergence 8.94%
2026-08-18 11:45:02.166863: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:45:02.166978: LoadML is_calculating False
2026-08-18 11:45:02.167038: Creating pool of 12 processes to match your CPU count
2026-08-18 11:45:02.288716: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.74p, metric_keep 129.17kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.48kWh, PV 0.0kWh
2026-08-18 11:45:02.408688: Battery has 11.25 hours left - now at 8.96kWh
2026-08-18 11:45:02.450689: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 669.99p, metric_keep 131.4kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.64kWh, PV 0.0kWh
2026-08-18 11:45:02.526047: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 379.69p, metric_keep 10.13kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.64kWh, PV 0.0kWh
2026-08-18 11:45:02.600530: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 353.18p, metric_keep 4.84kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 31.48kWh, PV 0.0kWh
2026-08-18 11:45:02.600615: Saving plan best values to HA entities
2026-08-18 11:45:02.759874: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:45:02.764679: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:45:02.769464: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.51kWh, export 0.0kWh, metric 353.18p, metric10 379.69p
2026-08-18 11:45:02.871038: Marginal costs baseline metric (no standing charge): 306.5473
2026-08-18 11:45:03.105351: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:45:03.161838: Rate array import [{'start': 705, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 705, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:45:03.162403: - Your estimated bill for today is £1.79 and tomorrow is £1.94
2026-08-18 11:45:03.162438: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:45:03.162457: - The battery is currently at 56% and is in eco mode for the next 11 hours.
2026-08-18 11:45:03.162479: - For the next 48 hours there will be no solar generation.
2026-08-18 11:45:03.162493: - You will run out of battery in 11 hours.
2026-08-18 11:45:03.162513: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:45:03.162527: 
2026-08-18 11:45:03.210241: Plan calculation took 1.07 seconds
2026-08-18 11:45:03.213043: No high rate period found
2026-08-18 11:45:03.257937: Import threshold used for optimisation was 8.0p
2026-08-18 11:45:03.299784: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:45:03.304444: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 56%, target 100%
2026-08-18 11:45:03.304543: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:45:03.304634: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:45:03.304905: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:45:03.305005: No export window planned
2026-08-18 11:45:03.305143: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:45:03.305179: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:45:03.305343: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:45:03.305544: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:45:03.305611: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:45:03.305699: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:45:03.305815: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.305866: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.305914: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.305949: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.305993: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306030: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:45:03.306402: Inverter 0 count register writes 0
2026-08-18 11:45:03.319097: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 11:45:03.323380: Total inverter register writes now 867
2026-08-18 11:45:03.349945: Info: Completed run status Demand
2026-08-18 11:45:03.354991: Info: record_status Demand
2026-08-18 11:45:03.360597: Saved current settings to /config/predbat_config.json
2026-08-18 11:45:03.360909: Compare, best tariff: current metric 129.87p
2026-08-18 11:45:34.471456: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:45:34.471725: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:45:34.471767: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:45:34.471958: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:45:34.472005: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:45:34.472041: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:45:34.472068: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:47:48.697797: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:47:48.698025: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:47:48.698067: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:47:48.698199: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:47:48.698237: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:47:48.698259: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:47:48.698277: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:49:48.925508: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:49:48.925753: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:49:48.925796: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:49:48.925927: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:49:48.925965: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:49:48.925987: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:49:48.926005: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:50:00.050488: --------------- PredBat - update at 2026-08-18 11:50:00+01:00 with clock skew 0 minutes, minutes now 710
2026-08-18 11:50:00.051526: Saved current settings to /config/predbat_config.json
2026-08-18 11:50:00.051784: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 11:50:00.051884: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:50:00.052020: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:50:00.074207: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:50:00.074328: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:50:00.074489: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:50:00.075077: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:50:00.075273: Predbat mode is set to Control charge & discharge
2026-08-18 11:50:00.258133: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:50:00.258268: Using load_power data to fill gaps in load_today data
2026-08-18 11:50:01.021160: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:50:01.021368: Zero load period starting at 2026-08-17T10:54:00+0100 (1496 minutes) for 189 minutes with base value 207.525
2026-08-18 11:50:01.022513: Processing 721 30-minute periods for power integration
2026-08-18 11:50:01.199034: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:50:01.199141: Car charging hold False, threshold 6.0kWh
2026-08-18 11:50:01.199196: Current data so far today: load 7.4kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:50:01.215296: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:50:01.215378: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:50:01.216275: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:50:01.216385: Standing charge is set to 46.63p
2026-08-18 11:50:01.300811: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:50:01.301509: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:50:01.301798: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:50:01.302748: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:50:01.302872: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:50:01.307240: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:50:01.308558: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:50:01.349357: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:50:01.349454: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:50:01.350537: High export rate found rates in range 99p to -99p
2026-08-18 11:50:01.373739: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:50:01.373847: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:50:01.386347: Battery level now 8.96kWh, -1hr ago 9.62kWh, at midnight 6.84kWh, battery value change in the last hour -4.51p, change today 14.57p, rate_forward 6.87p
2026-08-18 11:50:01.386727: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.85kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:50:01.431826: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:50:01.431998: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:50:01.516812: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:50:01.551292: Today's load divergence 99.72%, in-day adjustment 96.16%, damping 0.95x, yesterday 92.68% today 99.73% blend 50.69%
2026-08-18 11:50:01.551382: Today's predicted so far 7.39kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 7.39kWh forecast extra.
2026-08-18 11:50:01.551414: Today's actual load so far 7.34kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 11:50:01.583936: Inverter 0: Type SK Sunsynk
2026-08-18 11:50:01.584008: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:50:01.584155: Reserve min: 7%, battery_min: 7%
2026-08-18 11:50:01.584210: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:50:01.584420: Inverter 0 SoC: 8.86kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 489W, current battery voltage 51.2V, grid power -55W, load power 545W, PV Power 0W
2026-08-18 11:50:01.584561: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:50:01.584631: Inverter 0 scheduled charge enable is False
2026-08-18 11:50:01.584658: Inverter 0 charge windows currently []
2026-08-18 11:50:01.584679: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:50:01.584780: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:50:01.584812: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:50:01.584843: Inverter 0 scheduled discharge enable is False
2026-08-18 11:50:01.584939: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:50:01.584968: Inverter 0 discharge windows currently []
2026-08-18 11:50:01.584987: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:50:01.585002: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:50:01.585016: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:50:01.645644: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:50:01.645793: Plan was last updated on 2026-08-18 11:40:00+01:00 and is now 10.0 minutes old
2026-08-18 11:50:01.646105: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:50:01.646155: Best export window [  ]
2026-08-18 11:50:01.647296: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:50:01.651984: Load divergence over 8.0 hours mean 423.54W, min 316.8W, max 620.4W, std dev 66.28W, divergence 7.82%
2026-08-18 11:50:01.675872: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:50:01.675986: LoadML is_calculating False
2026-08-18 11:50:01.676056: Creating pool of 12 processes to match your CPU count
2026-08-18 11:50:01.784416: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 638.93p, metric_keep 129.58kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.73kWh, PV 0.0kWh
2026-08-18 11:50:01.911268: Battery has 11.08 hours left - now at 8.86kWh
2026-08-18 11:50:01.953467: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 672.16p, metric_keep 131.78kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.89kWh, PV 0.0kWh
2026-08-18 11:50:02.023194: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 384.58p, metric_keep 10.35kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.89kWh, PV 0.0kWh
2026-08-18 11:50:02.099777: predict best end_record 08-19 23:40:00, final soc 2.11kWh, metric 358.86p, metric_keep 5.1kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.73kWh, PV 0.0kWh
2026-08-18 11:50:02.099848: Saving plan best values to HA entities
2026-08-18 11:50:02.250613: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:50:02.254906: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:50:02.259105: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.55kWh, export 0.0kWh, metric 358.86p, metric10 384.58p
2026-08-18 11:50:02.321440: Marginal costs baseline metric (no standing charge): 312.2234
2026-08-18 11:50:02.543648: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:50:02.603105: Rate array import [{'start': 710, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 710, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:50:02.603691: - Your estimated bill for today is £1.81 and tomorrow is £1.94
2026-08-18 11:50:02.603743: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:50:02.603762: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 11:50:02.603777: - For the next 48 hours there will be no solar generation.
2026-08-18 11:50:02.603791: - You will run out of battery in 11 hours.
2026-08-18 11:50:02.603806: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:50:02.603819: 
2026-08-18 11:50:02.652621: Plan calculation took 1.01 seconds
2026-08-18 11:50:02.655399: No high rate period found
2026-08-18 11:50:02.695861: Import threshold used for optimisation was 8.0p
2026-08-18 11:50:02.736456: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:50:02.741369: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 11:50:02.741520: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:50:02.741632: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:50:02.741856: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:50:02.741937: No export window planned
2026-08-18 11:50:02.742039: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:50:02.742068: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:50:02.742174: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:50:02.742321: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:50:02.742372: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:50:02.742431: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:50:02.742514: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742548: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742570: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742785: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:02.742911: Inverter 0 count register writes 0
2026-08-18 11:50:02.755393: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 11:50:02.755517: Recompute is saving previous plan...
2026-08-18 11:50:02.756293: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 11:50:02.756337: Best export window [  ]
2026-08-18 11:50:02.757015: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:50:02.759525: Load divergence over 8.0 hours mean 423.54W, min 316.8W, max 620.4W, std dev 66.28W, divergence 7.82%
2026-08-18 11:50:02.773943: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:50:02.774015: LoadML is_calculating False
2026-08-18 11:50:02.774063: Creating pool of 12 processes to match your CPU count
2026-08-18 11:50:02.849481: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 11:50:02.850339: Optimise levels pass started at 2026-08-18 11:50:02
2026-08-18 11:50:02.850390: Optimise all windows, total charge 24 export 1
2026-08-18 11:50:03.180507: >> Region optimisation pass width 960 gives best_metric 389.53p, best_cost 451.59p, best_cycle 50.21kWh, best_import 37.45kWh
2026-08-18 11:50:03.305993: >> Region optimisation pass width 480 gives best_metric 389.53p, best_cost 451.59p, best_cycle 50.21kWh, best_import 37.45kWh
2026-08-18 11:50:03.532835: >> Region optimisation pass width 240 gives best_metric 389.53p, best_cost 451.59p, best_cycle 50.21kWh, best_import 37.45kWh
2026-08-18 11:50:04.066520: >> Region optimisation pass width 120 gives best_metric 389.53p, best_cost 451.59p, best_cycle 50.21kWh, best_import 37.45kWh
2026-08-18 11:50:04.066680: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 11:50:04.066746: Optimise levels pass ended at 2026-08-18 11:50:04, duration 1.2 seconds tried 58 combinations
2026-08-18 11:50:04.066826: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 389.53p, best_keep 4.78kWh, best_cycle 50.21kWh, best_carbon 0kg, best_import 37.45kWh
2026-08-18 11:50:04.081157: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 11:50:06.819843: Tweak plan optimisation started metric 302.94p, cost 308.13p
2026-08-18 11:50:07.164226: Tweak optimisation finished metric 302.94p, cost 308.13p, metric_keep 4.78kWh, cycle 33.57kWh, carbon 0kg, import 19.52kWh, changed 8 window(s)
2026-08-18 11:50:07.185699: Swap charge optimisation started metric 302.94p, cost 308.13p, min_improvement_swap 0.1p
2026-08-18 11:50:07.963986: Swap charge optimisation finished metric 302.94p, cost 308.13p
2026-08-18 11:50:08.098183: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 300.19p -> 299.93p, plan now metric 304.17p, cost 303.99p, cycle 33.58kWh, import 19.0kWh
2026-08-18 11:50:08.108075: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:50:08.108690: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:50:08.109150: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:50:08.109359: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 11:50:08.146568: Previous plan best metric is 302.94 (cost 308.13) and new plan best metric is 302.94 (cost 308.13)
2026-08-18 11:50:08.146781: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 11:50:08.146951: Plan valid is now true after recompute was False
2026-08-18 11:50:08.175563: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 637.36p, metric_keep 129.33kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.54kWh, PV 0.0kWh
2026-08-18 11:50:08.272852: Battery has 11.08 hours left - now at 8.86kWh
2026-08-18 11:50:08.321006: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 670.52p, metric_keep 131.53kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.69kWh, PV 0.0kWh
2026-08-18 11:50:08.397496: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 377.39p, metric_keep 10.33kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.69kWh, PV 0.0kWh
2026-08-18 11:50:08.472234: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 350.62p, metric_keep 5.1kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.54kWh, PV 0.0kWh
2026-08-18 11:50:08.472323: Saving plan best values to HA entities
2026-08-18 11:50:08.598934: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:50:08.603199: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:50:08.607581: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.55kWh, export 0.0kWh, metric 350.62p, metric10 377.39p
2026-08-18 11:50:08.668895: Marginal costs baseline metric (no standing charge): 303.9903
2026-08-18 11:50:08.912128: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:50:09.019807: Rate array import [{'start': 710, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 710, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:50:09.020533: - Your estimated bill for today is £1.81 and tomorrow is £1.94
2026-08-18 11:50:09.020583: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:50:09.020606: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 11:50:09.020625: - For the next 48 hours there will be no solar generation.
2026-08-18 11:50:09.020643: - You will run out of battery in 11 hours.
2026-08-18 11:50:09.020669: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:50:09.020687: 
2026-08-18 11:50:09.075370: Plan calculation took 6.32 seconds
2026-08-18 11:50:09.075777: Inverter 0: Type SK Sunsynk
2026-08-18 11:50:09.075841: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:50:09.076078: Reserve min: 7%, battery_min: 7%
2026-08-18 11:50:09.076164: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:50:09.076530: Inverter 0 SoC: 8.86kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 489W, current battery voltage 51.2V, grid power -55W, load power 545W, PV Power 0W
2026-08-18 11:50:09.076782: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:50:09.076886: Inverter 0 scheduled charge enable is False
2026-08-18 11:50:09.076916: Inverter 0 charge windows currently []
2026-08-18 11:50:09.076947: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:50:09.077061: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:50:09.077121: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:50:09.077159: Inverter 0 scheduled discharge enable is False
2026-08-18 11:50:09.077286: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:50:09.077323: Inverter 0 discharge windows currently []
2026-08-18 11:50:09.077345: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:50:09.077374: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:50:09.077414: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:50:09.135383: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 11:50:09.135620: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:50:09.135754: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:50:09.136069: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:50:09.136191: No export window planned
2026-08-18 11:50:09.136367: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:50:09.136422: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:50:09.136667: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:50:09.136931: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:50:09.137019: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:50:09.137117: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:50:09.137258: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137490: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.137957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.138014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:50:09.138074: Inverter 0 count register writes 0
2026-08-18 11:50:09.163341: Total inverter register writes now 867
2026-08-18 11:50:09.194169: Info: Completed run status Demand
2026-08-18 11:50:09.200503: Info: record_status Demand
2026-08-18 11:50:09.207330: Saved current settings to /config/predbat_config.json
2026-08-18 11:50:09.207680: Compare, best tariff: current metric 129.87p
2026-08-18 11:50:49.327879: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:50:49.328136: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:50:49.328181: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:50:49.328314: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:50:49.328352: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:50:49.328373: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:50:49.328395: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:52:49.561324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:52:49.561549: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:52:49.561583: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:52:49.561708: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:52:49.561765: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:52:49.561788: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:52:49.561807: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:55:00.810606: --------------- PredBat - update at 2026-08-18 11:55:00+01:00 with clock skew 0 minutes, minutes now 715
2026-08-18 11:55:00.811313: Saved current settings to /config/predbat_config.json
2026-08-18 11:55:00.811426: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 11:55:00.811502: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 11:55:00.811596: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 11:55:00.829925: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 11:55:00.830041: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 11:55:00.830198: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 11:55:00.830675: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 11:55:00.830805: Predbat mode is set to Control charge & discharge
2026-08-18 11:55:01.010413: Found 21602 load_today datapoints going back 28 days
2026-08-18 11:55:01.010549: Using load_power data to fill gaps in load_today data
2026-08-18 11:55:01.810842: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 11:55:01.811020: Zero load period starting at 2026-08-17T10:54:00+0100 (1501 minutes) for 189 minutes with base value 207.5
2026-08-18 11:55:01.812185: Processing 721 30-minute periods for power integration
2026-08-18 11:55:01.993198: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 11:55:01.993318: Car charging hold False, threshold 6.0kWh
2026-08-18 11:55:01.993359: Current data so far today: load 7.5kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 11:55:02.009572: Car 0 using Octopus Intelligent is unplugged
2026-08-18 11:55:02.009686: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 11:55:02.010443: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 11:55:02.010517: Standing charge is set to 46.63p
2026-08-18 11:55:02.100075: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:55:02.100308: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:55:02.100489: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 11:55:02.101561: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 11:55:02.101748: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 11:55:02.107835: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 11:55:02.108235: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 11:55:02.152340: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 11:55:02.152450: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 11:55:02.153766: High export rate found rates in range 99p to -99p
2026-08-18 11:55:02.182707: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 11:55:02.182810: Car 0 on Octopus Intelligent, no active plan
2026-08-18 11:55:02.193501: Battery level now 8.86kWh, -1hr ago 9.6kWh, at midnight 6.84kWh, battery value change in the last hour -5.06p, change today 13.91p, rate_forward 6.87p
2026-08-18 11:55:02.193870: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.68p, import 0.68p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 11:55:02.246941: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 11:55:02.247063: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 11:55:02.334150: Using weighted-bucket historical load forecast over 14 days
2026-08-18 11:55:02.369113: Today's load divergence 100.05%, in-day adjustment 96.34%, damping 0.95x, yesterday 92.68% today 100.05% blend 50.35%
2026-08-18 11:55:02.369206: Today's predicted so far 7.43kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 7.43kWh forecast extra.
2026-08-18 11:55:02.369237: Today's actual load so far 7.44kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 11:55:02.401835: Inverter 0: Type SK Sunsynk
2026-08-18 11:55:02.401920: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 11:55:02.402172: Reserve min: 7%, battery_min: 7%
2026-08-18 11:55:02.402266: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 11:55:02.402562: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 487W, current battery voltage 51.2V, grid power -56W, load power 543W, PV Power 0W
2026-08-18 11:55:02.402760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:55:02.402869: Inverter 0 scheduled charge enable is False
2026-08-18 11:55:02.402917: Inverter 0 charge windows currently []
2026-08-18 11:55:02.402951: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 11:55:02.403111: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:55:02.403171: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:55:02.403224: Inverter 0 scheduled discharge enable is False
2026-08-18 11:55:02.403394: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:55:02.403436: Inverter 0 discharge windows currently []
2026-08-18 11:55:02.403459: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:55:02.403484: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:55:02.403524: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:55:02.467026: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 11:55:02.467127: Plan was last updated on 2026-08-18 11:50:00+01:00 and is now 5.0 minutes old
2026-08-18 11:55:02.467328: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 11:55:02.467368: Best export window [  ]
2026-08-18 11:55:02.468403: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 11:55:02.471817: Load divergence over 8.0 hours mean 422.0W, min 324.0W, max 601.2W, std dev 64.15W, divergence 7.6%
2026-08-18 11:55:02.497022: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 11:55:02.497129: LoadML is_calculating False
2026-08-18 11:55:02.497190: Creating pool of 12 processes to match your CPU count
2026-08-18 11:55:02.611319: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.15p, metric_keep 129.49kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.7kWh, PV 0.0kWh
2026-08-18 11:55:02.733770: Battery has 11.0 hours left - now at 8.8kWh
2026-08-18 11:55:02.780313: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 672.38p, metric_keep 131.7kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.85kWh, PV 0.0kWh
2026-08-18 11:55:02.856101: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 382.09p, metric_keep 10.42kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.85kWh, PV 0.0kWh
2026-08-18 11:55:02.923813: predict best end_record 08-19 23:35:00, final soc 1.7kWh, metric 355.22p, metric_keep 5.19kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 31.7kWh, PV 0.0kWh
2026-08-18 11:55:02.923889: Saving plan best values to HA entities
2026-08-18 11:55:03.073049: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 11:55:03.078027: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 11:55:03.083046: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.94kWh, house 0.57kWh, export 0.0kWh, metric 355.22p, metric10 382.09p
2026-08-18 11:55:03.154891: Marginal costs baseline metric (no standing charge): 308.5891
2026-08-18 11:55:03.391677: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 11:55:03.452775: Rate array import [{'start': 715, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 715, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 11:55:03.453415: - Your estimated bill for today is £1.81 and tomorrow is £1.94
2026-08-18 11:55:03.453455: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 11:55:03.453474: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 11:55:03.453488: - For the next 48 hours there will be no solar generation.
2026-08-18 11:55:03.453502: - You will run out of battery in 11 hours.
2026-08-18 11:55:03.453534: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 11:55:03.453563: 
2026-08-18 11:55:03.506570: Plan calculation took 1.04 seconds
2026-08-18 11:55:03.510010: No high rate period found
2026-08-18 11:55:03.556809: Import threshold used for optimisation was 8.0p
2026-08-18 11:55:03.603945: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 11:55:03.608889: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 11:55:03.608991: Inverter 0 disabled charge window while waiting for schedule (now 08-18 11:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 11:55:03.609111: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:55:03.609355: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:55:03.609452: No export window planned
2026-08-18 11:55:03.609606: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 11:55:03.609642: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 11:55:03.609799: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 11:55:03.609980: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 11:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 11:55:03.610039: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 11:55:03.610103: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 11:55:03.610217: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610260: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610285: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610400: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 11:55:03.610903: Inverter 0 count register writes 0
2026-08-18 11:55:03.625265: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 11:55:03.629684: Total inverter register writes now 867
2026-08-18 11:55:03.661781: Info: Completed run status Demand
2026-08-18 11:55:03.667429: Info: record_status Demand
2026-08-18 11:55:03.673890: Saved current settings to /config/predbat_config.json
2026-08-18 11:55:03.674149: Compare, best tariff: current metric 129.87p
2026-08-18 11:55:33.772592: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:55:33.772842: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:55:33.772892: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:55:33.773034: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:55:33.773076: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:55:33.773098: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:55:33.773120: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:56:14.460207: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 11:56:14.629888: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 11:57:34.000813: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:57:34.001033: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:57:34.001065: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:57:34.001212: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:57:34.001250: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:57:34.001272: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:57:34.001290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 11:59:34.211709: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 11:59:34.212028: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 11:59:34.212081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 11:59:34.212268: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 11:59:34.212312: Note: Inverter does not support discharge freeze - disabled
2026-08-18 11:59:34.212336: Note: Inverter does not support charge freeze - disabled
2026-08-18 11:59:34.212377: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:00:00.351263: --------------- PredBat - update at 2026-08-18 12:00:00+01:00 with clock skew 0 minutes, minutes now 720
2026-08-18 12:00:00.352193: Saved current settings to /config/predbat_config.json
2026-08-18 12:00:00.352336: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 12:00:00.352412: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:00:00.352520: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:00:00.369519: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:00:00.369641: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:00:00.369798: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:00:00.370271: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:00:00.370388: Predbat mode is set to Control charge & discharge
2026-08-18 12:00:00.555038: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:00:00.555210: Using load_power data to fill gaps in load_today data
2026-08-18 12:00:01.478949: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:00:01.479145: Zero load period starting at 2026-08-17T10:54:00+0100 (1506 minutes) for 189 minutes with base value 207.4833
2026-08-18 12:00:01.480442: Processing 721 30-minute periods for power integration
2026-08-18 12:00:01.680168: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:00:01.680303: Car charging hold False, threshold 6.0kWh
2026-08-18 12:00:01.680371: Current data so far today: load 7.45kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:00:01.697270: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:00:01.697393: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:00:01.698435: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:00:01.698558: Standing charge is set to 46.63p
2026-08-18 12:00:01.813829: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:00:01.814140: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:00:01.814403: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:00:01.815615: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:00:01.815757: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:00:01.821846: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:00:01.822365: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:00:01.884502: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:00:01.884618: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:00:01.885944: High export rate found rates in range 99p to -99p
2026-08-18 12:00:01.916100: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:00:01.916244: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:00:01.929123: Battery level now 8.8kWh, -1hr ago 9.56kWh, at midnight 6.84kWh, battery value change in the last hour -5.22p, change today 13.47p, rate_forward 6.87p
2026-08-18 12:00:01.929577: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 0.51p, import 0.51p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:00:01.996782: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:00:01.996921: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:00:02.096148: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:00:02.122933: Today's load divergence 99.02%, in-day adjustment 95.87%, damping 0.95x, yesterday 92.68% today 99.06% blend 50.0%
2026-08-18 12:00:02.123013: Today's predicted so far 7.59kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 7.59kWh forecast extra.
2026-08-18 12:00:02.123040: Today's actual load so far 7.43kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 12:00:02.158121: Inverter 0: Type SK Sunsynk
2026-08-18 12:00:02.158209: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:00:02.158384: Reserve min: 7%, battery_min: 7%
2026-08-18 12:00:02.158465: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:00:02.158871: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 540W, current battery voltage 51.2V, grid power -51W, load power 583W, PV Power 0W
2026-08-18 12:00:02.159022: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:00:02.159134: Inverter 0 scheduled charge enable is False
2026-08-18 12:00:02.159171: Inverter 0 charge windows currently []
2026-08-18 12:00:02.159194: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:00:02.159290: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:00:02.159320: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:00:02.159360: Inverter 0 scheduled discharge enable is False
2026-08-18 12:00:02.159522: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:00:02.159574: Inverter 0 discharge windows currently []
2026-08-18 12:00:02.159608: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:00:02.159643: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:00:02.159658: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:00:02.225113: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:00:02.225205: Plan was last updated on 2026-08-18 11:50:00+01:00 and is now 10.0 minutes old
2026-08-18 12:00:02.225462: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:00:02.225525: Best export window [  ]
2026-08-18 12:00:02.226395: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:00:02.229756: Load divergence over 8.0 hours mean 420.48W, min 335.4W, max 633.6W, std dev 58.46W, divergence 6.95%
2026-08-18 12:00:02.255260: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:00:02.255399: LoadML is_calculating False
2026-08-18 12:00:02.255480: Creating pool of 12 processes to match your CPU count
2026-08-18 12:00:02.371587: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.38p, metric_keep 128.88kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.6kWh, PV 0.0kWh
2026-08-18 12:00:02.504646: Battery has 11.08 hours left - now at 8.8kWh
2026-08-18 12:00:02.555583: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 668.36p, metric_keep 131.02kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.75kWh, PV 0.0kWh
2026-08-18 12:00:02.643033: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 380.92p, metric_keep 9.58kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.75kWh, PV 0.0kWh
2026-08-18 12:00:02.732528: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 355.11p, metric_keep 4.43kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.6kWh, PV 0.0kWh
2026-08-18 12:00:02.732615: Saving plan best values to HA entities
2026-08-18 12:00:02.919568: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 12:00:02.924960: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:00:02.930758: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.45kWh, house 0.45kWh, export 0.0kWh, metric 355.11p, metric10 380.92p
2026-08-18 12:00:03.015812: Marginal costs baseline metric (no standing charge): 308.4743
2026-08-18 12:00:03.262807: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:00:03.341360: Rate array import [{'start': 720, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 720, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:00:03.342112: - Your estimated bill for today is £1.77 and tomorrow is £1.94
2026-08-18 12:00:03.342163: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:00:03.342187: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 12:00:03.342206: - For the next 48 hours there will be no solar generation.
2026-08-18 12:00:03.342224: - You will run out of battery in 11 hours.
2026-08-18 12:00:03.342243: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:00:03.342284: 
2026-08-18 12:00:03.413863: Plan calculation took 1.19 seconds
2026-08-18 12:00:03.417695: No high rate period found
2026-08-18 12:00:03.483838: Import threshold used for optimisation was 8.0p
2026-08-18 12:00:03.545255: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:00:03.551399: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 12:00:03.551575: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:00:03.551705: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:00:03.552063: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:00:03.552193: No export window planned
2026-08-18 12:00:03.552358: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:00:03.552403: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:00:03.552638: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:00:03.552886: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:00:03.552971: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:00:03.553064: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:00:03.553191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553249: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:03.553879: Inverter 0 count register writes 0
2026-08-18 12:00:03.574289: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 12:00:03.574518: Recompute is saving previous plan...
2026-08-18 12:00:03.576062: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 12:00:03.576133: Best export window [  ]
2026-08-18 12:00:03.577303: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:00:03.582806: Load divergence over 8.0 hours mean 420.48W, min 335.4W, max 633.6W, std dev 58.46W, divergence 6.95%
2026-08-18 12:00:03.600369: Calculating data from yesterday for savings calculation
2026-08-18 12:00:03.614122: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 12:00:03.654690: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 12:00:03.668640: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 12:00:03.689677: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 12:00:03.726598: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 12:00:03.824896: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 12:00:03.825060: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 12:00:03.838018: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:00:03.838144: LoadML is_calculating False
2026-08-18 12:00:03.838241: Creating pool of 12 processes to match your CPU count
2026-08-18 12:00:03.936086: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:00:03.937150: Optimise levels pass started at 2026-08-18 12:00:03
2026-08-18 12:00:03.937233: Optimise all windows, total charge 24 export 1
2026-08-18 12:00:04.721089: >> Region optimisation pass width 960 gives best_metric 380.42p, best_cost 373.6p, best_cycle 42.76kWh, best_import 28.04kWh
2026-08-18 12:00:05.142530: >> Region optimisation pass width 480 gives best_metric 376.94p, best_cost 374.01p, best_cycle 43.42kWh, best_import 28.09kWh
2026-08-18 12:00:05.479167: >> Region optimisation pass width 240 gives best_metric 376.94p, best_cost 374.01p, best_cycle 43.42kWh, best_import 28.09kWh
2026-08-18 12:00:06.778301: >> Region optimisation pass width 120 gives best_metric 373.17p, best_cost 374.76p, best_cycle 44.74kWh, best_import 28.18kWh
2026-08-18 12:00:06.778521: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 12:00:06.778584: Optimise levels pass ended at 2026-08-18 12:00:06, duration 2.8 seconds tried 80 combinations
2026-08-18 12:00:06.778643: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 373.17p, best_keep 4.36kWh, best_cycle 44.74kWh, best_carbon 0kg, best_import 28.18kWh
2026-08-18 12:00:06.799764: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:00:10.230690: Tweak plan optimisation started metric 298.64p, cost 304.53p
2026-08-18 12:00:10.630574: Tweak optimisation finished metric 298.64p, cost 304.53p, metric_keep 4.08kWh, cycle 33.52kWh, carbon 0kg, import 19.4kWh, changed 8 window(s)
2026-08-18 12:00:10.653210: Swap charge optimisation started metric 298.64p, cost 304.53p, min_improvement_swap 0.1p
2026-08-18 12:00:11.337363: Swap charge optimisation finished metric 298.64p, cost 304.53p
2026-08-18 12:00:11.483268: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 295.92p -> 295.77p, plan now metric 299.08p, cost 302.5p, cycle 33.78kWh, import 19.15kWh
2026-08-18 12:00:11.493352: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:00:11.493709: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:00:11.493927: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:00:11.494096: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:00:11.532246: Previous plan best metric is 298.64 (cost 304.53) and new plan best metric is 298.64 (cost 304.53)
2026-08-18 12:00:11.532427: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:00:11.532584: Plan valid is now true after recompute was False
2026-08-18 12:00:11.562280: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.92p, metric_keep 128.63kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.42kWh, PV 0.0kWh
2026-08-18 12:00:11.695700: Battery has 11.08 hours left - now at 8.8kWh
2026-08-18 12:00:11.748094: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 666.84p, metric_keep 130.76kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.56kWh, PV 0.0kWh
2026-08-18 12:00:11.862324: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 373.84p, metric_keep 9.56kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.56kWh, PV 0.0kWh
2026-08-18 12:00:11.977179: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 346.98p, metric_keep 4.43kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.42kWh, PV 0.0kWh
2026-08-18 12:00:11.977447: Saving plan best values to HA entities
2026-08-18 12:00:12.144744: Info: HAHistory: Pruning history data started.
2026-08-18 12:00:12.149490: Info: HAHistory: Pruning history data completed.
2026-08-18 12:00:12.209232: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 12:00:12.214348: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:00:12.219649: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.45kWh, export 0.0kWh, metric 346.98p, metric10 373.84p
2026-08-18 12:00:12.293469: Marginal costs baseline metric (no standing charge): 300.35
2026-08-18 12:00:12.569744: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:00:12.659734: Rate array import [{'start': 720, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 720, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:00:12.660598: - Your estimated bill for today is £1.77 and tomorrow is £1.94
2026-08-18 12:00:12.660663: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:00:12.660690: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 12:00:12.660709: - For the next 48 hours there will be no solar generation.
2026-08-18 12:00:12.660727: - You will run out of battery in 11 hours.
2026-08-18 12:00:12.660744: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:00:12.660776: 
2026-08-18 12:00:12.721015: Plan calculation took 9.15 seconds
2026-08-18 12:00:12.721318: Inverter 0: Type SK Sunsynk
2026-08-18 12:00:12.721363: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:00:12.721585: Reserve min: 7%, battery_min: 7%
2026-08-18 12:00:12.721663: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:00:12.722006: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 540W, current battery voltage 51.2V, grid power -51W, load power 583W, PV Power 0W
2026-08-18 12:00:12.722267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:00:12.722399: Inverter 0 scheduled charge enable is False
2026-08-18 12:00:12.722441: Inverter 0 charge windows currently []
2026-08-18 12:00:12.722473: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:00:12.722608: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:00:12.722648: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:00:12.722685: Inverter 0 scheduled discharge enable is False
2026-08-18 12:00:12.722863: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:00:12.722914: Inverter 0 discharge windows currently []
2026-08-18 12:00:12.722938: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:00:12.722958: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:00:12.722975: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:00:12.775753: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 12:00:12.775963: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:00:12.776070: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:00:12.776305: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:00:12.776445: No export window planned
2026-08-18 12:00:12.776638: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:00:12.776690: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:00:12.776880: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:00:12.777093: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:00:12.777155: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:00:12.777258: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:00:12.777396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777646: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777765: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.777976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.778034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.778087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.778141: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.778202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:00:12.778246: Inverter 0 count register writes 0
2026-08-18 12:00:12.799978: Total inverter register writes now 867
2026-08-18 12:00:12.831461: Info: Completed run status Demand
2026-08-18 12:00:12.839208: Info: record_status Demand
2026-08-18 12:00:12.847195: Saved current settings to /config/predbat_config.json
2026-08-18 12:00:12.847495: Compare, best tariff: current metric 129.87p
2026-08-18 12:00:48.955332: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:00:48.955579: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:00:48.955622: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:00:48.955781: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:00:48.955829: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:00:48.955865: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:00:48.955883: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:02:49.161190: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:02:49.161654: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:02:49.161726: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:02:49.161896: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:02:49.161938: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:02:49.161960: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:02:49.161978: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:04:49.392806: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:04:49.393037: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:04:49.393078: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:04:49.393213: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:04:49.393250: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:04:49.393272: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:04:49.393290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:05:00.478774: --------------- PredBat - update at 2026-08-18 12:05:00+01:00 with clock skew 0 minutes, minutes now 725
2026-08-18 12:05:00.479621: Saved current settings to /config/predbat_config.json
2026-08-18 12:05:00.479753: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 12:05:00.479830: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:05:00.480005: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:05:00.501240: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:05:00.501407: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:05:00.501638: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:05:00.502202: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:05:00.502386: Predbat mode is set to Control charge & discharge
2026-08-18 12:05:00.707624: Found 21602 load_today datapoints going back 27 days
2026-08-18 12:05:00.707752: Using load_power data to fill gaps in load_today data
2026-08-18 12:05:01.607196: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:05:01.607379: Zero load period starting at 2026-08-17T10:54:00+0100 (1511 minutes) for 189 minutes with base value 207.4667
2026-08-18 12:05:01.608557: Processing 721 30-minute periods for power integration
2026-08-18 12:05:01.820517: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:05:01.821035: Car charging hold False, threshold 6.0kWh
2026-08-18 12:05:01.821275: Current data so far today: load 7.5kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:05:01.840614: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:05:01.840766: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:05:01.841661: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:05:01.841769: Standing charge is set to 46.63p
2026-08-18 12:05:01.953745: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:05:01.954109: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:05:01.954378: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:05:01.955605: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:05:01.955821: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:05:01.962749: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:05:01.964684: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:05:02.014396: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:05:02.014568: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:05:02.015871: High export rate found rates in range 99p to -99p
2026-08-18 12:05:02.047949: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:05:02.049036: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:05:02.076633: Battery level now 8.8kWh, -1hr ago 9.44kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 13.47p, rate_forward 6.87p
2026-08-18 12:05:02.078595: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.34p, import 0.34p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:05:02.136671: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:05:02.136826: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:05:02.228215: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:05:02.262003: Today's load divergence 98.57%, in-day adjustment 95.68%, damping 0.95x, yesterday 92.68% today 98.64% blend 49.65%
2026-08-18 12:05:02.262095: Today's predicted so far 7.72kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 7.72kWh forecast extra.
2026-08-18 12:05:02.262127: Today's actual load so far 7.49kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 12:05:02.301745: Inverter 0: Type SK Sunsynk
2026-08-18 12:05:02.301826: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:05:02.301995: Reserve min: 7%, battery_min: 7%
2026-08-18 12:05:02.302063: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:05:02.302391: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 489W, current battery voltage 51.2V, grid power -52W, load power 542W, PV Power 0W
2026-08-18 12:05:02.302622: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:05:02.302753: Inverter 0 scheduled charge enable is False
2026-08-18 12:05:02.302796: Inverter 0 charge windows currently []
2026-08-18 12:05:02.302824: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:05:02.302948: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:05:02.302985: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:05:02.303020: Inverter 0 scheduled discharge enable is False
2026-08-18 12:05:02.303146: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:05:02.303190: Inverter 0 discharge windows currently []
2026-08-18 12:05:02.303242: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:05:02.303294: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:05:02.303352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:05:02.365149: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:05:02.365262: Plan was last updated on 2026-08-18 12:00:00+01:00 and is now 5.0 minutes old
2026-08-18 12:05:02.365551: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:05:02.365607: Best export window [  ]
2026-08-18 12:05:02.366706: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:05:02.369899: Load divergence over 8.0 hours mean 418.94W, min 330.0W, max 675.0W, std dev 67.41W, divergence 8.04%
2026-08-18 12:05:02.389655: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:05:02.389779: LoadML is_calculating False
2026-08-18 12:05:02.389864: Creating pool of 12 processes to match your CPU count
2026-08-18 12:05:02.530778: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 631.03p, metric_keep 128.06kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.47kWh, PV 0.0kWh
2026-08-18 12:05:02.694142: Battery has 11.08 hours left - now at 8.8kWh
2026-08-18 12:05:02.745696: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 663.86p, metric_keep 130.13kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.61kWh, PV 0.0kWh
2026-08-18 12:05:02.824157: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 373.65p, metric_keep 8.86kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.61kWh, PV 0.0kWh
2026-08-18 12:05:02.910254: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 347.47p, metric_keep 3.73kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.47kWh, PV 0.0kWh
2026-08-18 12:05:02.910351: Saving plan best values to HA entities
2026-08-18 12:05:03.082261: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 12:05:03.088067: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:05:03.094115: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.34kWh, export 0.0kWh, metric 347.47p, metric10 373.65p
2026-08-18 12:05:03.168968: Marginal costs baseline metric (no standing charge): 300.8319
2026-08-18 12:05:03.456016: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:05:03.527276: Rate array import [{'start': 725, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 725, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:05:03.528069: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 12:05:03.528118: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:05:03.528141: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 12:05:03.528161: - For the next 48 hours there will be no solar generation.
2026-08-18 12:05:03.528179: - You will run out of battery in 11 hours.
2026-08-18 12:05:03.528205: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:05:03.528222: 
2026-08-18 12:05:03.590995: Plan calculation took 1.23 seconds
2026-08-18 12:05:03.594575: No high rate period found
2026-08-18 12:05:03.656917: Import threshold used for optimisation was 8.0p
2026-08-18 12:05:03.738143: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:05:03.751299: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 12:05:03.751511: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:05:03.751657: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:05:03.752086: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:05:03.752234: No export window planned
2026-08-18 12:05:03.752472: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:05:03.752534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:05:03.752751: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:05:03.753046: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:05:03.753158: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:05:03.753258: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:05:03.753386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753618: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.753975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.754045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.754102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.754200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.754257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:05:03.754311: Inverter 0 count register writes 0
2026-08-18 12:05:03.771736: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 12:05:03.778810: Total inverter register writes now 867
2026-08-18 12:05:03.813734: Info: Completed run status Demand
2026-08-18 12:05:03.822060: Info: record_status Demand
2026-08-18 12:05:03.830596: Saved current settings to /config/predbat_config.json
2026-08-18 12:05:03.830970: Compare, best tariff: current metric 129.87p
2026-08-18 12:05:33.940179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:05:33.940482: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:05:33.940538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:05:33.940722: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:05:33.940772: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:05:33.940803: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:05:33.940843: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:05:39.151062: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 12:05:40.160397: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:05:40.160582: Zero load period starting at 2026-08-17T10:54:00+0100 (1511 minutes) for 189 minutes with base value 385.4
2026-08-18 12:05:40.161748: Processing 1297 30-minute periods for power integration
2026-08-18 12:05:40.263753: ML Component: Car charging hold False, car energy reported load False
2026-08-18 12:05:40.360105: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:05:40.455392: ML Temperature data points: 48236
2026-08-18 12:05:40.714155: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-18 12:05:40.752195: ML Component: Data fetch completed, load data age 59.0 days, 17256 data points
2026-08-18 12:05:40.752308: ML Component: No training needed, model age is 1.94 hours
2026-08-18 12:05:40.752386: ML Component: Generating predictions load data age 59.0 days, 17256 data points
2026-08-18 12:05:40.888275: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.05 max_dow {0: 0.08250277803424333, 1: 0.0922861109920674, 2: 0.10978749959506096, 3: 0.10331875034738332, 4: 0.1381031253574416, 5: 0.10191944486482275, 6: 0.10384444441977475}
2026-08-18 12:05:41.394914: ML Component: Generated 576 predictions (total 26.21 kWh over 48h)
2026-08-18 12:05:41.436288: ML Component: Prediction cycle completed
2026-08-18 12:05:41.543849: ML Component: Saved 17256 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 12:07:34.172054: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:07:34.172300: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:07:34.172344: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:07:34.172478: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:07:34.172516: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:07:34.172538: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:07:34.172556: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:09:34.424387: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:09:34.424666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:09:34.424732: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:09:34.424898: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:09:34.424943: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:09:34.424976: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:09:34.425008: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:10:00.524785: --------------- PredBat - update at 2026-08-18 12:10:00+01:00 with clock skew 0 minutes, minutes now 730
2026-08-18 12:10:00.525598: Saved current settings to /config/predbat_config.json
2026-08-18 12:10:00.525762: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 12:10:00.525897: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:10:00.526037: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:10:00.544483: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:10:00.544596: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:10:00.544751: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:10:00.545330: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:10:00.545452: Predbat mode is set to Control charge & discharge
2026-08-18 12:10:00.737775: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:10:00.737909: Using load_power data to fill gaps in load_today data
2026-08-18 12:10:01.507022: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:10:01.507202: Zero load period starting at 2026-08-17T10:54:00+0100 (1516 minutes) for 189 minutes with base value 207.45
2026-08-18 12:10:01.508403: Processing 721 30-minute periods for power integration
2026-08-18 12:10:01.696495: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:10:01.696632: Car charging hold False, threshold 6.0kWh
2026-08-18 12:10:01.696679: Current data so far today: load 7.55kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:10:01.715248: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:10:01.715347: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:10:01.716305: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:10:01.716389: Standing charge is set to 46.63p
2026-08-18 12:10:01.809301: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:10:01.809540: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:10:01.809717: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:10:01.810776: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:10:01.810881: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:10:01.816389: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:10:01.816785: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:10:01.860795: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:10:01.860938: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:10:01.863320: High export rate found rates in range 99p to -99p
2026-08-18 12:10:01.893604: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:10:01.893722: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:10:01.905865: Battery level now 8.8kWh, -1hr ago 9.44kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 13.47p, rate_forward 6.87p
2026-08-18 12:10:01.906302: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.17p, import 0.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:10:01.981899: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:10:01.982843: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:10:02.074736: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:10:02.102610: Today's load divergence 98.55%, in-day adjustment 95.69%, damping 0.95x, yesterday 92.68% today 98.63% blend 49.31%
2026-08-18 12:10:02.102740: Today's predicted so far 7.74kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 7.74kWh forecast extra.
2026-08-18 12:10:02.102790: Today's actual load so far 7.51kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 12:10:02.145064: Inverter 0: Type SK Sunsynk
2026-08-18 12:10:02.145152: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:10:02.145340: Reserve min: 7%, battery_min: 7%
2026-08-18 12:10:02.145414: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:10:02.145663: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 513W, current battery voltage 51.2V, grid power -55W, load power 563W, PV Power 0W
2026-08-18 12:10:02.145808: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:10:02.145890: Inverter 0 scheduled charge enable is False
2026-08-18 12:10:02.145919: Inverter 0 charge windows currently []
2026-08-18 12:10:02.145945: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:10:02.146045: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:10:02.146080: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:10:02.146114: Inverter 0 scheduled discharge enable is False
2026-08-18 12:10:02.146252: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:10:02.146292: Inverter 0 discharge windows currently []
2026-08-18 12:10:02.146315: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:10:02.146337: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:10:02.146355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:10:02.199764: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:10:02.199857: Plan was last updated on 2026-08-18 12:00:00+01:00 and is now 10.0 minutes old
2026-08-18 12:10:02.200181: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:10:02.200249: Best export window [  ]
2026-08-18 12:10:02.201080: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:10:02.204455: Load divergence over 8.0 hours mean 420.41W, min 345.0W, max 712.8W, std dev 65.38W, divergence 7.78%
2026-08-18 12:10:02.223890: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:10:02.224001: LoadML is_calculating False
2026-08-18 12:10:02.224058: Creating pool of 12 processes to match your CPU count
2026-08-18 12:10:02.347073: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 629.63p, metric_keep 127.84kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.54kWh, PV 0.0kWh
2026-08-18 12:10:02.463270: Battery has 11.0 hours left - now at 8.8kWh
2026-08-18 12:10:02.507171: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 662.34p, metric_keep 129.88kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.69kWh, PV 0.0kWh
2026-08-18 12:10:02.581313: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 374.82p, metric_keep 8.46kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.69kWh, PV 0.0kWh
2026-08-18 12:10:02.653744: predict best end_record 08-19 23:40:00, final soc 2.11kWh, metric 349.5p, metric_keep 3.37kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.54kWh, PV 0.0kWh
2026-08-18 12:10:02.653822: Saving plan best values to HA entities
2026-08-18 12:10:02.809213: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:10:02.814439: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:10:02.819556: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.28kWh, export 0.0kWh, metric 349.5p, metric10 374.82p
2026-08-18 12:10:02.889985: Marginal costs baseline metric (no standing charge): 302.8697
2026-08-18 12:10:03.111441: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:10:03.168162: Rate array import [{'start': 730, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 730, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:10:03.168797: - Your estimated bill for today is £1.71 and tomorrow is £1.94
2026-08-18 12:10:03.168851: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:10:03.168884: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 12:10:03.168912: - For the next 48 hours there will be no solar generation.
2026-08-18 12:10:03.168945: - You will run out of battery in 11 hours.
2026-08-18 12:10:03.168975: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:10:03.169007: 
2026-08-18 12:10:03.218573: Plan calculation took 1.02 seconds
2026-08-18 12:10:03.222465: No high rate period found
2026-08-18 12:10:03.273950: Import threshold used for optimisation was 8.0p
2026-08-18 12:10:03.325430: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:10:03.330623: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 12:10:03.330748: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:10:03.330841: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:10:03.331078: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:10:03.331169: No export window planned
2026-08-18 12:10:03.331306: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:10:03.331344: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:10:03.331475: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:10:03.331646: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:10:03.331706: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:10:03.331774: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:10:03.331871: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.331955: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332000: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:03.332535: Inverter 0 count register writes 0
2026-08-18 12:10:03.347894: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 12:10:03.348172: Recompute is saving previous plan...
2026-08-18 12:10:03.349089: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 12:10:03.349157: Best export window [  ]
2026-08-18 12:10:03.349984: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:10:03.353156: Load divergence over 8.0 hours mean 420.41W, min 345.0W, max 712.8W, std dev 65.38W, divergence 7.78%
2026-08-18 12:10:03.370756: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:10:03.370855: LoadML is_calculating False
2026-08-18 12:10:03.370934: Creating pool of 12 processes to match your CPU count
2026-08-18 12:10:03.456690: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:10:03.457684: Optimise levels pass started at 2026-08-18 12:10:03
2026-08-18 12:10:03.457754: Optimise all windows, total charge 24 export 1
2026-08-18 12:10:03.794516: >> Region optimisation pass width 960 gives best_metric 380.66p, best_cost 442.2p, best_cycle 50.48kWh, best_import 37.16kWh
2026-08-18 12:10:03.954204: >> Region optimisation pass width 480 gives best_metric 380.66p, best_cost 442.2p, best_cycle 50.48kWh, best_import 37.16kWh
2026-08-18 12:10:04.202037: >> Region optimisation pass width 240 gives best_metric 380.66p, best_cost 442.2p, best_cycle 50.48kWh, best_import 37.16kWh
2026-08-18 12:10:04.738040: >> Region optimisation pass width 120 gives best_metric 380.66p, best_cost 442.2p, best_cycle 50.48kWh, best_import 37.16kWh
2026-08-18 12:10:04.738253: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 12:10:04.738360: Optimise levels pass ended at 2026-08-18 12:10:04, duration 1.3 seconds tried 72 combinations
2026-08-18 12:10:04.738446: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 380.66p, best_keep 3.04kWh, best_cycle 50.48kWh, best_carbon 0kg, best_import 37.16kWh
2026-08-18 12:10:04.753834: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:10:07.449809: Tweak plan optimisation started metric 291.77p, cost 298.77p
2026-08-18 12:10:07.785202: Tweak optimisation finished metric 291.77p, cost 298.77p, metric_keep 3.04kWh, cycle 33.51kWh, carbon 0kg, import 19.23kWh, changed 8 window(s)
2026-08-18 12:10:07.805807: Swap charge optimisation started metric 291.77p, cost 298.77p, min_improvement_swap 0.1p
2026-08-18 12:10:08.535463: Swap charge optimisation finished metric 291.77p, cost 298.77p
2026-08-18 12:10:08.675703: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 289.1p -> 288.85p, plan now metric 293.01p, cost 294.62p, cycle 33.52kWh, import 18.71kWh
2026-08-18 12:10:08.685833: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:10:08.686313: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:10:08.686601: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:10:08.686902: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:10:08.723808: Previous plan best metric is 291.77 (cost 298.77) and new plan best metric is 291.77 (cost 298.77)
2026-08-18 12:10:08.724017: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:10:08.724157: Plan valid is now true after recompute was False
2026-08-18 12:10:08.753209: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 628.04p, metric_keep 127.59kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.35kWh, PV 0.0kWh
2026-08-18 12:10:08.854971: Battery has 11.0 hours left - now at 8.8kWh
2026-08-18 12:10:08.903430: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 660.68p, metric_keep 129.63kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.48kWh, PV 0.0kWh
2026-08-18 12:10:08.982820: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 367.6p, metric_keep 8.44kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.48kWh, PV 0.0kWh
2026-08-18 12:10:09.053454: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 341.25p, metric_keep 3.37kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.35kWh, PV 0.0kWh
2026-08-18 12:10:09.053537: Saving plan best values to HA entities
2026-08-18 12:10:09.218946: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:10:09.224765: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:10:09.231329: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.28kWh, export 0.0kWh, metric 341.25p, metric10 367.6p
2026-08-18 12:10:09.321533: Marginal costs baseline metric (no standing charge): 294.6158
2026-08-18 12:10:09.621836: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:10:09.710201: Rate array import [{'start': 730, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 730, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:10:09.711495: - Your estimated bill for today is £1.71 and tomorrow is £1.94
2026-08-18 12:10:09.711578: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:10:09.711618: - The battery is currently at 55% and is in eco mode for the next 11 hours.
2026-08-18 12:10:09.711658: - For the next 48 hours there will be no solar generation.
2026-08-18 12:10:09.711691: - You will run out of battery in 11 hours.
2026-08-18 12:10:09.711731: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:10:09.711763: 
2026-08-18 12:10:09.773401: Plan calculation took 6.43 seconds
2026-08-18 12:10:09.773699: Inverter 0: Type SK Sunsynk
2026-08-18 12:10:09.773767: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:10:09.773982: Reserve min: 7%, battery_min: 7%
2026-08-18 12:10:09.774058: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:10:09.774402: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 513W, current battery voltage 51.2V, grid power -55W, load power 563W, PV Power 0W
2026-08-18 12:10:09.774624: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:10:09.774726: Inverter 0 scheduled charge enable is False
2026-08-18 12:10:09.774762: Inverter 0 charge windows currently []
2026-08-18 12:10:09.774793: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:10:09.774902: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:10:09.774940: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:10:09.774976: Inverter 0 scheduled discharge enable is False
2026-08-18 12:10:09.775108: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:10:09.775145: Inverter 0 discharge windows currently []
2026-08-18 12:10:09.775168: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:10:09.775186: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:10:09.775203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:10:09.839170: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 55%, target 100%
2026-08-18 12:10:09.839350: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:10:09.839427: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:10:09.839604: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:10:09.839684: No export window planned
2026-08-18 12:10:09.839792: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:10:09.839827: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:10:09.840004: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:10:09.840165: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:10:09.840216: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:10:09.840314: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:10:09.840414: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840488: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840515: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840539: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840597: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:10:09.840841: Inverter 0 count register writes 0
2026-08-18 12:10:09.865057: Total inverter register writes now 867
2026-08-18 12:10:09.900926: Info: Completed run status Demand
2026-08-18 12:10:09.909576: Info: record_status Demand
2026-08-18 12:10:09.917675: Saved current settings to /config/predbat_config.json
2026-08-18 12:10:09.917977: Compare, best tariff: current metric 129.87p
2026-08-18 12:10:41.855798: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 12:10:42.845893: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:10:42.846058: Zero load period starting at 2026-08-17T10:54:00+0100 (1516 minutes) for 189 minutes with base value 398.15
2026-08-18 12:10:42.847019: Processing 1345 30-minute periods for power integration
2026-08-18 12:10:42.931580: ML Component: Car charging hold False, car energy reported load False
2026-08-18 12:10:43.012678: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:10:43.092517: ML Temperature data points: 49671
2026-08-18 12:10:43.306036: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 12:10:43.344996: ML Component: Data fetch completed, load data age 59.0 days, 17257 data points
2026-08-18 12:10:43.345095: ML Component: Starting fine-tune training (2h interval), model age is 2.026224725 hours
2026-08-18 12:10:43.345128: ML Component: Doing training...
2026-08-18 12:10:43.356716: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-18 12:10:43.356792: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.9 days)
2026-08-18 12:10:43.405663: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-18 12:10:43.405771: ML Predictor: Starting initial training with 30 epochs
2026-08-18 12:10:43.902315: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-18 12:10:48.730532: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-18 12:10:48.785887: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0484) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7274 std=4.5889) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1926 std=0.5271)
2026-08-18 12:10:49.000524: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:10:49.000760: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:10:49.000803: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:10:49.000964: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:10:49.001007: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:10:49.001032: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:10:49.001055: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:11:03.967776: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0305 val_mae=0.0084 kWh val_bias=+0.0009 kWh (+1.0%) combined=0.0066 kWh ema_combined=0.0066 kWh
2026-08-18 12:11:17.824026: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0499 val_mae=0.0078 kWh val_bias=+0.0036 kWh (+4.0%) combined=0.0078 kWh ema_combined=0.0070 kWh
2026-08-18 12:11:32.247736: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0314 val_mae=0.0071 kWh val_bias=-0.0026 kWh (-3.0%) combined=0.0046 kWh ema_combined=0.0062 kWh
2026-08-18 12:11:45.845805: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0199 val_mae=0.0060 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0034 kWh ema_combined=0.0054 kWh
2026-08-18 12:11:57.282723: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0158 val_mae=0.0045 kWh val_bias=+0.0006 kWh (+0.6%) combined=0.0024 kWh ema_combined=0.0045 kWh
2026-08-18 12:12:10.471736: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0156 val_mae=0.0055 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0032 kWh ema_combined=0.0041 kWh
2026-08-18 12:12:25.022757: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0125 val_mae=0.0045 kWh val_bias=+0.0019 kWh (+2.1%) combined=0.0033 kWh ema_combined=0.0039 kWh
2026-08-18 12:12:37.415665: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0105 val_mae=0.0037 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0021 kWh ema_combined=0.0033 kWh
2026-08-18 12:12:49.102534: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0095 val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-18 12:12:49.288103: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:12:49.288709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:12:49.288797: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:12:49.289127: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:12:49.289266: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:12:49.289358: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:12:49.289407: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:13:00.586382: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0089 val_mae=0.0033 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-18 12:13:13.148931: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0024 kWh
2026-08-18 12:13:26.314126: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0085 val_mae=0.0033 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 12:13:40.298086: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0071 val_mae=0.0030 kWh val_bias=+0.0012 kWh (+1.3%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-18 12:13:53.592702: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0079 val_mae=0.0030 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-18 12:14:06.822756: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0070 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-18 12:14:21.023999: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0070 val_mae=0.0027 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-18 12:14:35.743077: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 12:14:49.521076: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0028 kWh val_bias=-0.0012 kWh (-1.3%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-18 12:14:49.590686: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:14:49.591075: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:14:49.591241: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:14:49.591502: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:14:49.591642: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:14:49.591740: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:14:49.591844: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:15:00.870654: --------------- PredBat - update at 2026-08-18 12:15:00+01:00 with clock skew 0 minutes, minutes now 735
2026-08-18 12:15:00.871692: Saved current settings to /config/predbat_config.json
2026-08-18 12:15:00.871842: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 12:15:00.872021: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:15:00.872129: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:15:00.906473: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:15:00.906602: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:15:00.906761: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:15:00.907320: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:15:00.907446: Predbat mode is set to Control charge & discharge
2026-08-18 12:15:01.252910: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:15:01.253036: Using load_power data to fill gaps in load_today data
2026-08-18 12:15:02.462071: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:15:02.462350: Zero load period starting at 2026-08-17T10:54:00+0100 (1521 minutes) for 189 minutes with base value 207.4333
2026-08-18 12:15:02.463566: Processing 721 30-minute periods for power integration
2026-08-18 12:15:02.793798: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:15:02.797070: Car charging hold False, threshold 6.0kWh
2026-08-18 12:15:02.797396: Current data so far today: load 7.6kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:15:02.817494: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:15:02.817637: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:15:02.818592: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:15:02.818754: Standing charge is set to 46.63p
2026-08-18 12:15:03.079926: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:15:03.080247: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:15:03.080482: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:15:03.081954: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:15:03.082085: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:15:03.089704: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:15:03.090145: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:15:03.227139: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:15:03.227287: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:15:03.229207: High export rate found rates in range 99p to -99p
2026-08-18 12:15:03.276305: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:15:03.276497: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:15:03.289489: Battery level now 8.8kWh, -1hr ago 9.28kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 13.47p, rate_forward 6.87p
2026-08-18 12:15:03.289796: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:15:03.345508: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:15:03.345670: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:15:03.496503: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:15:03.531469: Today's load divergence 98.68%, in-day adjustment 95.78%, damping 0.95x, yesterday 92.68% today 98.75% blend 48.96%
2026-08-18 12:15:03.531723: Today's predicted so far 7.76kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 7.76kWh forecast extra.
2026-08-18 12:15:03.531863: Today's actual load so far 7.55kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 12:15:03.603274: Inverter 0: Type SK Sunsynk
2026-08-18 12:15:03.603518: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:15:03.603839: Reserve min: 7%, battery_min: 7%
2026-08-18 12:15:03.604088: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:15:03.604534: Inverter 0 SoC: 8.66kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 582W, current battery voltage 51.2V, grid power -53W, load power 647W, PV Power 0W
2026-08-18 12:15:03.604980: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:15:03.605203: Inverter 0 scheduled charge enable is False
2026-08-18 12:15:03.605340: Inverter 0 charge windows currently []
2026-08-18 12:15:03.605467: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:15:03.605706: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:15:03.605840: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:15:03.606007: Inverter 0 scheduled discharge enable is False
2026-08-18 12:15:03.606290: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:15:03.606430: Inverter 0 discharge windows currently []
2026-08-18 12:15:03.606547: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:15:03.606661: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:15:03.606772: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:15:03.725404: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:15:03.725669: Plan was last updated on 2026-08-18 12:10:00+01:00 and is now 5.0 minutes old
2026-08-18 12:15:03.726028: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:15:03.726189: Best export window [  ]
2026-08-18 12:15:03.727583: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:15:03.732544: Load divergence over 8.0 hours mean 421.99W, min 307.2W, max 753.0W, std dev 76.09W, divergence 9.02%
2026-08-18 12:15:03.761486: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:15:03.761720: LoadML is_calculating True
2026-08-18 12:15:03.761846: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 12:15:03.814881: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 631.66p, metric_keep 128.23kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.46kWh, PV 0.0kWh
2026-08-18 12:15:04.052862: Battery has 10.83 hours left - now at 8.66kWh
2026-08-18 12:15:04.155875: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 664.23p, metric_keep 130.26kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.59kWh, PV 0.0kWh
2026-08-18 12:15:04.355994: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 373.93p, metric_keep 8.99kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.59kWh, PV 0.0kWh
2026-08-18 12:15:04.531791: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 348.14p, metric_keep 3.89kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.46kWh, PV 0.0kWh
2026-08-18 12:15:04.555760: Saving plan best values to HA entities
2026-08-18 12:15:04.849138: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:15:04.855795: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:15:04.875317: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.36kWh, export 0.0kWh, metric 348.14p, metric10 373.93p
2026-08-18 12:15:05.034495: Marginal costs baseline metric (no standing charge): 301.5034
2026-08-18 12:15:05.390446: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:15:05.494797: Rate array import [{'start': 735, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 735, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:15:05.495957: - Your estimated bill for today is £1.74 and tomorrow is £1.94
2026-08-18 12:15:05.496106: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:15:05.496247: - The battery is currently at 54% and is in eco mode for the next 11 hours.
2026-08-18 12:15:05.496364: - For the next 48 hours there will be no solar generation.
2026-08-18 12:15:05.496464: - You will run out of battery in 10 hours.
2026-08-18 12:15:05.496600: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:15:05.496706: 
2026-08-18 12:15:05.549984: Plan calculation took 1.82 seconds
2026-08-18 12:15:05.554916: No high rate period found
2026-08-18 12:15:05.620640: Import threshold used for optimisation was 8.0p
2026-08-18 12:15:05.739531: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:15:05.750309: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 12:15:05.750525: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:15:05.750654: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:15:05.750925: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:15:05.751061: No export window planned
2026-08-18 12:15:05.751323: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:15:05.751461: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:15:05.751742: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:15:05.752049: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:15:05.752225: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:15:05.752382: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:15:05.752572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.752713: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.752844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.752974: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753249: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.753976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.754103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.754248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.754377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:15:05.754496: Inverter 0 count register writes 0
2026-08-18 12:15:05.788191: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 12:15:05.795992: Total inverter register writes now 867
2026-08-18 12:15:05.842699: Info: Completed run status Demand
2026-08-18 12:15:05.851504: Info: record_status Demand
2026-08-18 12:15:05.862823: Saved current settings to /config/predbat_config.json
2026-08-18 12:15:05.863215: Compare, best tariff: current metric 129.87p
2026-08-18 12:15:06.229115: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-18 12:15:19.806585: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0058 val_mae=0.0030 kWh val_bias=-0.0016 kWh (-1.8%) combined=0.0024 kWh ema_combined=0.0021 kWh
2026-08-18 12:15:34.239369: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0030 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0025 kWh ema_combined=0.0022 kWh
2026-08-18 12:15:47.916212: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0059 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-18 12:15:49.043292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:15:49.043565: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:15:49.043616: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:15:49.043779: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:15:49.043826: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:15:49.043961: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:15:49.044011: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:16:04.568858: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0012 kWh (-1.4%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 12:16:18.646375: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0024 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 12:16:33.531412: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=-0.0007 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-18 12:16:46.379028: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0053 val_mae=0.0025 kWh val_bias=-0.0012 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0019 kWh
2026-08-18 12:16:58.822907: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0017 kWh
2026-08-18 12:17:16.176801: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-18 12:17:29.223674: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-18 12:17:43.589984: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 12:17:43.596098: ML Predictor: Restored best weights from epoch with val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-18 12:17:43.596511: ML Predictor: Training complete, final val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-18 12:17:44.709841: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0004 kWh (-0.4%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 12:17:44.732594: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0021 kWh
2026-08-18 12:17:44.805527: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-18 12:17:44.805633: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 12:17:45.427703: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 12:17:50.085321: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:17:50.090685: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:17:50.095844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:17:50.101220: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:17:50.106385: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:17:50.111553: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:17:50.116721: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:17:50.649461: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 12:17:50.708123: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7293 std=4.5874) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-18 12:17:50.802026: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 12:17:50.818706: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 12:17:50.845706: ML Predictor: Baseline (pre-finetune) val_mae=0.0030 kWh val_bias=-0.0001 kWh
2026-08-18 12:18:04.852477: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0089 val_mae=0.0038 kWh val_bias=+0.0021 kWh (+2.7%) combined=0.0035 kWh ema_combined=0.0035 kWh
2026-08-18 12:18:18.490599: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0102 val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0025 kWh ema_combined=0.0032 kWh
2026-08-18 12:18:33.189416: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0111 val_mae=0.0039 kWh val_bias=-0.0016 kWh (-2.1%) combined=0.0031 kWh ema_combined=0.0032 kWh
2026-08-18 12:18:48.192791: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0120 val_mae=0.0047 kWh val_bias=+0.0011 kWh (+1.4%) combined=0.0031 kWh ema_combined=0.0032 kWh
2026-08-18 12:19:00.270792: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0130 val_mae=0.0035 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0019 kWh ema_combined=0.0028 kWh
2026-08-18 12:19:14.442230: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0098 val_mae=0.0038 kWh val_bias=+0.0009 kWh (+1.1%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-18 12:19:28.740279: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0103 val_mae=0.0035 kWh val_bias=+0.0015 kWh (+1.9%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 12:19:44.084225: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0100 val_mae=0.0033 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-18 12:19:57.722263: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0086 val_mae=0.0032 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-18 12:20:00.832443: --------------- PredBat - update at 2026-08-18 12:20:00+01:00 with clock skew 0 minutes, minutes now 740
2026-08-18 12:20:00.833492: Saved current settings to /config/predbat_config.json
2026-08-18 12:20:00.833625: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 12:20:00.833725: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:20:00.833799: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:20:00.892342: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:20:00.892497: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:20:00.892708: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:20:00.893337: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:20:00.893486: Predbat mode is set to Control charge & discharge
2026-08-18 12:20:01.182117: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:20:01.182286: Using load_power data to fill gaps in load_today data
2026-08-18 12:20:02.461225: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:20:02.461598: Zero load period starting at 2026-08-17T10:54:00+0100 (1526 minutes) for 189 minutes with base value 207.4167
2026-08-18 12:20:02.462783: Processing 721 30-minute periods for power integration
2026-08-18 12:20:02.676349: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:20:02.676545: Car charging hold False, threshold 6.0kWh
2026-08-18 12:20:02.676607: Current data so far today: load 7.65kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:20:02.694801: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:20:02.694915: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:20:02.695963: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:20:02.696057: Standing charge is set to 46.63p
2026-08-18 12:20:02.918800: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:20:02.919613: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:20:02.919936: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:20:02.921186: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:20:02.921386: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:20:02.926997: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:20:02.927359: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:20:02.975703: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:20:02.975840: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:20:02.977808: High export rate found rates in range 99p to -99p
2026-08-18 12:20:03.022108: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:20:03.022231: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:20:03.037014: Battery level now 8.66kWh, -1hr ago 9.28kWh, at midnight 6.84kWh, battery value change in the last hour -4.23p, change today 12.54p, rate_forward 6.87p
2026-08-18 12:20:03.037522: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:20:03.111422: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:20:03.111722: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:20:03.346788: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:20:03.389606: Today's load divergence 98.79%, in-day adjustment 95.85%, damping 0.95x, yesterday 92.68% today 98.85% blend 48.61%
2026-08-18 12:20:03.392150: Today's predicted so far 7.79kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 7.79kWh forecast extra.
2026-08-18 12:20:03.392366: Today's actual load so far 7.6kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 12:20:03.465846: Inverter 0: Type SK Sunsynk
2026-08-18 12:20:03.466648: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:20:03.467028: Reserve min: 7%, battery_min: 7%
2026-08-18 12:20:03.468946: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:20:03.470582: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 479W, current battery voltage 51.2V, grid power -55W, load power 533W, PV Power 0W
2026-08-18 12:20:03.470764: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:20:03.470893: Inverter 0 scheduled charge enable is False
2026-08-18 12:20:03.470940: Inverter 0 charge windows currently []
2026-08-18 12:20:03.470976: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:20:03.471107: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:20:03.471171: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:20:03.471218: Inverter 0 scheduled discharge enable is False
2026-08-18 12:20:03.471367: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:20:03.471456: Inverter 0 discharge windows currently []
2026-08-18 12:20:03.471488: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:20:03.471513: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:20:03.471546: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:20:03.561898: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:20:03.562005: Plan was last updated on 2026-08-18 12:10:00+01:00 and is now 10.0 minutes old
2026-08-18 12:20:03.562235: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:20:03.562280: Best export window [  ]
2026-08-18 12:20:03.563306: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:20:03.567116: Load divergence over 8.0 hours mean 422.11W, min 316.8W, max 620.4W, std dev 66.08W, divergence 7.83%
2026-08-18 12:20:03.589910: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:20:03.590087: LoadML is_calculating True
2026-08-18 12:20:03.590140: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 12:20:03.633889: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 631.34p, metric_keep 128.14kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.55kWh, PV 0.0kWh
2026-08-18 12:20:03.822382: Battery has 10.83 hours left - now at 8.64kWh
2026-08-18 12:20:03.888630: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 663.91p, metric_keep 130.18kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.69kWh, PV 0.0kWh
2026-08-18 12:20:04.093116: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 376.33p, metric_keep 8.75kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.69kWh, PV 0.0kWh
2026-08-18 12:20:04.210356: predict best end_record 08-19 23:40:00, final soc 2.11kWh, metric 351.28p, metric_keep 3.67kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.55kWh, PV 0.0kWh
2026-08-18 12:20:04.210447: Saving plan best values to HA entities
2026-08-18 12:20:04.520642: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:20:04.528294: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:20:04.534641: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.33kWh, export 0.0kWh, metric 351.28p, metric10 376.33p
2026-08-18 12:20:04.633700: Marginal costs baseline metric (no standing charge): 304.6501
2026-08-18 12:20:05.047895: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:20:05.189064: Rate array import [{'start': 740, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 740, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:20:05.189887: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 12:20:05.189947: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:20:05.189990: - The battery is currently at 54% and is in eco mode for the next 11 hours.
2026-08-18 12:20:05.190026: - For the next 48 hours there will be no solar generation.
2026-08-18 12:20:05.190060: - You will run out of battery in 10 hours.
2026-08-18 12:20:05.190080: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:20:05.190099: 
2026-08-18 12:20:05.235548: Plan calculation took 1.67 seconds
2026-08-18 12:20:05.239820: No high rate period found
2026-08-18 12:20:05.307421: Import threshold used for optimisation was 8.0p
2026-08-18 12:20:05.375623: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:20:05.383300: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 12:20:05.383542: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:20:05.383714: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:20:05.384055: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:20:05.384265: No export window planned
2026-08-18 12:20:05.384490: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:20:05.384641: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:20:05.384918: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:20:05.385208: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:20:05.385357: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:20:05.385509: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:20:05.385697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.385836: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.385966: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386241: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386498: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.386982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.387174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.387355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.387531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.387706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:05.387817: Inverter 0 count register writes 0
2026-08-18 12:20:05.422624: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 12:20:05.422792: Recompute is saving previous plan...
2026-08-18 12:20:05.423829: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 12:20:05.423938: Best export window [  ]
2026-08-18 12:20:05.424947: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:20:05.428850: Load divergence over 8.0 hours mean 422.11W, min 316.8W, max 620.4W, std dev 66.08W, divergence 7.83%
2026-08-18 12:20:05.450674: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:20:05.450803: LoadML is_calculating True
2026-08-18 12:20:05.450841: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 12:20:05.461536: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:20:05.462275: Optimise levels pass started at 2026-08-18 12:20:05
2026-08-18 12:20:05.462320: Optimise all windows, total charge 24 export 1
2026-08-18 12:20:07.755449: >> Region optimisation pass width 960 gives best_metric 383.57p, best_cost 444.01p, best_cycle 50.44kWh, best_import 37.22kWh
2026-08-18 12:20:08.036436: >> Region optimisation pass width 480 gives best_metric 383.57p, best_cost 444.01p, best_cycle 50.44kWh, best_import 37.22kWh
2026-08-18 12:20:08.670835: >> Region optimisation pass width 240 gives best_metric 383.57p, best_cost 444.01p, best_cycle 50.44kWh, best_import 37.22kWh
2026-08-18 12:20:10.014752: >> Region optimisation pass width 120 gives best_metric 383.57p, best_cost 444.01p, best_cycle 50.44kWh, best_import 37.22kWh
2026-08-18 12:20:10.014930: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 12:20:10.014987: Optimise levels pass ended at 2026-08-18 12:20:10, duration 4.6 seconds tried 72 combinations
2026-08-18 12:20:10.015072: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 383.57p, best_keep 3.34kWh, best_cycle 50.44kWh, best_carbon 0kg, best_import 37.22kWh
2026-08-18 12:20:10.035468: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:20:20.887715: Tweak plan optimisation started metric 293.83p, cost 300.56p
2026-08-18 12:20:23.006266: Tweak optimisation finished metric 293.83p, cost 300.56p, metric_keep 3.34kWh, cycle 33.36kWh, carbon 0kg, import 19.29kWh, changed 8 window(s)
2026-08-18 12:20:23.028680: Swap charge optimisation started metric 293.83p, cost 300.56p, min_improvement_swap 0.1p
2026-08-18 12:20:24.250732: Swap charge optimisation finished metric 293.83p, cost 300.56p
2026-08-18 12:20:24.513071: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 291.17p -> 290.92p, plan now metric 295.05p, cost 296.42p, cycle 33.36kWh, import 18.77kWh
2026-08-18 12:20:24.525505: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:20:24.538956: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:20:24.539424: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:20:24.539820: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:20:24.642302: Previous plan best metric is 293.83 (cost 300.56) and new plan best metric is 293.83 (cost 300.56)
2026-08-18 12:20:24.656107: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:20:24.656312: Plan valid is now true after recompute was False
2026-08-18 12:20:24.744244: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 629.77p, metric_keep 127.89kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.35kWh, PV 0.0kWh
2026-08-18 12:20:25.011212: Battery has 10.83 hours left - now at 8.64kWh
2026-08-18 12:20:25.102988: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 662.27p, metric_keep 129.93kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.48kWh, PV 0.0kWh
2026-08-18 12:20:25.235530: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 369.14p, metric_keep 8.73kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.48kWh, PV 0.0kWh
2026-08-18 12:20:25.372600: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 343.05p, metric_keep 3.67kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.35kWh, PV 0.0kWh
2026-08-18 12:20:25.396371: Saving plan best values to HA entities
2026-08-18 12:20:25.706102: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:20:25.713743: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:20:25.732680: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.33kWh, export 0.0kWh, metric 343.05p, metric10 369.14p
2026-08-18 12:20:25.912983: Marginal costs baseline metric (no standing charge): 296.417
2026-08-18 12:20:26.433446: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:20:26.561566: Rate array import [{'start': 740, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 740, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:20:26.562573: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 12:20:26.562626: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:20:26.562655: - The battery is currently at 54% and is in eco mode for the next 11 hours.
2026-08-18 12:20:26.562692: - For the next 48 hours there will be no solar generation.
2026-08-18 12:20:26.562716: - You will run out of battery in 10 hours.
2026-08-18 12:20:26.562762: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:20:26.562788: 
2026-08-18 12:20:26.650957: Plan calculation took 21.23 seconds
2026-08-18 12:20:26.651212: Inverter 0: Type SK Sunsynk
2026-08-18 12:20:26.651265: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:20:26.651470: Reserve min: 7%, battery_min: 7%
2026-08-18 12:20:26.651555: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:20:26.651865: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 479W, current battery voltage 51.2V, grid power -55W, load power 533W, PV Power 0W
2026-08-18 12:20:26.652071: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:20:26.652200: Inverter 0 scheduled charge enable is False
2026-08-18 12:20:26.652248: Inverter 0 charge windows currently []
2026-08-18 12:20:26.652294: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:20:26.652434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:20:26.652478: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:20:26.652522: Inverter 0 scheduled discharge enable is False
2026-08-18 12:20:26.652683: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:20:26.652729: Inverter 0 discharge windows currently []
2026-08-18 12:20:26.652757: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:20:26.652790: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:20:26.652815: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:20:26.730847: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 12:20:26.731020: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:20:26.731110: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:20:26.731370: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:20:26.731469: No export window planned
2026-08-18 12:20:26.731615: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:20:26.731665: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:20:26.731863: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:20:26.732163: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:20:26.732238: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:20:26.732316: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:20:26.732432: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732639: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732722: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732778: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.732974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.733017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.733066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.733108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.733174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:20:26.733212: Inverter 0 count register writes 0
2026-08-18 12:20:26.764259: Total inverter register writes now 867
2026-08-18 12:20:26.809246: Info: Completed run status Demand
2026-08-18 12:20:26.818474: Info: record_status Demand
2026-08-18 12:20:26.828491: Saved current settings to /config/predbat_config.json
2026-08-18 12:20:26.828693: Compare, best tariff: current metric 129.87p
2026-08-18 12:20:31.296215: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0072 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-18 12:20:31.296429: ML Predictor: Early stopping at epoch 10
2026-08-18 12:20:31.297203: ML Predictor: Restored best weights from epoch with val_mae=0.0030 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 12:20:31.297454: ML Predictor: Training complete, final val_mae=0.0030 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 12:20:32.170725: ML Predictor: AR rollout over holdout: ar_mae=0.0032 kWh ar_bias=+0.0001 kWh (+0.1%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-18 12:20:32.182017: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0030 kWh
2026-08-18 12:20:32.256758: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-18 12:20:32.256973: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 12:20:32.868971: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 12:20:37.807836: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 12:20:37.858068: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7256 std=4.5850) import_rate(mean=16.7043 std=8.3562) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-18 12:20:37.950213: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 12:20:37.966690: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 12:20:38.041137: ML Predictor: Baseline (pre-finetune) val_mae=0.0035 kWh val_bias=+0.0002 kWh
2026-08-18 12:20:54.064058: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0090 val_mae=0.0038 kWh val_bias=+0.0010 kWh (+1.7%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 12:21:03.654258: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:21:03.654531: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:21:03.654582: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:21:03.654750: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:21:03.654820: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:21:03.654926: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:21:03.654970: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:21:08.294264: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0103 val_mae=0.0036 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0026 kWh ema_combined=0.0025 kWh
2026-08-18 12:21:22.467661: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0113 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-18 12:21:36.926974: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0115 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 12:21:53.058223: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0132 val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.7%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 12:22:07.124813: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0136 val_mae=0.0037 kWh val_bias=-0.0026 kWh (-4.6%) combined=0.0039 kWh ema_combined=0.0027 kWh
2026-08-18 12:22:22.244489: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0106 val_mae=0.0033 kWh val_bias=-0.0018 kWh (-3.3%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-18 12:22:35.577703: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0108 val_mae=0.0033 kWh val_bias=+0.0008 kWh (+1.4%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-18 12:22:50.291231: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0099 val_mae=0.0029 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-18 12:23:04.034751: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:23:04.034958: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:23:04.034995: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:23:04.035160: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:23:04.035199: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:23:04.035217: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:23:04.035270: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:23:06.852650: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0080 val_mae=0.0025 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0024 kWh
2026-08-18 12:23:06.852751: ML Predictor: Early stopping at epoch 10
2026-08-18 12:23:06.853812: ML Predictor: Restored best weights from epoch with val_mae=0.0035 kWh val_bias=+0.0002 kWh (+0.4%)
2026-08-18 12:23:06.853945: ML Predictor: Training complete, final val_mae=0.0035 kWh val_bias=+0.0002 kWh (+0.4%)
2026-08-18 12:23:07.906258: ML Predictor: AR rollout over holdout: ar_mae=0.0041 kWh ar_bias=+0.0007 kWh (+1.3%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-18 12:23:07.914083: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0035 kWh
2026-08-18 12:23:07.991470: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-18 12:23:07.991578: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 12:23:08.579573: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 12:23:13.919967: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 12:23:13.986792: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7166 std=4.5826) import_rate(mean=16.6662 std=8.3584) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-18 12:23:14.089557: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 12:23:14.105243: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 12:23:14.132081: ML Predictor: Baseline (pre-finetune) val_mae=0.0039 kWh val_bias=-0.0000 kWh
2026-08-18 12:23:30.373490: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0114 val_mae=0.0038 kWh val_bias=-0.0005 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 12:23:45.212308: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0093 val_mae=0.0033 kWh val_bias=-0.0010 kWh (-2.4%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-18 12:24:00.697986: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0113 val_mae=0.0036 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-18 12:24:14.945707: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0118 val_mae=0.0040 kWh val_bias=+0.0018 kWh (+4.3%) combined=0.0037 kWh ema_combined=0.0026 kWh
2026-08-18 12:24:29.439926: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0132 val_mae=0.0034 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-18 12:24:44.869709: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0137 val_mae=0.0034 kWh val_bias=-0.0007 kWh (-1.6%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-18 12:25:00.261152: --------------- PredBat - update at 2026-08-18 12:25:00+01:00 with clock skew 0 minutes, minutes now 745
2026-08-18 12:25:00.262051: Saved current settings to /config/predbat_config.json
2026-08-18 12:25:00.262198: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 12:25:00.262280: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:25:00.262358: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:25:00.312641: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:25:00.312846: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:25:00.313120: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:25:00.313839: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:25:00.314008: Predbat mode is set to Control charge & discharge
2026-08-18 12:25:00.626311: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:25:00.626471: Using load_power data to fill gaps in load_today data
2026-08-18 12:25:01.960533: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:25:01.960918: Zero load period starting at 2026-08-17T10:54:00+0100 (1531 minutes) for 189 minutes with base value 207.4
2026-08-18 12:25:01.962745: Processing 721 30-minute periods for power integration
2026-08-18 12:25:02.272035: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:25:02.272166: Car charging hold False, threshold 6.0kWh
2026-08-18 12:25:02.272211: Current data so far today: load 7.7kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:25:02.291950: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:25:02.292130: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:25:02.292914: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:25:02.292990: Standing charge is set to 46.63p
2026-08-18 12:25:02.416227: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:25:02.416800: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:25:02.419400: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:25:02.423945: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:25:02.424292: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:25:02.434796: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:25:02.437401: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:25:02.662054: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:25:02.662224: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:25:02.664119: High export rate found rates in range 99p to -99p
2026-08-18 12:25:02.760163: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:25:02.760318: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:25:02.781359: Battery level now 8.64kWh, -1hr ago 9.25kWh, at midnight 6.84kWh, battery value change in the last hour -4.18p, change today 12.37p, rate_forward 6.87p
2026-08-18 12:25:02.781806: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:25:02.860276: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:25:02.860453: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:25:02.994287: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:25:03.043154: Today's load divergence 98.93%, in-day adjustment 95.94%, damping 0.95x, yesterday 92.68% today 98.98% blend 48.26%
2026-08-18 12:25:03.043253: Today's predicted so far 7.83kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 7.83kWh forecast extra.
2026-08-18 12:25:03.043285: Today's actual load so far 7.66kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 12:25:03.122246: Inverter 0: Type SK Sunsynk
2026-08-18 12:25:03.122334: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:25:03.122523: Reserve min: 7%, battery_min: 7%
2026-08-18 12:25:03.122610: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:25:03.122929: Inverter 0 SoC: 8.62kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 445W, current battery voltage 51.2V, grid power -53W, load power 495W, PV Power 0W
2026-08-18 12:25:03.123151: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:25:03.123287: Inverter 0 scheduled charge enable is False
2026-08-18 12:25:03.123349: Inverter 0 charge windows currently []
2026-08-18 12:25:03.123396: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:25:03.123597: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:25:03.123654: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:25:03.123701: Inverter 0 scheduled discharge enable is False
2026-08-18 12:25:03.123933: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:25:03.124004: Inverter 0 discharge windows currently []
2026-08-18 12:25:03.124046: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:25:03.124082: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:25:03.124123: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:25:03.236472: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:25:03.236607: Plan was last updated on 2026-08-18 12:20:00+01:00 and is now 5.0 minutes old
2026-08-18 12:25:03.236810: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:25:03.236852: Best export window [  ]
2026-08-18 12:25:03.237695: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:25:03.241477: Load divergence over 8.0 hours mean 422.01W, min 324.0W, max 601.2W, std dev 64.4W, divergence 7.63%
2026-08-18 12:25:03.269137: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:25:03.270147: LoadML is_calculating True
2026-08-18 12:25:03.270194: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 12:25:03.302365: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 630.2p, metric_keep 127.79kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.46kWh, PV 0.0kWh
2026-08-18 12:25:03.506250: Battery has 10.75 hours left - now at 8.62kWh
2026-08-18 12:25:03.578747: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 662.71p, metric_keep 129.84kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.6kWh, PV 0.0kWh
2026-08-18 12:25:03.697486: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 372.42p, metric_keep 8.56kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.6kWh, PV 0.0kWh
2026-08-18 12:25:03.940049: predict best end_record 08-19 23:35:00, final soc 1.7kWh, metric 346.27p, metric_keep 3.49kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.46kWh, PV 0.0kWh
2026-08-18 12:25:03.940187: Saving plan best values to HA entities
2026-08-18 12:25:04.404083: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:25:04.413822: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:25:04.421099: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.94kWh, house 0.31kWh, export 0.0kWh, metric 346.27p, metric10 372.42p
2026-08-18 12:25:04.593255: Marginal costs baseline metric (no standing charge): 299.6331
2026-08-18 12:25:05.073564: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:25:05.222482: Rate array import [{'start': 745, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 745, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:25:05.223560: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 12:25:05.225208: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:25:05.225267: - The battery is currently at 54% and is in eco mode for the next 11 hours.
2026-08-18 12:25:05.225296: - For the next 48 hours there will be no solar generation.
2026-08-18 12:25:05.225324: - You will run out of battery in 10 hours.
2026-08-18 12:25:05.225364: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:25:05.225403: 
2026-08-18 12:25:05.298281: Plan calculation took 2.06 seconds
2026-08-18 12:25:05.303485: No high rate period found
2026-08-18 12:25:05.392331: Import threshold used for optimisation was 8.0p
2026-08-18 12:25:05.513957: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:25:05.522205: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 12:25:05.522376: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:25:05.522455: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:25:05.522706: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:25:05.522816: No export window planned
2026-08-18 12:25:05.522972: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:25:05.523025: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:25:05.523239: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:25:05.523432: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:25:05.523503: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:25:05.523580: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:25:05.523702: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.523773: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.523831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.523884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.523988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524136: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:25:05.524603: Inverter 0 count register writes 0
2026-08-18 12:25:05.565627: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 12:25:05.574295: Total inverter register writes now 867
2026-08-18 12:25:05.624374: Info: Completed run status Demand
2026-08-18 12:25:05.634000: Info: record_status Demand
2026-08-18 12:25:05.645532: Saved current settings to /config/predbat_config.json
2026-08-18 12:25:05.645898: Compare, best tariff: current metric 129.87p
2026-08-18 12:25:05.858883: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0104 val_mae=0.0035 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 12:25:21.282543: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0089 val_mae=0.0034 kWh val_bias=+0.0011 kWh (+2.7%) combined=0.0029 kWh ema_combined=0.0024 kWh
2026-08-18 12:25:37.019845: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0081 val_mae=0.0031 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 12:25:48.793266: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:25:48.793553: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:25:48.793598: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:25:48.793740: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:25:48.793781: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:25:48.793803: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:25:48.793894: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:25:53.779526: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0100 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 12:25:53.779820: ML Predictor: Early stopping at epoch 10
2026-08-18 12:25:53.780887: ML Predictor: Restored best weights from epoch with val_mae=0.0039 kWh val_bias=-0.0000 kWh (-0.1%)
2026-08-18 12:25:53.781159: ML Predictor: Training complete, final val_mae=0.0039 kWh val_bias=-0.0000 kWh (-0.1%)
2026-08-18 12:25:54.980042: ML Predictor: AR rollout over holdout: ar_mae=0.0065 kWh ar_bias=-0.0016 kWh (-3.8%) [drift vs teacher-forced: +0.0025 kWh]
2026-08-18 12:25:55.011628: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0039 kWh
2026-08-18 12:25:55.011878: ML Predictor: Curriculum final pass 5/5: full dataset (59.9 days)
2026-08-18 12:25:55.012075: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 12:25:55.823151: ML Predictor: Creating dataset with 1438 hours of training data, 48 hours validation
2026-08-18 12:26:02.054121: ML Predictor: Created 16968 training samples, 576 validation samples
2026-08-18 12:26:02.121062: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7058 std=4.5780) import_rate(mean=16.6457 std=8.3761) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1943 std=0.5282)
2026-08-18 12:26:02.349028: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 12:26:02.362405: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 12:26:02.403791: ML Predictor: Baseline (pre-finetune) val_mae=0.0066 kWh val_bias=-0.0009 kWh
2026-08-18 12:26:19.476462: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0130 val_mae=0.0065 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0042 kWh ema_combined=0.0042 kWh
2026-08-18 12:26:36.040395: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0125 val_mae=0.0051 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0034 kWh ema_combined=0.0040 kWh
2026-08-18 12:26:52.683038: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0147 val_mae=0.0057 kWh val_bias=+0.0007 kWh (+1.4%) combined=0.0031 kWh ema_combined=0.0037 kWh
2026-08-18 12:27:11.124470: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0142 val_mae=0.0047 kWh val_bias=-0.0014 kWh (-3.0%) combined=0.0036 kWh ema_combined=0.0037 kWh
2026-08-18 12:27:27.161884: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0148 val_mae=0.0049 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0027 kWh ema_combined=0.0034 kWh
2026-08-18 12:27:49.264509: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0129 val_mae=0.0050 kWh val_bias=-0.0025 kWh (-5.4%) combined=0.0039 kWh ema_combined=0.0035 kWh
2026-08-18 12:28:03.762695: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:28:03.763273: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:28:03.763440: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:28:03.763753: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:28:03.763890: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:28:03.764105: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:28:03.764242: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:28:06.364753: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0119 val_mae=0.0041 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0024 kWh ema_combined=0.0032 kWh
2026-08-18 12:28:24.082564: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0107 val_mae=0.0041 kWh val_bias=+0.0014 kWh (+3.1%) combined=0.0036 kWh ema_combined=0.0033 kWh
2026-08-18 12:28:39.417910: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0103 val_mae=0.0040 kWh val_bias=-0.0019 kWh (-4.1%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-18 12:28:54.818198: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0095 val_mae=0.0036 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0024 kWh ema_combined=0.0031 kWh
2026-08-18 12:29:09.736010: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0094 val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0021 kWh ema_combined=0.0028 kWh
2026-08-18 12:29:26.131382: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0108 val_mae=0.0041 kWh val_bias=-0.0014 kWh (-3.0%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-18 12:29:40.822696: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0034 kWh val_bias=-0.0009 kWh (-1.8%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-18 12:29:54.645055: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0082 val_mae=0.0037 kWh val_bias=-0.0012 kWh (-2.6%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-18 12:30:00.160813: --------------- PredBat - update at 2026-08-18 12:30:00+01:00 with clock skew 0 minutes, minutes now 750
2026-08-18 12:30:00.161964: Saved current settings to /config/predbat_config.json
2026-08-18 12:30:00.162256: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 12:30:00.162433: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:30:00.162612: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:30:00.200190: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:30:00.200524: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:30:00.200797: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:30:00.201404: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:30:00.201609: Predbat mode is set to Control charge & discharge
2026-08-18 12:30:00.471377: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:30:00.471636: Using load_power data to fill gaps in load_today data
2026-08-18 12:30:01.728714: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:30:01.728876: Zero load period starting at 2026-08-17T10:54:00+0100 (1536 minutes) for 189 minutes with base value 207.3833
2026-08-18 12:30:01.729859: Processing 721 30-minute periods for power integration
2026-08-18 12:30:02.021408: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:30:02.021521: Car charging hold False, threshold 6.0kWh
2026-08-18 12:30:02.021560: Current data so far today: load 7.6kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:30:02.052931: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:30:02.053058: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:30:02.053901: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:30:02.053991: Standing charge is set to 46.63p
2026-08-18 12:30:02.179542: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:30:02.180870: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:30:02.181201: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:30:02.182245: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:30:02.182449: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:30:02.186813: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:30:02.187336: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:30:02.239990: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:30:02.240130: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:30:02.241764: High export rate found rates in range 99p to -99p
2026-08-18 12:30:02.290748: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:30:02.290973: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:30:02.308797: Battery level now 8.62kWh, -1hr ago 9.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today 12.26p, rate_forward 6.87p
2026-08-18 12:30:02.309435: 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-18 12:30:02.385183: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:30:02.385452: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:30:02.500971: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:30:02.541777: Today's load divergence 97.64%, in-day adjustment 95.32%, damping 0.95x, yesterday 92.68% today 97.75% blend 47.92%
2026-08-18 12:30:02.543034: Today's predicted so far 7.97kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 7.97kWh forecast extra.
2026-08-18 12:30:02.543118: Today's actual load so far 7.6kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 12:30:02.640355: Inverter 0: Type SK Sunsynk
2026-08-18 12:30:02.640564: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:30:02.640832: Reserve min: 7%, battery_min: 7%
2026-08-18 12:30:02.640984: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:30:02.641402: Inverter 0 SoC: 8.62kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 508W, current battery voltage 51.2V, grid power -51W, load power 557W, PV Power 0W
2026-08-18 12:30:02.641664: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:30:02.656060: Inverter 0 scheduled charge enable is False
2026-08-18 12:30:02.656266: Inverter 0 charge windows currently []
2026-08-18 12:30:02.656380: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:30:02.656626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:30:02.656740: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:30:02.656896: Inverter 0 scheduled discharge enable is False
2026-08-18 12:30:02.657151: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:30:02.657273: Inverter 0 discharge windows currently []
2026-08-18 12:30:02.657362: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:30:02.657444: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:30:02.657523: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:30:02.785802: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:30:02.785916: Plan was last updated on 2026-08-18 12:20:00+01:00 and is now 10.0 minutes old
2026-08-18 12:30:02.786232: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:30:02.786289: Best export window [  ]
2026-08-18 12:30:02.787179: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:30:02.792617: Load divergence over 8.0 hours mean 421.74W, min 335.4W, max 633.6W, std dev 58.94W, divergence 6.99%
2026-08-18 12:30:02.819769: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:30:02.820119: LoadML is_calculating True
2026-08-18 12:30:02.820174: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 12:30:02.862265: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 626.42p, metric_keep 127.18kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 12:30:03.093937: Battery has 10.83 hours left - now at 8.62kWh
2026-08-18 12:30:03.214627: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 658.77p, metric_keep 129.2kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.45kWh, PV 0.0kWh
2026-08-18 12:30:03.340426: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 371.33p, metric_keep 7.76kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.45kWh, PV 0.0kWh
2026-08-18 12:30:03.490655: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 346.15p, metric_keep 2.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 12:30:03.490845: Saving plan best values to HA entities
2026-08-18 12:30:03.826393: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:30:03.834172: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:30:03.841646: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.44kWh, house 0.18kWh, export 0.0kWh, metric 346.15p, metric10 371.33p
2026-08-18 12:30:04.007198: Marginal costs baseline metric (no standing charge): 299.5134
2026-08-18 12:30:04.414227: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:30:04.507988: Rate array import [{'start': 750, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 750, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:30:04.510137: - Your estimated bill for today is £1.68 and tomorrow is £1.94
2026-08-18 12:30:04.510435: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:30:04.510557: - The battery is currently at 54% and is in eco mode for the next 11 hours.
2026-08-18 12:30:04.510635: - For the next 48 hours there will be no solar generation.
2026-08-18 12:30:04.510718: - You have enough battery to reach the next charge.
2026-08-18 12:30:04.510790: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:30:04.510870: 
2026-08-18 12:30:04.606802: Plan calculation took 1.82 seconds
2026-08-18 12:30:04.611688: No high rate period found
2026-08-18 12:30:04.763781: Import threshold used for optimisation was 8.0p
2026-08-18 12:30:04.848839: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:30:04.873188: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 12:30:04.873347: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:30:04.873519: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:30:04.873763: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:30:04.873878: No export window planned
2026-08-18 12:30:04.874028: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:30:04.874069: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:30:04.874324: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:30:04.874555: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:30:04.874651: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:30:04.874745: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:30:04.874866: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.874924: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875263: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875409: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.875997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.876054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.876179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.876221: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:04.876308: Inverter 0 count register writes 0
2026-08-18 12:30:04.908831: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 12:30:04.909015: Recompute is saving previous plan...
2026-08-18 12:30:04.909894: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 12:30:04.909963: Best export window [  ]
2026-08-18 12:30:04.910810: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:30:04.914194: Load divergence over 8.0 hours mean 421.74W, min 335.4W, max 633.6W, std dev 58.94W, divergence 6.99%
2026-08-18 12:30:04.969623: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:30:04.969740: LoadML is_calculating True
2026-08-18 12:30:04.969768: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 12:30:04.985302: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:30:05.001706: Optimise levels pass started at 2026-08-18 12:30:05
2026-08-18 12:30:05.001783: Optimise all windows, total charge 24 export 1
2026-08-18 12:30:09.340265: >> Region optimisation pass width 960 gives best_metric 370.99p, best_cost 368.97p, best_cycle 43.52kWh, best_import 28.31kWh
2026-08-18 12:30:09.708224: >> Region optimisation pass width 480 gives best_metric 370.99p, best_cost 368.97p, best_cycle 43.52kWh, best_import 28.31kWh
2026-08-18 12:30:12.075659: >> Region optimisation pass width 240 gives best_metric 367.52p, best_cost 371.53p, best_cycle 48.01kWh, best_import 28.63kWh
2026-08-18 12:30:15.955405: >> Region optimisation pass width 120 gives best_metric 367.16p, best_cost 371.16p, best_cycle 47.37kWh, best_import 28.59kWh
2026-08-18 12:30:15.955608: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 12:30:15.955657: Optimise levels pass ended at 2026-08-18 12:30:15, duration 11.0 seconds tried 94 combinations
2026-08-18 12:30:15.955700: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 367.16p, best_keep 2.49kWh, best_cycle 47.37kWh, best_carbon 0kg, best_import 28.59kWh
2026-08-18 12:30:15.980647: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:30:26.162290: Tweak plan optimisation started metric 287.89p, cost 295.57p
2026-08-18 12:30:28.523780: Tweak optimisation finished metric 287.89p, cost 295.57p, metric_keep 2.38kWh, cycle 33.35kWh, carbon 0kg, import 19.14kWh, changed 8 window(s)
2026-08-18 12:30:28.543356: Swap charge optimisation started metric 287.89p, cost 295.57p, min_improvement_swap 0.1p
2026-08-18 12:30:29.582630: Swap charge optimisation finished metric 287.89p, cost 295.57p
2026-08-18 12:30:29.868654: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 285.27p -> 285.11p, plan now metric 288.33p, cost 293.54p, cycle 33.61kWh, import 18.88kWh
2026-08-18 12:30:29.880786: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:30:29.881281: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:30:29.881662: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:30:29.882156: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:30:29.921421: Previous plan best metric is 287.89 (cost 295.57) and new plan best metric is 287.89 (cost 295.57)
2026-08-18 12:30:29.922428: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:30:29.922676: Plan valid is now true after recompute was False
2026-08-18 12:30:29.962587: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 624.96p, metric_keep 126.93kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.14kWh, PV 0.0kWh
2026-08-18 12:30:30.109236: Battery has 10.83 hours left - now at 8.62kWh
2026-08-18 12:30:30.221239: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 657.25p, metric_keep 128.94kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.26kWh, PV 0.0kWh
2026-08-18 12:30:30.340600: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 364.25p, metric_keep 7.74kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.26kWh, PV 0.0kWh
2026-08-18 12:30:30.531601: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 338.02p, metric_keep 2.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.14kWh, PV 0.0kWh
2026-08-18 12:30:30.531704: Saving plan best values to HA entities
2026-08-18 12:30:30.863364: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:30:30.877983: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:30:30.891772: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.18kWh, export 0.0kWh, metric 338.02p, metric10 364.25p
2026-08-18 12:30:31.045154: Marginal costs baseline metric (no standing charge): 291.3891
2026-08-18 12:30:31.396469: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:30:31.499713: Rate array import [{'start': 750, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 750, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:30:31.512693: - Your estimated bill for today is £1.68 and tomorrow is £1.94
2026-08-18 12:30:31.512756: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:30:31.512780: - The battery is currently at 54% and is in eco mode for the next 11 hours.
2026-08-18 12:30:31.512799: - For the next 48 hours there will be no solar generation.
2026-08-18 12:30:31.512824: - You have enough battery to reach the next charge.
2026-08-18 12:30:31.512842: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-18 12:30:31.512860: 
2026-08-18 12:30:31.570985: Plan calculation took 26.66 seconds
2026-08-18 12:30:31.571261: Inverter 0: Type SK Sunsynk
2026-08-18 12:30:31.571344: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:30:31.571542: Reserve min: 7%, battery_min: 7%
2026-08-18 12:30:31.571614: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:30:31.576841: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 500W, current battery voltage 51.2V, grid power -54W, load power 554W, PV Power 0W
2026-08-18 12:30:31.577179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:30:31.577321: Inverter 0 scheduled charge enable is False
2026-08-18 12:30:31.577385: Inverter 0 charge windows currently []
2026-08-18 12:30:31.577521: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:30:31.577747: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:30:31.579275: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:30:31.579438: Inverter 0 scheduled discharge enable is False
2026-08-18 12:30:31.579768: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:30:31.579883: Inverter 0 discharge windows currently []
2026-08-18 12:30:31.580054: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:30:31.580208: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:30:31.580352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:30:31.674827: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 53%, target 100%
2026-08-18 12:30:31.675177: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:30:31.675334: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:30:31.675645: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:30:31.675805: No export window planned
2026-08-18 12:30:31.676064: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:30:31.676201: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:30:31.676468: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:30:31.676725: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:30:31.676876: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:30:31.677008: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:30:31.677218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.677347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.677543: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.677669: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.677787: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.677884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.677999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.678900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:30:31.679010: Inverter 0 count register writes 0
2026-08-18 12:30:31.711618: Total inverter register writes now 867
2026-08-18 12:30:31.768608: Info: Completed run status Demand
2026-08-18 12:30:31.775762: Info: record_status Demand
2026-08-18 12:30:31.790164: Saved current settings to /config/predbat_config.json
2026-08-18 12:30:31.790445: Compare, best tariff: current metric 129.87p
2026-08-18 12:30:33.688433: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0072 val_mae=0.0030 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-18 12:30:47.306992: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0065 val_mae=0.0033 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-18 12:31:01.857773: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0070 val_mae=0.0032 kWh val_bias=-0.0010 kWh (-2.2%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-18 12:31:03.950853: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:31:03.951076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:31:03.951130: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:31:03.951273: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:31:03.951313: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:31:03.951335: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:31:03.951427: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:31:14.396450: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0031 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 12:31:29.842588: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-18 12:31:43.570970: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-18 12:31:57.451061: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 12:32:11.664565: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0062 val_mae=0.0027 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-18 12:32:27.302946: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 12:32:41.476610: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0061 val_mae=0.0030 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0020 kWh ema_combined=0.0017 kWh
2026-08-18 12:32:55.269446: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0026 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 12:33:04.348161: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:33:04.348690: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:33:04.348847: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:33:04.349206: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:33:04.349367: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:33:04.349505: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:33:04.349627: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:33:09.801207: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0056 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 12:33:23.682124: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0054 val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 12:33:40.046574: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0061 val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 12:33:54.455140: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0056 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 12:34:06.778616: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 12:34:06.779557: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 12:34:06.779820: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 12:34:08.137974: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=-0.0000 kWh (-0.1%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-18 12:34:08.156894: ML Predictor: Curriculum training complete, final val_mae=0.0023 kWh
2026-08-18 12:34:08.165097: ML Component: Training successful, val_mae=0.0023 kWh
2026-08-18 12:34:08.287144: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 12:34:08.291248: ML Component: Generating predictions load data age 59.0 days, 17257 data points
2026-08-18 12:34:08.432806: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0582 max_dow {0: 0.0841305558120211, 1: 0.09033611109604439, 2: 0.10840937459506095, 3: 0.10177187534738331, 4: 0.1380656253574416, 5: 0.10271666708704498, 6: 0.10591666600729029}
2026-08-18 12:34:08.884671: ML Component: Generated 576 predictions (total 28.62 kWh over 48h)
2026-08-18 12:34:08.922415: ML Component: Prediction cycle completed
2026-08-18 12:34:09.044510: ML Component: Saved 17257 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 12:35:00.743701: --------------- PredBat - update at 2026-08-18 12:35:00+01:00 with clock skew 0 minutes, minutes now 755
2026-08-18 12:35:00.744543: Saved current settings to /config/predbat_config.json
2026-08-18 12:35:00.744653: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 12:35:00.744714: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:35:00.744771: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:35:00.762851: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:35:00.762963: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:35:00.763119: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:35:00.763597: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:35:00.763707: Predbat mode is set to Control charge & discharge
2026-08-18 12:35:00.936824: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:35:00.937332: Using load_power data to fill gaps in load_today data
2026-08-18 12:35:01.789757: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:35:01.789902: Zero load period starting at 2026-08-17T10:54:00+0100 (1541 minutes) for 189 minutes with base value 207.3667
2026-08-18 12:35:01.790827: Processing 721 30-minute periods for power integration
2026-08-18 12:35:01.941755: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:35:01.941886: Car charging hold False, threshold 6.0kWh
2026-08-18 12:35:01.941943: Current data so far today: load 7.6kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:35:01.957538: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:35:01.957629: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:35:01.958244: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:35:01.958305: Standing charge is set to 46.63p
2026-08-18 12:35:02.049467: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:35:02.049705: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:35:02.049862: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:35:02.050737: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:35:02.050828: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:35:02.055292: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:35:02.055526: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:35:02.090868: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:35:02.090968: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:35:02.092023: High export rate found rates in range 99p to -99p
2026-08-18 12:35:02.113901: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:35:02.113969: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:35:02.124225: Battery level now 8.62kWh, -1hr ago 9.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today 12.26p, rate_forward 6.87p
2026-08-18 12:35:02.124516: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:35:02.167089: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:35:02.167202: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:35:02.237784: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:35:02.263727: Today's load divergence 97.02%, in-day adjustment 95.03%, damping 0.95x, yesterday 92.68% today 97.17% blend 47.57%
2026-08-18 12:35:02.263984: Today's predicted so far 8.08kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 8.08kWh forecast extra.
2026-08-18 12:35:02.264026: Today's actual load so far 7.62kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 12:35:02.294158: Inverter 0: Type SK Sunsynk
2026-08-18 12:35:02.294240: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:35:02.294389: Reserve min: 7%, battery_min: 7%
2026-08-18 12:35:02.294466: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:35:02.294680: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 512W, current battery voltage 51.2V, grid power -52W, load power 564W, PV Power 0W
2026-08-18 12:35:02.294801: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:35:02.294908: Inverter 0 scheduled charge enable is False
2026-08-18 12:35:02.294936: Inverter 0 charge windows currently []
2026-08-18 12:35:02.294964: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:35:02.295059: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:35:02.295088: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:35:02.295117: Inverter 0 scheduled discharge enable is False
2026-08-18 12:35:02.295237: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:35:02.295269: Inverter 0 discharge windows currently []
2026-08-18 12:35:02.295288: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:35:02.295303: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:35:02.295318: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:35:02.344658: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:35:02.344744: Plan was last updated on 2026-08-18 12:30:00+01:00 and is now 5.0 minutes old
2026-08-18 12:35:02.344907: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:35:02.344940: Best export window [  ]
2026-08-18 12:35:02.345540: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:35:02.348045: Load divergence over 8.0 hours mean 421.58W, min 330.0W, max 675.0W, std dev 67.6W, divergence 8.02%
2026-08-18 12:35:02.364284: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:35:02.364360: LoadML is_calculating False
2026-08-18 12:35:02.364410: Creating pool of 12 processes to match your CPU count
2026-08-18 12:35:02.467690: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 627.13p, metric_keep 127.35kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.15kWh, PV 0.0kWh
2026-08-18 12:35:02.591335: Battery has 10.67 hours left - now at 8.48kWh
2026-08-18 12:35:02.649549: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 659.26p, metric_keep 129.31kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.27kWh, PV 0.0kWh
2026-08-18 12:35:02.731014: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 369.05p, metric_keep 8.04kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.27kWh, PV 0.0kWh
2026-08-18 12:35:02.808736: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 343.57p, metric_keep 3.03kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.15kWh, PV 0.0kWh
2026-08-18 12:35:02.808822: Saving plan best values to HA entities
2026-08-18 12:35:02.977779: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:35:02.982745: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:35:02.987705: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.23kWh, export 0.0kWh, metric 343.57p, metric10 369.05p
2026-08-18 12:35:03.067092: Marginal costs baseline metric (no standing charge): 296.9345
2026-08-18 12:35:03.301775: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:35:03.362605: Rate array import [{'start': 755, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 755, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:35:03.363202: - Your estimated bill for today is £1.69 and tomorrow is £1.94
2026-08-18 12:35:03.363266: - Import rates are very expensive (33.8p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:35:03.363288: - The battery is currently at 53% and is in eco mode for the next 10 hours.
2026-08-18 12:35:03.363302: - For the next 48 hours there will be no solar generation.
2026-08-18 12:35:03.363316: - You will run out of battery in 10 hours.
2026-08-18 12:35:03.363337: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:35:03.363351: 
2026-08-18 12:35:03.414767: Plan calculation took 1.07 seconds
2026-08-18 12:35:03.418425: No high rate period found
2026-08-18 12:35:03.465625: Import threshold used for optimisation was 8.0p
2026-08-18 12:35:03.515651: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:35:03.520949: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 53%, target 100%
2026-08-18 12:35:03.521128: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:35:03.521289: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:35:03.521592: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:35:03.521721: No export window planned
2026-08-18 12:35:03.521905: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:35:03.521948: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:35:03.522111: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:35:03.522342: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:35:03.522414: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:35:03.522528: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:35:03.522662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.522711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.522758: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.522814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.522874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.522936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.522999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:35:03.523419: Inverter 0 count register writes 0
2026-08-18 12:35:03.539541: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 12:35:03.544409: Total inverter register writes now 867
2026-08-18 12:35:03.574020: Info: Completed run status Demand
2026-08-18 12:35:03.580646: Info: record_status Demand
2026-08-18 12:35:03.587158: Saved current settings to /config/predbat_config.json
2026-08-18 12:35:03.587520: Compare, best tariff: current metric 129.87p
2026-08-18 12:35:33.687860: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:35:33.688205: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:35:33.688305: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:35:33.688562: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:35:33.688673: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:35:33.688715: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:35:33.688746: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:37:33.977437: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:37:33.977750: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:37:33.978007: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:37:33.978275: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:37:33.978323: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:37:33.978348: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:37:33.978366: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:39:34.211140: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:39:34.211387: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:39:34.211428: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:39:34.211543: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:39:34.211574: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:39:34.211592: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:39:34.211606: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:40:00.316319: --------------- PredBat - update at 2026-08-18 12:40:00+01:00 with clock skew 0 minutes, minutes now 760
2026-08-18 12:40:00.316926: Saved current settings to /config/predbat_config.json
2026-08-18 12:40:00.317024: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 12:40:00.317087: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:40:00.317178: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:40:00.335666: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:40:00.335779: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:40:00.335982: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:40:00.336719: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:40:00.336831: Predbat mode is set to Control charge & discharge
2026-08-18 12:40:00.494323: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:40:00.494469: Using load_power data to fill gaps in load_today data
2026-08-18 12:40:01.329616: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:40:01.329776: Zero load period starting at 2026-08-17T10:54:00+0100 (1546 minutes) for 189 minutes with base value 207.35
2026-08-18 12:40:01.330690: Processing 721 30-minute periods for power integration
2026-08-18 12:40:01.504203: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:40:01.504361: Car charging hold False, threshold 6.0kWh
2026-08-18 12:40:01.505164: Current data so far today: load 7.72kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:40:01.523353: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:40:01.523449: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:40:01.524390: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:40:01.524504: Standing charge is set to 46.63p
2026-08-18 12:40:01.597483: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:40:01.597674: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:40:01.597810: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:40:01.598651: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:40:01.598758: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:40:01.603065: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:40:01.603437: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 12:40:01.638586: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:40:01.638684: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 12:40:01.639704: High export rate found rates in range 99p to -99p
2026-08-18 12:40:01.662037: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 12:40:01.662110: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:40:01.672836: Battery level now 8.48kWh, -1hr ago 9.12kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 11.27p, rate_forward 6.87p
2026-08-18 12:40:01.673126: 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-18 12:40:01.719749: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:40:01.719929: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:40:01.809224: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:40:01.844064: Today's load divergence 97.46%, in-day adjustment 95.27%, damping 0.95x, yesterday 92.68% today 97.58% blend 47.22%
2026-08-18 12:40:01.844149: Today's predicted so far 8.11kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 8.11kWh forecast extra.
2026-08-18 12:40:01.844180: Today's actual load so far 7.71kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 12:40:01.879748: Inverter 0: Type SK Sunsynk
2026-08-18 12:40:01.879868: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:40:01.880187: Reserve min: 7%, battery_min: 7%
2026-08-18 12:40:01.880345: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:40:01.880792: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 494W, current battery voltage 51.2V, grid power -54W, load power 548W, PV Power 0W
2026-08-18 12:40:01.881037: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:40:01.881179: Inverter 0 scheduled charge enable is False
2026-08-18 12:40:01.881242: Inverter 0 charge windows currently []
2026-08-18 12:40:01.881286: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:40:01.881487: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:40:01.881543: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:40:01.881620: Inverter 0 scheduled discharge enable is False
2026-08-18 12:40:01.881848: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:40:01.881903: Inverter 0 discharge windows currently []
2026-08-18 12:40:01.881953: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:40:01.881998: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:40:01.882038: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:40:01.963565: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:40:01.963668: Plan was last updated on 2026-08-18 12:30:00+01:00 and is now 10.0 minutes old
2026-08-18 12:40:01.964009: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:40:01.964060: Best export window [  ]
2026-08-18 12:40:01.965004: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:40:01.968692: Load divergence over 8.0 hours mean 421.83W, min 345.0W, max 712.8W, std dev 64.74W, divergence 7.67%
2026-08-18 12:40:01.989341: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:40:01.989450: LoadML is_calculating False
2026-08-18 12:40:01.989513: Creating pool of 12 processes to match your CPU count
2026-08-18 12:40:02.100620: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 626.15p, metric_keep 127.18kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 12:40:02.211361: Battery has 10.67 hours left - now at 8.48kWh
2026-08-18 12:40:02.252104: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 658.28p, metric_keep 129.14kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.44kWh, PV 0.0kWh
2026-08-18 12:40:02.332370: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 370.76p, metric_keep 7.72kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.44kWh, PV 0.0kWh
2026-08-18 12:40:02.408380: predict best end_record 08-19 23:40:00, final soc 2.11kWh, metric 346.03p, metric_keep 2.71kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 12:40:02.408461: Saving plan best values to HA entities
2026-08-18 12:40:02.565133: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:40:02.570720: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:40:02.576648: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.46kWh, house 0.18kWh, export 0.0kWh, metric 346.03p, metric10 370.76p
2026-08-18 12:40:02.657535: Marginal costs baseline metric (no standing charge): 299.3922
2026-08-18 12:40:02.936718: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:40:03.023977: Rate array import [{'start': 760, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 760, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:40:03.024588: - Your estimated bill for today is £1.67 and tomorrow is £1.94
2026-08-18 12:40:03.024626: - Import rates are very expensive (33.8p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:40:03.024645: - The battery is currently at 53% and is in eco mode for the next 10 hours.
2026-08-18 12:40:03.024660: - For the next 48 hours there will be no solar generation.
2026-08-18 12:40:03.024674: - You have enough battery to reach the next charge.
2026-08-18 12:40:03.024688: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:40:03.024702: 
2026-08-18 12:40:03.092311: Plan calculation took 1.13 seconds
2026-08-18 12:40:03.097362: No high rate period found
2026-08-18 12:40:03.143714: Import threshold used for optimisation was 8.0p
2026-08-18 12:40:03.183055: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 12:40:03.187550: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 53%, target 100%
2026-08-18 12:40:03.187651: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:40:03.187726: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:40:03.187959: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:40:03.188039: No export window planned
2026-08-18 12:40:03.188146: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:40:03.188192: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:40:03.188324: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:40:03.188479: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:40:03.188531: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:40:03.188583: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:40:03.188668: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188696: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188718: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188748: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188788: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188813: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188954: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.188997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:03.189014: Inverter 0 count register writes 0
2026-08-18 12:40:03.215534: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 12:40:03.215683: Recompute is saving previous plan...
2026-08-18 12:40:03.216451: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 12:40:03.216512: Best export window [  ]
2026-08-18 12:40:03.217174: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:40:03.219632: Load divergence over 8.0 hours mean 421.83W, min 345.0W, max 712.8W, std dev 64.74W, divergence 7.67%
2026-08-18 12:40:03.234004: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:40:03.234075: LoadML is_calculating False
2026-08-18 12:40:03.234123: Creating pool of 12 processes to match your CPU count
2026-08-18 12:40:03.306829: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:40:03.307555: Optimise levels pass started at 2026-08-18 12:40:03
2026-08-18 12:40:03.307607: Optimise all windows, total charge 24 export 1
2026-08-18 12:40:03.634005: >> Region optimisation pass width 960 gives best_metric 379.29p, best_cost 438.72p, best_cycle 50.57kWh, best_import 37.06kWh
2026-08-18 12:40:03.762781: >> Region optimisation pass width 480 gives best_metric 379.29p, best_cost 438.72p, best_cycle 50.57kWh, best_import 37.06kWh
2026-08-18 12:40:04.018529: >> Region optimisation pass width 240 gives best_metric 379.29p, best_cost 438.72p, best_cycle 50.57kWh, best_import 37.06kWh
2026-08-18 12:40:04.839589: >> Region optimisation pass width 120 gives best_metric 378.93p, best_cost 438.78p, best_cycle 50.67kWh, best_import 37.06kWh
2026-08-18 12:40:04.839753: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 12:40:04.839804: Optimise levels pass ended at 2026-08-18 12:40:04, duration 1.5 seconds tried 77 combinations
2026-08-18 12:40:04.839862: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 378.93p, best_keep 2.38kWh, best_cycle 50.67kWh, best_carbon 0kg, best_import 37.06kWh
2026-08-18 12:40:04.854388: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.5, 14.5, 14.5, 14.5, 14.5, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:40:07.605766: Tweak plan optimisation started metric 287.52p, cost 294.93p
2026-08-18 12:40:07.933336: Tweak optimisation finished metric 287.52p, cost 294.93p, metric_keep 2.38kWh, cycle 33.25kWh, carbon 0kg, import 19.08kWh, changed 8 window(s)
2026-08-18 12:40:07.952839: Swap charge optimisation started metric 287.52p, cost 294.93p, min_improvement_swap 0.1p
2026-08-18 12:40:08.758194: Swap charge optimisation finished metric 287.52p, cost 294.93p
2026-08-18 12:40:08.896219: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 284.93p -> 284.88p, plan now metric 287.93p, cost 293.5p, cycle 33.56kWh, import 18.9kWh
2026-08-18 12:40:08.906328: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:40:08.906801: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:40:08.907129: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:40:08.907358: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 12:40:08.946052: Previous plan best metric is 287.55 (cost 295.3) and new plan best metric is 287.52 (cost 294.93)
2026-08-18 12:40:08.946246: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:40:08.946427: Plan valid is now true after recompute was False
2026-08-18 12:40:08.975368: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 624.56p, metric_keep 126.93kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.12kWh, PV 0.0kWh
2026-08-18 12:40:09.078047: Battery has 10.67 hours left - now at 8.48kWh
2026-08-18 12:40:09.122810: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 656.62p, metric_keep 128.89kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.24kWh, PV 0.0kWh
2026-08-18 12:40:09.195133: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 363.54p, metric_keep 7.7kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.24kWh, PV 0.0kWh
2026-08-18 12:40:09.278014: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 337.77p, metric_keep 2.71kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.12kWh, PV 0.0kWh
2026-08-18 12:40:09.278106: Saving plan best values to HA entities
2026-08-18 12:40:09.449003: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:40:09.454271: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:40:09.459598: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.18kWh, export 0.0kWh, metric 337.77p, metric10 363.54p
2026-08-18 12:40:09.530927: Marginal costs baseline metric (no standing charge): 291.1384
2026-08-18 12:40:09.833626: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 12:40:09.904866: Rate array import [{'start': 760, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 760, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:40:09.905545: - Your estimated bill for today is £1.67 and tomorrow is £1.94
2026-08-18 12:40:09.905587: - Import rates are very expensive (33.8p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:40:09.905610: - The battery is currently at 53% and is in eco mode for the next 10 hours.
2026-08-18 12:40:09.905650: - For the next 48 hours there will be no solar generation.
2026-08-18 12:40:09.905669: - You have enough battery to reach the next charge.
2026-08-18 12:40:09.905686: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:40:09.905703: 
2026-08-18 12:40:09.959123: Plan calculation took 6.74 seconds
2026-08-18 12:40:09.959429: Inverter 0: Type SK Sunsynk
2026-08-18 12:40:09.959476: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:40:09.959678: Reserve min: 7%, battery_min: 7%
2026-08-18 12:40:09.959753: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:40:09.960155: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 497W, current battery voltage 51.2V, grid power -55W, load power 549W, PV Power 0W
2026-08-18 12:40:09.960406: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:40:09.960511: Inverter 0 scheduled charge enable is False
2026-08-18 12:40:09.960546: Inverter 0 charge windows currently []
2026-08-18 12:40:09.960576: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:40:09.960683: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:40:09.960722: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:40:09.960758: Inverter 0 scheduled discharge enable is False
2026-08-18 12:40:09.960883: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:40:09.960921: Inverter 0 discharge windows currently []
2026-08-18 12:40:09.960944: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:40:09.960967: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:40:09.960985: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:40:10.017067: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 53%, target 100%
2026-08-18 12:40:10.017251: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:40:10.017374: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:40:10.017621: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:40:10.017736: No export window planned
2026-08-18 12:40:10.017913: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:40:10.017964: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:40:10.018176: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:40:10.018481: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:40:10.018556: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:40:10.018626: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:40:10.018770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.018843: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.018875: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.018908: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.018934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.018985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019012: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:40:10.019263: Inverter 0 count register writes 0
2026-08-18 12:40:10.040118: Total inverter register writes now 867
2026-08-18 12:40:10.071797: Info: Completed run status Demand
2026-08-18 12:40:10.077485: Info: record_status Demand
2026-08-18 12:40:10.084128: Saved current settings to /config/predbat_config.json
2026-08-18 12:40:10.084469: Compare, best tariff: current metric 129.87p
2026-08-18 12:40:49.189864: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:40:49.190084: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:40:49.190117: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:40:49.190244: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:40:49.190317: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:40:49.190348: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:40:49.190367: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:42:49.410477: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:42:49.410744: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:42:49.410803: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:42:49.410982: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:42:49.411024: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:42:49.411046: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:42:49.411065: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:44:49.621957: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:44:49.622182: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:44:49.622246: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:44:49.622425: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:44:49.622501: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:44:49.622543: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:44:49.622580: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:45:00.729948: --------------- PredBat - update at 2026-08-18 12:45:00+01:00 with clock skew 0 minutes, minutes now 765
2026-08-18 12:45:00.730800: Saved current settings to /config/predbat_config.json
2026-08-18 12:45:00.730955: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 12:45:00.731082: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:45:00.731166: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:45:00.749643: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:45:00.749767: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:45:00.749990: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:45:00.750608: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:45:00.750719: Predbat mode is set to Control charge & discharge
2026-08-18 12:45:00.914417: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:45:00.914535: Using load_power data to fill gaps in load_today data
2026-08-18 12:45:01.838929: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:45:01.839517: Zero load period starting at 2026-08-17T10:54:00+0100 (1551 minutes) for 189 minutes with base value 207.3333
2026-08-18 12:45:01.840709: Processing 721 30-minute periods for power integration
2026-08-18 12:45:02.025916: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:45:02.026030: Car charging hold False, threshold 6.0kWh
2026-08-18 12:45:02.026073: Current data so far today: load 7.75kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:45:02.041924: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:45:02.042010: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:45:02.042708: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:45:02.042786: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:45:02.042842: Standing charge is set to 46.63p
2026-08-18 12:45:02.135301: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:45:02.135572: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:45:02.135749: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:45:02.136865: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:45:02.136997: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:45:02.137113: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 12:45:02.142530: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:45:02.142859: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 12:45:02.186207: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:45:02.186321: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 12:45:02.187565: High export rate found rates in range 99p to -99p
2026-08-18 12:45:02.281293: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 12:45:02.281439: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:45:02.292790: Battery level now 8.48kWh, -1hr ago 8.96kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 11.27p, rate_forward 6.87p
2026-08-18 12:45:02.293166: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:45:02.346470: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:45:02.346602: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:45:02.435507: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:45:02.469259: Today's load divergence 97.26%, in-day adjustment 95.19%, damping 0.95x, yesterday 92.68% today 97.4% blend 46.88%
2026-08-18 12:45:02.469971: Today's predicted so far 8.15kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 8.15kWh forecast extra.
2026-08-18 12:45:02.470010: Today's actual load so far 7.72kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 12:45:02.510644: Octopus saving slots changed from [{'start': '2026-08-17T18:00:00+01:00', 'end': '2026-08-17T19:00:00+01:00', 'rate': 12.625, 'state': False}] to [{'start': '2026-08-17T18:00:00+01:00', 'end': '2026-08-17T19:00:00+01:00', 'rate': 12.625, 'state': False}, {'start': '2026-08-18T18:00:00+01:00', 'end': '2026-08-18T19:00:00+01:00', 'rate': 12.625, 'state': False}]
2026-08-18 12:45:02.511247: Sensor changes require a replan, will recompute the plan
2026-08-18 12:45:02.511451: Inverter 0: Type SK Sunsynk
2026-08-18 12:45:02.511519: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:45:02.511760: Reserve min: 7%, battery_min: 7%
2026-08-18 12:45:02.511880: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:45:02.512290: Inverter 0 SoC: 8.42kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 517W, current battery voltage 51.2V, grid power -56W, load power 571W, PV Power 0W
2026-08-18 12:45:02.512518: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:45:02.512661: Inverter 0 scheduled charge enable is False
2026-08-18 12:45:02.512706: Inverter 0 charge windows currently []
2026-08-18 12:45:02.512758: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:45:02.512911: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:45:02.512974: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:45:02.513043: Inverter 0 scheduled discharge enable is False
2026-08-18 12:45:02.513276: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:45:02.513333: Inverter 0 discharge windows currently []
2026-08-18 12:45:02.513394: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:45:02.513438: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:45:02.513461: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:45:02.587471: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:45:02.587550: Will recompute the plan as it is invalid
2026-08-18 12:45:02.587646: Recompute is saving previous plan...
2026-08-18 12:45:02.590745: Best charge window [ 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0% ]
2026-08-18 12:45:02.590842: Best export window [  ]
2026-08-18 12:45:02.591739: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:45:02.595124: Load divergence over 8.0 hours mean 421.79W, min 307.2W, max 753.0W, std dev 76.25W, divergence 9.04%
2026-08-18 12:45:02.613180: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:45:02.613261: LoadML is_calculating False
2026-08-18 12:45:02.613318: Creating pool of 12 processes to match your CPU count
2026-08-18 12:45:02.696978: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:45:02.698822: Optimise levels pass started at 2026-08-18 12:45:02
2026-08-18 12:45:02.698893: Optimise all windows, total charge 94 export 1
2026-08-18 12:45:03.077304: >> Region optimisation pass width 960 gives best_metric 379.24p, best_cost 438.2p, best_cycle 50.6kWh, best_import 37.05kWh
2026-08-18 12:45:03.275890: >> Region optimisation pass width 480 gives best_metric 379.24p, best_cost 438.2p, best_cycle 50.6kWh, best_import 37.05kWh
2026-08-18 12:45:03.620589: >> Region optimisation pass width 240 gives best_metric 379.24p, best_cost 438.2p, best_cycle 50.6kWh, best_import 37.05kWh
2026-08-18 12:45:04.658821: >> Region optimisation pass width 120 gives best_metric 378.87p, best_cost 438.26p, best_cycle 50.7kWh, best_import 37.05kWh
2026-08-18 12:45:04.659075: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 68
2026-08-18 12:45:04.659160: Optimise levels pass ended at 2026-08-18 12:45:04, duration 2.0 seconds tried 201 combinations
2026-08-18 12:45:04.659239: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 378.87p, best_keep 2.27kWh, best_cycle 50.7kWh, best_carbon 0kg, best_import 37.05kWh
2026-08-18 12:45:04.683117: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.5, 14.5, 14.5, 14.5, 14.5, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:45:11.197041: Tweak plan optimisation started metric 285.99p, cost 294.38p
2026-08-18 12:45:11.528808: Tweak optimisation finished metric 285.99p, cost 294.38p, metric_keep 1.42kWh, cycle 33.19kWh, carbon 0kg, import 19.07kWh, changed 8 window(s)
2026-08-18 12:45:11.553991: Swap charge optimisation started metric 285.99p, cost 294.38p, min_improvement_swap 0.1p
2026-08-18 12:45:18.345576: Swap charge optimisation finished metric 285.99p, cost 294.38p
2026-08-18 12:45:18.506038: Pruned 1 dead plan slot(s) in 14 trial(s), nominal metric 283.45p -> 283.41p, plan now metric 286.41p, cost 292.97p, cycle 33.51kWh, import 18.89kWh
2026-08-18 12:45:18.517961: Raw charge windows [ 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 9%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:45:18.518566: Unclipped charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 9%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:45:18.518903: Unfiltered charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 9%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:45:18.519157: Filtered charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 9%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:45:18.556775: Previous plan best metric is 286.86 (cost 294.76) and new plan best metric is 285.99 (cost 294.38)
2026-08-18 12:45:18.556966: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:45:18.557115: Plan valid is now true after recompute was False
2026-08-18 12:45:18.585422: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 624.09p, metric_keep 126.82kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.07kWh, PV 0.0kWh
2026-08-18 12:45:18.694583: Battery has 10.58 hours left - now at 8.42kWh
2026-08-18 12:45:18.741638: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 655.79p, metric_keep 128.73kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.18kWh, PV 0.0kWh
2026-08-18 12:45:18.823274: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 362.71p, metric_keep 7.57kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.18kWh, PV 0.0kWh
2026-08-18 12:45:18.903615: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 337.23p, metric_keep 2.61kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.07kWh, PV 0.0kWh
2026-08-18 12:45:18.903700: Saving plan best values to HA entities
2026-08-18 12:45:19.060759: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:45:19.064969: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:45:19.069411: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.16kWh, export 0.0kWh, metric 337.23p, metric10 362.71p
2026-08-18 12:45:19.130073: Marginal costs baseline metric (no standing charge): 290.5981
2026-08-18 12:45:19.420268: Marginal energy costs matrix computed: min=8.0 max=35.86
2026-08-18 12:45:19.492141: Rate array import [{'start': 765, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 765, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:45:19.493488: - Your estimated bill for today is £1.67 and tomorrow is £1.94
2026-08-18 12:45:19.493551: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:45:19.493659: - The battery is currently at 53% and is in eco mode for the next 10 hours.
2026-08-18 12:45:19.493687: - For the next 48 hours there will be no solar generation.
2026-08-18 12:45:19.493706: - You have enough battery to reach the next charge.
2026-08-18 12:45:19.493744: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:45:19.493777: 
2026-08-18 12:45:19.549281: Plan calculation took 16.96 seconds
2026-08-18 12:45:19.553923: Saved plan to storage
2026-08-18 12:45:19.557273: No high rate period found
2026-08-18 12:45:19.604504: Import threshold used for optimisation was 8.0p
2026-08-18 12:45:19.661081: Low import rate windows [0: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 1: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 2: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 3: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 4: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 5: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 6: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 7: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 8: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 9: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 10: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 11: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 12: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 13: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 14: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 15: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 16: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 17: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 18: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 19: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 27: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 28: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 29: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 30: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 31: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 32: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 33: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 34: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 35: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 36: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 37: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 38: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 39: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 40: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 41: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 42: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 43: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 44: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 45: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 46: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 47: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 48: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 49: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 50: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 51: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 52: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 53: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 54: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 55: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 56: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 57: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 58: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 59: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 60: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 61: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 62: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 63: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 64: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 65: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 66: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 67: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 68: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 69: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 70: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 71: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 72: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 73: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 74: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 75: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 76: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 77: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 78: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 79: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 80: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 81: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 82: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 83: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 84: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 85: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 86: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 87: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 88: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 89: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 90: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 91: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 92: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 93: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 94: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75]
2026-08-18 12:45:19.667531: Inverter 0: Type SK Sunsynk
2026-08-18 12:45:19.667628: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:45:19.667838: Reserve min: 7%, battery_min: 7%
2026-08-18 12:45:19.667949: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:45:19.668285: Inverter 0 SoC: 8.42kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 517W, current battery voltage 51.2V, grid power -56W, load power 571W, PV Power 0W
2026-08-18 12:45:19.668515: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:45:19.668628: Inverter 0 scheduled charge enable is False
2026-08-18 12:45:19.668681: Inverter 0 charge windows currently []
2026-08-18 12:45:19.668716: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:45:19.668836: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:45:19.668875: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:45:19.668913: Inverter 0 scheduled discharge enable is False
2026-08-18 12:45:19.669037: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:45:19.669074: Inverter 0 discharge windows currently []
2026-08-18 12:45:19.669097: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:45:19.669122: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:45:19.669139: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:45:19.739455: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 53%, target 100%
2026-08-18 12:45:19.739633: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:45:19.739735: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:45:19.740047: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:45:19.740164: No export window planned
2026-08-18 12:45:19.740317: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:45:19.740401: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:45:19.740655: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:45:19.740879: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:45:19.740968: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:45:19.741065: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:45:19.741212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.741288: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.741352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.741404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.741455: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.741522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.741584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:45:19.742264: Inverter 0 count register writes 0
2026-08-18 12:45:19.769589: Total inverter register writes now 867
2026-08-18 12:45:19.805645: Info: Completed run status Demand
2026-08-18 12:45:19.812189: Info: record_status Demand
2026-08-18 12:45:19.818776: Saved current settings to /config/predbat_config.json
2026-08-18 12:45:19.818991: Compare, best tariff: current metric 129.87p
2026-08-18 12:46:03.927736: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:46:03.928054: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:46:03.928104: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:46:03.928278: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:46:03.928322: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:46:03.928361: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:46:03.928384: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:48:04.143657: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:48:04.143961: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:48:04.144036: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:48:04.144239: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:48:04.144284: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:48:04.144316: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:48:04.144352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:50:00.355877: --------------- PredBat - update at 2026-08-18 12:50:00+01:00 with clock skew 0 minutes, minutes now 770
2026-08-18 12:50:00.356544: Saved current settings to /config/predbat_config.json
2026-08-18 12:50:00.356639: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 12:50:00.356700: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:50:00.356753: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:50:00.372945: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:50:00.373061: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:50:00.373242: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:50:00.373731: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:50:00.373844: Predbat mode is set to Control charge & discharge
2026-08-18 12:50:00.554085: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:50:00.554204: Using load_power data to fill gaps in load_today data
2026-08-18 12:50:01.449335: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:50:01.449506: Zero load period starting at 2026-08-17T10:54:00+0100 (1556 minutes) for 189 minutes with base value 207.3167
2026-08-18 12:50:01.450451: Processing 721 30-minute periods for power integration
2026-08-18 12:50:01.602562: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:50:01.602670: Car charging hold False, threshold 6.0kWh
2026-08-18 12:50:01.602705: Current data so far today: load 7.85kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:50:01.616026: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:50:01.616109: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:50:01.616820: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:50:01.616919: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:50:01.616975: Standing charge is set to 46.63p
2026-08-18 12:50:01.695031: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:50:01.695339: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:50:01.695523: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:50:01.696454: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:50:01.696565: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:50:01.696699: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 12:50:01.700992: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:50:01.701300: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 12:50:01.736399: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:50:01.736748: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 12:50:01.737856: High export rate found rates in range 99p to -99p
2026-08-18 12:50:01.822514: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 12:50:01.822631: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:50:01.834804: Battery level now 8.42kWh, -1hr ago 8.86kWh, at midnight 6.84kWh, battery value change in the last hour -3.08p, change today 10.83p, rate_forward 6.87p
2026-08-18 12:50:01.835233: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:50:01.893715: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:50:01.893834: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:50:01.970588: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:50:02.011287: Today's load divergence 97.48%, in-day adjustment 95.32%, damping 0.95x, yesterday 92.68% today 97.61% blend 46.53%
2026-08-18 12:50:02.011402: Today's predicted so far 8.2kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 8.2kWh forecast extra.
2026-08-18 12:50:02.011437: Today's actual load so far 7.81kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 12:50:02.050282: Inverter 0: Type SK Sunsynk
2026-08-18 12:50:02.050393: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:50:02.050624: Reserve min: 7%, battery_min: 7%
2026-08-18 12:50:02.050732: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:50:02.051091: Inverter 0 SoC: 8.42kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 490W, current battery voltage 51.2V, grid power -54W, load power 545W, PV Power 0W
2026-08-18 12:50:02.051318: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:50:02.051466: Inverter 0 scheduled charge enable is False
2026-08-18 12:50:02.051523: Inverter 0 charge windows currently []
2026-08-18 12:50:02.051559: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:50:02.051695: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:50:02.051737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:50:02.051782: Inverter 0 scheduled discharge enable is False
2026-08-18 12:50:02.052007: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:50:02.052068: Inverter 0 discharge windows currently []
2026-08-18 12:50:02.052108: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:50:02.052130: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:50:02.052148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:50:02.111262: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:50:02.111359: Plan was last updated on 2026-08-18 12:45:00+01:00 and is now 5.0 minutes old
2026-08-18 12:50:02.111588: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:50:02.111629: Best export window [  ]
2026-08-18 12:50:02.112549: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:50:02.115716: Load divergence over 8.0 hours mean 421.79W, min 316.8W, max 620.4W, std dev 66.34W, divergence 7.86%
2026-08-18 12:50:02.132098: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:50:02.132172: LoadML is_calculating False
2026-08-18 12:50:02.132224: Creating pool of 12 processes to match your CPU count
2026-08-18 12:50:02.240067: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.25p, metric_keep 126.49kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.19kWh, PV 0.0kWh
2026-08-18 12:50:02.355509: Battery has 10.58 hours left - now at 8.42kWh
2026-08-18 12:50:02.396231: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 654.12p, metric_keep 128.42kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.31kWh, PV 0.0kWh
2026-08-18 12:50:02.470590: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 363.76p, metric_keep 7.11kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.31kWh, PV 0.0kWh
2026-08-18 12:50:02.535611: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 338.87p, metric_keep 2.14kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.19kWh, PV 0.0kWh
2026-08-18 12:50:02.535684: Saving plan best values to HA entities
2026-08-18 12:50:02.681853: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:50:02.688154: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 12:50:02.692756: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.09kWh, export 0.0kWh, metric 338.87p, metric10 363.76p
2026-08-18 12:50:02.759008: Marginal costs baseline metric (no standing charge): 292.2329
2026-08-18 12:50:02.978303: Marginal energy costs matrix computed: min=8.0 max=35.87
2026-08-18 12:50:03.048786: Rate array import [{'start': 770, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 770, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:50:03.049430: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 12:50:03.049475: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:50:03.049532: - The battery is currently at 53% and is in eco mode for the next 10 hours.
2026-08-18 12:50:03.049559: - For the next 48 hours there will be no solar generation.
2026-08-18 12:50:03.049575: - You have enough battery to reach the next charge.
2026-08-18 12:50:03.049588: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:50:03.049635: 
2026-08-18 12:50:03.139201: Plan calculation took 1.03 seconds
2026-08-18 12:50:03.144714: No high rate period found
2026-08-18 12:50:03.219343: Import threshold used for optimisation was 8.0p
2026-08-18 12:50:03.269398: Low import rate windows [0: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 1: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 2: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 3: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 4: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 5: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 6: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 7: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 8: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 9: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 10: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 11: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 12: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 13: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 14: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 15: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 16: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 17: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 18: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 19: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 27: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 28: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 29: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 30: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 31: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 32: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 33: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 34: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 35: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 36: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 37: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 38: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 39: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 40: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 41: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 42: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 43: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 44: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 45: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 46: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 47: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 48: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 49: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 50: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 51: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 52: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 53: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 54: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 55: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 56: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 57: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 58: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 59: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 60: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 61: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 62: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 63: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 64: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 65: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 66: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 67: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 68: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 69: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 70: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 71: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 72: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 73: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 74: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 75: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 76: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 77: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 78: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 79: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 80: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 81: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 82: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 83: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 84: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 85: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 86: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 87: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 88: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 89: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 90: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 91: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 92: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 93: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 94: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75]
2026-08-18 12:50:03.274269: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 53%, target 100%
2026-08-18 12:50:03.274364: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:50:03.274453: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:50:03.274659: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:50:03.274735: No export window planned
2026-08-18 12:50:03.274837: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:50:03.274866: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:50:03.274971: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:50:03.275119: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:50:03.275168: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:50:03.275226: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:50:03.275301: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275358: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275397: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275656: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:50:03.275697: Inverter 0 count register writes 0
2026-08-18 12:50:03.290586: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 12:50:03.296093: Total inverter register writes now 867
2026-08-18 12:50:03.326676: Info: Completed run status Demand
2026-08-18 12:50:03.332356: Info: record_status Demand
2026-08-18 12:50:03.337647: Saved current settings to /config/predbat_config.json
2026-08-18 12:50:03.337894: Compare, best tariff: current metric 129.87p
2026-08-18 12:50:34.430293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:50:34.430572: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:50:34.430627: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:50:34.430810: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:50:34.430864: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:50:34.430912: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:50:34.430980: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:52:48.667065: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:52:48.667369: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:52:48.667446: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:52:48.667636: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:52:48.667680: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:52:48.667729: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:52:48.667772: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:54:48.891382: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:54:48.891667: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:54:48.891750: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:54:48.892015: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:54:48.892074: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:54:48.892117: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:54:48.892178: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:55:00.974759: --------------- PredBat - update at 2026-08-18 12:55:00+01:00 with clock skew 0 minutes, minutes now 775
2026-08-18 12:55:00.975472: Saved current settings to /config/predbat_config.json
2026-08-18 12:55:00.975593: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 12:55:00.975663: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 12:55:00.975731: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 12:55:00.997727: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 12:55:00.997882: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 12:55:00.998107: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 12:55:00.998807: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 12:55:00.998985: Predbat mode is set to Control charge & discharge
2026-08-18 12:55:01.163819: Found 21602 load_today datapoints going back 28 days
2026-08-18 12:55:01.163977: Using load_power data to fill gaps in load_today data
2026-08-18 12:55:01.886957: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:55:01.887110: Zero load period starting at 2026-08-17T10:54:00+0100 (1561 minutes) for 189 minutes with base value 207.3
2026-08-18 12:55:01.888072: Processing 721 30-minute periods for power integration
2026-08-18 12:55:02.039989: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 12:55:02.040112: Car charging hold False, threshold 6.0kWh
2026-08-18 12:55:02.040167: Current data so far today: load 7.9kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 12:55:02.053754: Car 0 using Octopus Intelligent is unplugged
2026-08-18 12:55:02.053847: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 12:55:02.054483: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:55:02.054552: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 12:55:02.054596: Standing charge is set to 46.63p
2026-08-18 12:55:02.142815: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:55:02.143358: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:55:02.143561: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 12:55:02.144837: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 12:55:02.144940: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 12:55:02.145036: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 12:55:02.150432: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 12:55:02.150877: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 12:55:02.193488: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 12:55:02.193593: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 12:55:02.194686: High export rate found rates in range 99p to -99p
2026-08-18 12:55:02.270316: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 12:55:02.270423: Car 0 on Octopus Intelligent, no active plan
2026-08-18 12:55:02.279840: Battery level now 8.42kWh, -1hr ago 8.8kWh, at midnight 6.84kWh, battery value change in the last hour -2.64p, change today 10.83p, rate_forward 6.87p
2026-08-18 12:55:02.280255: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 12:55:02.333832: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 12:55:02.333980: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:55:02.437837: Using weighted-bucket historical load forecast over 14 days
2026-08-18 12:55:02.469958: Today's load divergence 97.49%, in-day adjustment 95.34%, damping 0.95x, yesterday 92.68% today 97.62% blend 46.18%
2026-08-18 12:55:02.470047: Today's predicted so far 8.25kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 8.25kWh forecast extra.
2026-08-18 12:55:02.470080: Today's actual load so far 7.86kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 12:55:02.500615: Inverter 0: Type SK Sunsynk
2026-08-18 12:55:02.500688: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:55:02.500833: Reserve min: 7%, battery_min: 7%
2026-08-18 12:55:02.500896: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:55:02.501124: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 479W, current battery voltage 51.2V, grid power -58W, load power 534W, PV Power 0W
2026-08-18 12:55:02.501267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:55:02.501338: Inverter 0 scheduled charge enable is False
2026-08-18 12:55:02.501368: Inverter 0 charge windows currently []
2026-08-18 12:55:02.501413: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:55:02.501521: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:55:02.501549: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:55:02.501579: Inverter 0 scheduled discharge enable is False
2026-08-18 12:55:02.501684: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:55:02.501714: Inverter 0 discharge windows currently []
2026-08-18 12:55:02.501733: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:55:02.501748: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:55:02.501765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:55:02.550994: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 12:55:02.551080: Plan was last updated on 2026-08-18 12:45:00+01:00 and is now 10.0 minutes old
2026-08-18 12:55:02.551251: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 12:55:02.551286: Best export window [  ]
2026-08-18 12:55:02.552020: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:55:02.554509: Load divergence over 8.0 hours mean 421.81W, min 324.0W, max 601.2W, std dev 64.51W, divergence 7.65%
2026-08-18 12:55:02.571826: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:55:02.573186: LoadML is_calculating False
2026-08-18 12:55:02.573249: Creating pool of 12 processes to match your CPU count
2026-08-18 12:55:02.699560: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 624.53p, metric_keep 126.76kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.28kWh, PV 0.0kWh
2026-08-18 12:55:02.866255: Battery has 10.42 hours left - now at 8.32kWh
2026-08-18 12:55:02.907106: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 656.34p, metric_keep 128.62kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.4kWh, PV 0.0kWh
2026-08-18 12:55:02.970820: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 368.82p, metric_keep 7.22kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.4kWh, PV 0.0kWh
2026-08-18 12:55:03.040909: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 343.93p, metric_keep 2.33kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.28kWh, PV 0.0kWh
2026-08-18 12:55:03.040982: Saving plan best values to HA entities
2026-08-18 12:55:03.188322: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:55:03.193959: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:55:03.199385: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.45kWh, house 0.12kWh, export 0.0kWh, metric 343.93p, metric10 368.82p
2026-08-18 12:55:03.366308: Marginal costs baseline metric (no standing charge): 297.3007
2026-08-18 12:55:03.654271: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 12:55:03.719304: Rate array import [{'start': 775, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 775, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:55:03.719956: - Your estimated bill for today is £1.66 and tomorrow is £1.94
2026-08-18 12:55:03.720000: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:55:03.720020: - The battery is currently at 52% and is in eco mode for the next 10 hours.
2026-08-18 12:55:03.720047: - For the next 48 hours there will be no solar generation.
2026-08-18 12:55:03.720077: - You have enough battery to reach the next charge.
2026-08-18 12:55:03.720094: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:55:03.720109: 
2026-08-18 12:55:03.770846: Plan calculation took 1.22 seconds
2026-08-18 12:55:03.774273: No high rate period found
2026-08-18 12:55:03.826239: Import threshold used for optimisation was 8.0p
2026-08-18 12:55:03.880147: Low import rate windows [0: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 1: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 2: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 3: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 4: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 5: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 6: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 7: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 8: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 9: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 10: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 11: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 12: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 13: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 14: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 15: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 16: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 17: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 18: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 19: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 27: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 28: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 29: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 30: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 31: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 32: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 33: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 34: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 35: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 36: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 37: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 38: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 39: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 40: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 41: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 42: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 43: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 44: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 45: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 46: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 47: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 48: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 49: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 50: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 51: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 52: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 53: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 54: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 55: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 56: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 57: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 58: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 59: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 60: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 61: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 62: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 63: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 64: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 65: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 66: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 67: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 68: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 69: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 70: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 71: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 72: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 73: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 74: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 75: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 76: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 77: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 78: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 79: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 80: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 81: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 82: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 83: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 84: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 85: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 86: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 87: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 88: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 89: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 90: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 91: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 92: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 93: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 94: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75]
2026-08-18 12:55:03.886330: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 52%, target 100%
2026-08-18 12:55:03.886470: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:55:03.886569: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:55:03.886821: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:55:03.886917: No export window planned
2026-08-18 12:55:03.887044: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:55:03.887079: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:55:03.887232: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:55:03.887428: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:55:03.887490: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:55:03.887558: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:55:03.887650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887788: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887813: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.887958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888071: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888106: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:03.888212: Inverter 0 count register writes 0
2026-08-18 12:55:03.904299: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 12:55:03.904469: Recompute is saving previous plan...
2026-08-18 12:55:03.909664: Best charge window [ 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0% ]
2026-08-18 12:55:03.909816: Best export window [  ]
2026-08-18 12:55:03.911110: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 12:55:03.915317: Load divergence over 8.0 hours mean 421.81W, min 324.0W, max 601.2W, std dev 64.51W, divergence 7.65%
2026-08-18 12:55:03.931853: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 12:55:03.931965: LoadML is_calculating False
2026-08-18 12:55:03.932024: Creating pool of 12 processes to match your CPU count
2026-08-18 12:55:04.009228: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 12:55:04.011290: Optimise levels pass started at 2026-08-18 12:55:04
2026-08-18 12:55:04.011345: Optimise all windows, total charge 94 export 1
2026-08-18 12:55:04.386715: >> Region optimisation pass width 960 gives best_metric 378.6p, best_cost 438.9p, best_cycle 50.95kWh, best_import 37.27kWh
2026-08-18 12:55:04.638470: >> Region optimisation pass width 480 gives best_metric 378.6p, best_cost 438.9p, best_cycle 50.95kWh, best_import 37.27kWh
2026-08-18 12:55:04.967237: >> Region optimisation pass width 240 gives best_metric 378.6p, best_cost 438.9p, best_cycle 50.95kWh, best_import 37.27kWh
2026-08-18 12:55:05.852076: >> Region optimisation pass width 120 gives best_metric 378.6p, best_cost 438.9p, best_cycle 50.95kWh, best_import 37.27kWh
2026-08-18 12:55:05.852364: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 68
2026-08-18 12:55:05.852623: Optimise levels pass ended at 2026-08-18 12:55:05, duration 1.8 seconds tried 207 combinations
2026-08-18 12:55:05.852711: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 378.6p, best_keep 1.96kWh, best_cycle 50.95kWh, best_carbon 0kg, best_import 37.27kWh
2026-08-18 12:55:05.872072: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 12:55:12.626106: Tweak plan optimisation started metric 284.58p, cost 293.27p
2026-08-18 12:55:12.948695: Tweak optimisation finished metric 284.58p, cost 293.27p, metric_keep 1.4kWh, cycle 33.06kWh, carbon 0kg, import 19.06kWh, changed 8 window(s)
2026-08-18 12:55:12.970753: Swap charge optimisation started metric 284.58p, cost 293.27p, min_improvement_swap 0.1p
2026-08-18 12:55:19.108831: Swap charge optimisation finished metric 284.58p, cost 293.27p
2026-08-18 12:55:19.227863: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 282.05p -> 281.9p, plan now metric 285.06p, cost 291.25p, cycle 33.33kWh, import 18.81kWh
2026-08-18 12:55:19.237564: Raw charge windows [ 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:55:19.237977: Unclipped charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:55:19.238168: Unfiltered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:55:19.238306: Filtered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 12:55:19.268633: Previous plan best metric is 285.15 (cost 293.27) and new plan best metric is 284.58 (cost 293.27)
2026-08-18 12:55:19.268796: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 12:55:19.268942: Plan valid is now true after recompute was False
2026-08-18 12:55:19.290958: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 623.0p, metric_keep 126.51kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.09kWh, PV 0.0kWh
2026-08-18 12:55:19.386933: Battery has 10.42 hours left - now at 8.32kWh
2026-08-18 12:55:19.426089: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 654.73p, metric_keep 128.37kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.2kWh, PV 0.0kWh
2026-08-18 12:55:19.487153: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 361.67p, metric_keep 7.2kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.2kWh, PV 0.0kWh
2026-08-18 12:55:19.551137: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 335.74p, metric_keep 2.33kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.09kWh, PV 0.0kWh
2026-08-18 12:55:19.551215: Saving plan best values to HA entities
2026-08-18 12:55:19.742040: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 12:55:19.749294: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 12:55:19.755287: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.12kWh, export 0.0kWh, metric 335.74p, metric10 361.67p
2026-08-18 12:55:19.831713: Marginal costs baseline metric (no standing charge): 289.1052
2026-08-18 12:55:20.117811: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 12:55:20.185187: Rate array import [{'start': 775, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 775, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 12:55:20.185870: - Your estimated bill for today is £1.66 and tomorrow is £1.94
2026-08-18 12:55:20.185913: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 12:55:20.185936: - The battery is currently at 52% and is in eco mode for the next 10 hours.
2026-08-18 12:55:20.185956: - For the next 48 hours there will be no solar generation.
2026-08-18 12:55:20.185978: - You have enough battery to reach the next charge.
2026-08-18 12:55:20.185995: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 12:55:20.186020: 
2026-08-18 12:55:20.241904: Plan calculation took 16.34 seconds
2026-08-18 12:55:20.242219: Inverter 0: Type SK Sunsynk
2026-08-18 12:55:20.242263: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 12:55:20.242484: Reserve min: 7%, battery_min: 7%
2026-08-18 12:55:20.242561: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 12:55:20.242903: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 490W, current battery voltage 51.2V, grid power -51W, load power 546W, PV Power 0W
2026-08-18 12:55:20.243119: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:55:20.243221: Inverter 0 scheduled charge enable is False
2026-08-18 12:55:20.243257: Inverter 0 charge windows currently []
2026-08-18 12:55:20.243286: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 12:55:20.243418: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:55:20.243465: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:55:20.243502: Inverter 0 scheduled discharge enable is False
2026-08-18 12:55:20.243638: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:55:20.243696: Inverter 0 discharge windows currently []
2026-08-18 12:55:20.243720: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:55:20.243743: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:55:20.243761: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:55:20.295976: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 52%, target 100%
2026-08-18 12:55:20.296099: Inverter 0 disabled charge window while waiting for schedule (now 08-18 12:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 12:55:20.296167: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:55:20.296368: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:55:20.296470: No export window planned
2026-08-18 12:55:20.296609: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 12:55:20.296644: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 12:55:20.296782: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 12:55:20.296942: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 12:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 12:55:20.296990: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 12:55:20.297068: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 12:55:20.297177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297217: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297297: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297348: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297603: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 12:55:20.297800: Inverter 0 count register writes 0
2026-08-18 12:55:20.316483: Total inverter register writes now 867
2026-08-18 12:55:20.343677: Info: Completed run status Demand
2026-08-18 12:55:20.349564: Info: record_status Demand
2026-08-18 12:55:20.355093: Saved current settings to /config/predbat_config.json
2026-08-18 12:55:20.355373: Compare, best tariff: current metric 129.87p
2026-08-18 12:56:04.473024: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:56:04.473285: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:56:04.473331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:56:04.473467: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:56:04.473502: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:56:04.473535: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:56:04.473580: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:56:18.718678: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 12:56:18.885838: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 12:58:18.705793: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 12:58:18.706013: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 12:58:18.706056: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 12:58:18.706184: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 12:58:18.706222: Note: Inverter does not support discharge freeze - disabled
2026-08-18 12:58:18.706243: Note: Inverter does not support charge freeze - disabled
2026-08-18 12:58:18.706261: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 12:59:10.336793: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 12:59:11.380430: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 12:59:11.380594: Zero load period starting at 2026-08-17T10:54:00+0100 (1561 minutes) for 189 minutes with base value 397.8
2026-08-18 12:59:11.381566: Processing 1345 30-minute periods for power integration
2026-08-18 12:59:11.468146: ML Component: Car charging hold False, car energy reported load False
2026-08-18 12:59:11.549727: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 12:59:11.655589: ML Temperature data points: 49626
2026-08-18 12:59:11.937185: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 12:59:11.977518: ML Component: Data fetch completed, load data age 59.0 days, 17266 data points
2026-08-18 12:59:11.977634: ML Component: No training needed, model age is 0.35 hours
2026-08-18 12:59:11.977693: ML Component: Generating predictions load data age 59.0 days, 17266 data points
2026-08-18 12:59:12.119037: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0406 max_dow {0: 0.08701944450702932, 1: 0.09171111095034414, 2: 0.10702187459506095, 3: 0.1005312503473833, 4: 0.13755000035744158, 5: 0.09631666693902677, 6: 0.10488888886421918}
2026-08-18 12:59:12.602192: ML Component: Generated 576 predictions (total 28.78 kWh over 48h)
2026-08-18 12:59:12.639954: ML Component: Prediction cycle completed
2026-08-18 12:59:12.759423: ML Component: Saved 17266 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 13:00:00.920598: --------------- PredBat - update at 2026-08-18 13:00:00+01:00 with clock skew 0 minutes, minutes now 780
2026-08-18 13:00:00.921632: Saved current settings to /config/predbat_config.json
2026-08-18 13:00:00.921786: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 13:00:00.921906: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:00:00.922041: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:00:00.939834: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:00:00.940038: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:00:00.940212: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:00:00.940729: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:00:00.940847: Predbat mode is set to Control charge & discharge
2026-08-18 13:00:01.131090: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:00:01.131207: Using load_power data to fill gaps in load_today data
2026-08-18 13:00:01.923972: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:00:01.924141: Zero load period starting at 2026-08-17T10:54:00+0100 (1566 minutes) for 189 minutes with base value 207.2833
2026-08-18 13:00:01.925067: Processing 721 30-minute periods for power integration
2026-08-18 13:00:02.090922: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:00:02.091056: Car charging hold False, threshold 6.0kWh
2026-08-18 13:00:02.091113: Current data so far today: load 7.95kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:00:02.105297: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:00:02.105385: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:00:02.105996: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:00:02.106065: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:00:02.106115: Standing charge is set to 46.63p
2026-08-18 13:00:02.181134: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:00:02.181365: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:00:02.181580: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:00:02.182533: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:00:02.182638: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:00:02.182772: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:00:02.187247: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:00:02.187569: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:00:02.222852: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:00:02.222972: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:00:02.224170: High export rate found rates in range 99p to -99p
2026-08-18 13:00:02.302769: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:00:02.302898: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:00:02.314457: Battery level now 8.32kWh, -1hr ago 8.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 10.17p, rate_forward 6.87p
2026-08-18 13:00:02.314849: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:00:02.376962: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 13:00:02.377176: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:00:02.499524: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:00:02.532794: Today's load divergence 96.99%, in-day adjustment 95.1%, damping 0.95x, yesterday 92.68% today 97.15% blend 45.83%
2026-08-18 13:00:02.532890: Today's predicted so far 8.4kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 8.4kWh forecast extra.
2026-08-18 13:00:02.532922: Today's actual load so far 7.93kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 13:00:02.565749: Inverter 0: Type SK Sunsynk
2026-08-18 13:00:02.565828: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:00:02.565995: Reserve min: 7%, battery_min: 7%
2026-08-18 13:00:02.566065: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:00:02.566344: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 519W, current battery voltage 51.2V, grid power -54W, load power 573W, PV Power 0W
2026-08-18 13:00:02.566537: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:00:02.566628: Inverter 0 scheduled charge enable is False
2026-08-18 13:00:02.566664: Inverter 0 charge windows currently []
2026-08-18 13:00:02.566691: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:00:02.566795: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:00:02.566830: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:00:02.566865: Inverter 0 scheduled discharge enable is False
2026-08-18 13:00:02.566984: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:00:02.567019: Inverter 0 discharge windows currently []
2026-08-18 13:00:02.567041: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:00:02.567066: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:00:02.567083: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:00:02.630890: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:00:02.630983: Plan was last updated on 2026-08-18 12:55:00+01:00 and is now 5.0 minutes old
2026-08-18 13:00:02.631185: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:00:02.631227: Best export window [  ]
2026-08-18 13:00:02.632081: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:00:02.635234: Load divergence over 8.0 hours mean 423.37W, min 335.4W, max 633.6W, std dev 58.04W, divergence 6.85%
2026-08-18 13:00:02.657667: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:00:02.657774: LoadML is_calculating False
2026-08-18 13:00:02.657831: Creating pool of 12 processes to match your CPU count
2026-08-18 13:00:02.772273: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 620.26p, metric_keep 126.07kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.14kWh, PV 0.0kWh
2026-08-18 13:00:02.952384: Battery has 10.42 hours left - now at 8.32kWh
2026-08-18 13:00:03.000181: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 651.89p, metric_keep 127.94kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.25kWh, PV 0.0kWh
2026-08-18 13:00:03.071367: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 361.67p, metric_keep 6.63kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.25kWh, PV 0.0kWh
2026-08-18 13:00:03.143784: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 336.65p, metric_keep 1.75kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.14kWh, PV 0.0kWh
2026-08-18 13:00:03.143856: Saving plan best values to HA entities
2026-08-18 13:00:03.310009: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:00:03.315799: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:00:03.321405: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.02kWh, export 0.0kWh, metric 336.65p, metric10 361.67p
2026-08-18 13:00:03.414937: Marginal costs baseline metric (no standing charge): 290.0191
2026-08-18 13:00:03.722041: Marginal energy costs matrix computed: min=8.0 max=35.87
2026-08-18 13:00:03.799786: Rate array import [{'start': 780, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 780, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:00:03.800506: - Your estimated bill for today is £1.62 and tomorrow is £1.94
2026-08-18 13:00:03.800556: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:00:03.800590: - The battery is currently at 52% and is in eco mode for the next 10 hours.
2026-08-18 13:00:03.800619: - For the next 48 hours there will be no solar generation.
2026-08-18 13:00:03.800655: - You have enough battery to reach the next charge.
2026-08-18 13:00:03.800675: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:00:03.800697: 
2026-08-18 13:00:03.857489: Plan calculation took 1.23 seconds
2026-08-18 13:00:03.860866: No high rate period found
2026-08-18 13:00:03.917424: Import threshold used for optimisation was 8.0p
2026-08-18 13:00:03.977818: Low import rate windows [0: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 1: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 2: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 3: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 4: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 5: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 6: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 7: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 8: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 9: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 10: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 11: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 12: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 13: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 14: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 15: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 16: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 17: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 18: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 27: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 28: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 29: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 30: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 31: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 32: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 33: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 34: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 35: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 36: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 37: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 38: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 39: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 40: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 41: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 42: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 43: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 44: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 45: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 46: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 47: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 48: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 49: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 50: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 51: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 52: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 53: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 54: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 55: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 56: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 57: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 58: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 59: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 60: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 61: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 62: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 63: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 64: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 65: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 66: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 67: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 68: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 69: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 70: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 71: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 72: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 73: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 74: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 75: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 76: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 77: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 78: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 79: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 80: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 81: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 82: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 83: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 84: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 85: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 86: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 87: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 88: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 89: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 90: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 91: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 92: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 93: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75]
2026-08-18 13:00:03.983470: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 52%, target 100%
2026-08-18 13:00:03.983593: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:00:03.983680: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:00:03.983972: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:00:03.984101: No export window planned
2026-08-18 13:00:03.984242: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:00:03.984279: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:00:03.984444: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:00:03.984636: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:00:03.984698: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:00:03.984759: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:00:03.984858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.984898: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.984926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.984970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.984996: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985033: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985260: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:00:03.985432: Inverter 0 count register writes 0
2026-08-18 13:00:04.001102: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 13:00:04.006279: Total inverter register writes now 867
2026-08-18 13:00:04.039489: Info: Completed run status Demand
2026-08-18 13:00:04.046034: Info: record_status Demand
2026-08-18 13:00:04.052749: Saved current settings to /config/predbat_config.json
2026-08-18 13:00:04.053138: Compare, best tariff: current metric 129.87p
2026-08-18 13:00:27.636940: Info: HAHistory: Pruning history data started.
2026-08-18 13:00:27.639600: Info: HAHistory: Pruning history data completed.
2026-08-18 13:00:34.159754: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:00:34.160020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:00:34.160132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:00:34.160333: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:00:34.160379: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:00:34.160401: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:00:34.160440: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:02:34.373443: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:02:34.373667: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:02:34.373701: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:02:34.373853: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:02:34.373891: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:02:34.373913: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:02:34.373931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:04:34.603167: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:04:34.603386: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:04:34.603515: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:04:34.603729: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:04:34.603771: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:04:34.603794: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:04:34.603814: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:05:00.708139: --------------- PredBat - update at 2026-08-18 13:05:00+01:00 with clock skew 0 minutes, minutes now 785
2026-08-18 13:05:00.708829: Saved current settings to /config/predbat_config.json
2026-08-18 13:05:00.708957: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 13:05:00.709083: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:05:00.709169: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:05:00.728783: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:05:00.728907: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:05:00.729068: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:05:00.729683: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:05:00.729819: Predbat mode is set to Control charge & discharge
2026-08-18 13:05:00.886103: Found 21602 load_today datapoints going back 27 days
2026-08-18 13:05:00.887037: Using load_power data to fill gaps in load_today data
2026-08-18 13:05:01.662766: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:05:01.662914: Zero load period starting at 2026-08-17T10:54:00+0100 (1571 minutes) for 189 minutes with base value 207.2667
2026-08-18 13:05:01.663935: Processing 721 30-minute periods for power integration
2026-08-18 13:05:01.852132: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:05:01.852256: Car charging hold False, threshold 6.0kWh
2026-08-18 13:05:01.852301: Current data so far today: load 8.0kWh, import 10.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:05:01.873521: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:05:01.873619: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:05:01.874434: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:05:01.874531: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:05:01.874585: Standing charge is set to 46.63p
2026-08-18 13:05:01.960632: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:05:01.960829: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:05:01.960977: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:05:01.961961: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:05:01.962052: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:05:01.962151: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:05:01.966565: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:05:01.966955: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:05:02.003797: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:05:02.003974: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:05:02.005711: High export rate found rates in range 99p to -99p
2026-08-18 13:05:02.084196: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:05:02.084508: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:05:02.095061: Battery level now 8.32kWh, -1hr ago 8.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 10.17p, rate_forward 6.87p
2026-08-18 13:05:02.095361: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:05:02.150322: Today's energy total net 10.3kWh, import 10.3kWh, export 0.0kWh, cost 137.73p, import 91.09p, export 0.0p, carbon 0.0kg
2026-08-18 13:05:02.150496: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:05:02.222014: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:05:02.248538: Today's load divergence 96.6%, in-day adjustment 94.91%, damping 0.95x, yesterday 92.68% today 96.77% blend 45.49%
2026-08-18 13:05:02.248617: Today's predicted so far 8.52kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 8.52kWh forecast extra.
2026-08-18 13:05:02.248642: Today's actual load so far 7.99kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 13:05:02.279280: Inverter 0: Type SK Sunsynk
2026-08-18 13:05:02.279352: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:05:02.279519: Reserve min: 7%, battery_min: 7%
2026-08-18 13:05:02.279646: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:05:02.279998: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 529W, current battery voltage 51.2V, grid power -54W, load power 580W, PV Power 0W
2026-08-18 13:05:02.280138: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:05:02.280205: Inverter 0 scheduled charge enable is False
2026-08-18 13:05:02.280233: Inverter 0 charge windows currently []
2026-08-18 13:05:02.280255: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:05:02.280345: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:05:02.280374: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:05:02.280404: Inverter 0 scheduled discharge enable is False
2026-08-18 13:05:02.280521: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:05:02.280548: Inverter 0 discharge windows currently []
2026-08-18 13:05:02.280566: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:05:02.280581: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:05:02.280594: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:05:02.329155: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:05:02.329260: Plan was last updated on 2026-08-18 12:55:00+01:00 and is now 10.0 minutes old
2026-08-18 13:05:02.329505: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:05:02.329552: Best export window [  ]
2026-08-18 13:05:02.330266: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:05:02.332866: Load divergence over 8.0 hours mean 424.96W, min 330.0W, max 675.0W, std dev 67.78W, divergence 7.98%
2026-08-18 13:05:02.348469: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:05:02.348565: LoadML is_calculating False
2026-08-18 13:05:02.348618: Creating pool of 12 processes to match your CPU count
2026-08-18 13:05:02.450212: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 619.76p, metric_keep 125.67kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.2kWh, PV 0.0kWh
2026-08-18 13:05:02.556411: Battery has 10.42 hours left - now at 8.32kWh
2026-08-18 13:05:02.594091: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 649.44p, metric_keep 127.5kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.31kWh, PV 0.0kWh
2026-08-18 13:05:02.668070: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 362.01p, metric_keep 6.1kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.31kWh, PV 0.0kWh
2026-08-18 13:05:02.736942: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 339.44p, metric_keep 1.22kWh, min_soc 1.2kWh @ 08-18 23:25:00, load 31.2kWh, PV 0.0kWh
2026-08-18 13:05:02.737018: Saving plan best values to HA entities
2026-08-18 13:05:02.893637: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:05:02.900917: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:05:02.908728: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.39kWh, house 0.0kWh, export 0.0kWh, metric 339.44p, metric10 362.01p
2026-08-18 13:05:02.998075: Marginal costs baseline metric (no standing charge): 292.8049
2026-08-18 13:05:03.301841: Marginal energy costs matrix computed: min=8.0 max=35.45
2026-08-18 13:05:03.416694: Rate array import [{'start': 785, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 785, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:05:03.417508: - Your estimated bill for today is £1.61 and tomorrow is £1.94
2026-08-18 13:05:03.417556: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:05:03.417579: - The battery is currently at 52% and is in eco mode for the next 10 hours.
2026-08-18 13:05:03.417603: - For the next 48 hours there will be no solar generation.
2026-08-18 13:05:03.417624: - You have enough battery to reach the next charge.
2026-08-18 13:05:03.417642: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:05:03.417659: 
2026-08-18 13:05:03.484404: Plan calculation took 1.16 seconds
2026-08-18 13:05:03.487839: No high rate period found
2026-08-18 13:05:03.537439: Import threshold used for optimisation was 8.0p
2026-08-18 13:05:03.589247: Low import rate windows [0: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 1: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 2: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 3: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 4: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 5: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 6: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 7: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 8: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 9: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 10: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 11: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 12: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 13: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 14: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 15: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 16: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 17: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 18: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 27: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 28: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 29: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 30: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 31: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 32: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 33: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 34: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 35: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 36: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 37: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 38: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 39: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 40: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 41: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 42: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 43: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 44: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 45: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 46: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 47: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 48: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 49: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 50: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 51: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 52: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 53: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 54: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 55: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 56: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 57: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 58: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 59: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 60: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 61: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 62: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 63: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 64: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 65: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 66: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 67: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 68: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 69: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 70: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 71: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 72: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 73: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 74: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 75: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 76: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 77: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 78: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 79: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 80: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 81: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 82: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 83: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 84: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 85: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 86: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 87: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 88: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 89: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 90: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 91: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 92: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 93: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 94: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75]
2026-08-18 13:05:03.596245: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 52%, target 100%
2026-08-18 13:05:03.596413: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:05:03.596532: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:05:03.596829: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:05:03.596974: No export window planned
2026-08-18 13:05:03.597117: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:05:03.597173: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:05:03.597361: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:05:03.597577: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:05:03.597644: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:05:03.597716: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:05:03.597885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.597968: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598016: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:03.598553: Inverter 0 count register writes 0
2026-08-18 13:05:03.617019: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 13:05:03.617224: Recompute is saving previous plan...
2026-08-18 13:05:03.620830: Best charge window [ 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0% ]
2026-08-18 13:05:03.620936: Best export window [  ]
2026-08-18 13:05:03.621936: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:05:03.625132: Load divergence over 8.0 hours mean 424.96W, min 330.0W, max 675.0W, std dev 67.78W, divergence 7.98%
2026-08-18 13:05:03.647090: Calculating data from yesterday for savings calculation
2026-08-18 13:05:03.660328: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 13:05:03.712244: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 13:05:03.727999: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 13:05:03.750569: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 13:05:03.788493: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 13:05:03.862158: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 13:05:03.862296: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 13:05:03.873809: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:05:03.873911: LoadML is_calculating False
2026-08-18 13:05:03.873977: Creating pool of 12 processes to match your CPU count
2026-08-18 13:05:03.957864: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 13:05:03.959598: Optimise levels pass started at 2026-08-18 13:05:03
2026-08-18 13:05:03.959661: Optimise all windows, total charge 94 export 1
2026-08-18 13:05:04.411264: >> Region optimisation pass width 960 gives best_metric 373.79p, best_cost 432.2p, best_cycle 50.67kWh, best_import 36.81kWh
2026-08-18 13:05:04.648137: >> Region optimisation pass width 480 gives best_metric 373.79p, best_cost 432.2p, best_cycle 50.67kWh, best_import 36.81kWh
2026-08-18 13:05:05.313302: >> Region optimisation pass width 240 gives best_metric 367.28p, best_cost 369.15p, best_cycle 48.87kWh, best_import 28.93kWh
2026-08-18 13:05:06.536981: >> Region optimisation pass width 120 gives best_metric 363.83p, best_cost 369.25p, best_cycle 48.19kWh, best_import 28.94kWh
2026-08-18 13:05:06.537572: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 67
2026-08-18 13:05:06.537643: Optimise levels pass ended at 2026-08-18 13:05:06, duration 2.6 seconds tried 240 combinations
2026-08-18 13:05:06.537713: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 363.83p, best_keep 0.98kWh, best_cycle 48.19kWh, best_carbon 0kg, best_import 28.94kWh
2026-08-18 13:05:06.558960: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 13:05:12.176753: Tweak plan optimisation started metric 279.14p, cost 288.74p
2026-08-18 13:05:12.471196: Tweak optimisation finished metric 279.14p, cost 288.74p, metric_keep 0.87kWh, cycle 32.9kWh, carbon 0kg, import 18.88kWh, changed 8 window(s)
2026-08-18 13:05:12.490863: Swap charge optimisation started metric 279.14p, cost 288.74p, min_improvement_swap 0.1p
2026-08-18 13:05:18.760555: Swap charge optimisation finished metric 279.14p, cost 288.74p
2026-08-18 13:05:18.912519: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 276.91p -> 276.68p, plan now metric 280.43p, cost 284.55p, cycle 32.91kWh, import 18.35kWh
2026-08-18 13:05:18.924634: Raw charge windows [ 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:05:18.925118: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:05:18.925320: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:05:18.925484: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:05:18.962518: Previous plan best metric is 279.14 (cost 288.74) and new plan best metric is 279.14 (cost 288.74)
2026-08-18 13:05:18.962732: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 13:05:18.962888: Plan valid is now true after recompute was False
2026-08-18 13:05:18.990782: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 618.17p, metric_keep 125.42kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.01kWh, PV 0.0kWh
2026-08-18 13:05:19.091536: Battery has 10.42 hours left - now at 8.32kWh
2026-08-18 13:05:19.137629: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 647.78p, metric_keep 127.24kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.1kWh, PV 0.0kWh
2026-08-18 13:05:19.233918: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 354.79p, metric_keep 6.08kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.1kWh, PV 0.0kWh
2026-08-18 13:05:19.340654: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 331.18p, metric_keep 1.22kWh, min_soc 1.2kWh @ 08-18 23:25:00, load 31.01kWh, PV 0.0kWh
2026-08-18 13:05:19.340896: Saving plan best values to HA entities
2026-08-18 13:05:19.517233: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:05:19.522072: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:05:19.527230: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.35kWh, house 0.0kWh, export 0.0kWh, metric 331.18p, metric10 354.79p
2026-08-18 13:05:19.595083: Marginal costs baseline metric (no standing charge): 284.5503
2026-08-18 13:05:19.876764: Marginal energy costs matrix computed: min=8.0 max=35.45
2026-08-18 13:05:19.969890: Rate array import [{'start': 785, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 785, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:05:19.971157: - Your estimated bill for today is £1.61 and tomorrow is £1.94
2026-08-18 13:05:19.971223: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:05:19.971261: - The battery is currently at 52% and is in eco mode for the next 10 hours.
2026-08-18 13:05:19.971297: - For the next 48 hours there will be no solar generation.
2026-08-18 13:05:19.971353: - You have enough battery to reach the next charge.
2026-08-18 13:05:19.971377: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:05:19.971395: 
2026-08-18 13:05:20.033797: Plan calculation took 16.42 seconds
2026-08-18 13:05:20.034124: Inverter 0: Type SK Sunsynk
2026-08-18 13:05:20.034168: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:05:20.034382: Reserve min: 7%, battery_min: 7%
2026-08-18 13:05:20.034495: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:05:20.034907: Inverter 0 SoC: 8.19kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 617W, current battery voltage 51.2V, grid power -56W, load power 678W, PV Power 0W
2026-08-18 13:05:20.035234: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:05:20.035389: Inverter 0 scheduled charge enable is False
2026-08-18 13:05:20.035474: Inverter 0 charge windows currently []
2026-08-18 13:05:20.035531: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:05:20.035713: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:05:20.035778: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:05:20.035843: Inverter 0 scheduled discharge enable is False
2026-08-18 13:05:20.036101: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:05:20.036165: Inverter 0 discharge windows currently []
2026-08-18 13:05:20.036213: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:05:20.036256: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:05:20.036289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:05:20.092354: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 51%, target 100%
2026-08-18 13:05:20.092527: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:05:20.092610: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:05:20.092802: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:05:20.092882: No export window planned
2026-08-18 13:05:20.093013: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:05:20.093048: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:05:20.093187: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:05:20.093348: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:05:20.093397: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:05:20.093469: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:05:20.093583: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093619: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093667: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093763: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093841: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.093993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:05:20.094332: Inverter 0 count register writes 0
2026-08-18 13:05:20.115774: Total inverter register writes now 867
2026-08-18 13:05:20.145440: Info: Completed run status Demand
2026-08-18 13:05:20.151246: Info: record_status Demand
2026-08-18 13:05:20.157511: Saved current settings to /config/predbat_config.json
2026-08-18 13:05:20.157809: Compare, best tariff: current metric 129.87p
2026-08-18 13:06:04.275536: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:06:04.275797: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:06:04.275852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:06:04.276040: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:06:04.276081: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:06:04.276100: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:06:04.276115: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:08:04.491478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:08:04.491725: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:08:04.491759: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:08:04.491944: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:08:04.491987: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:08:04.492010: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:08:04.492029: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:10:00.709687: --------------- PredBat - update at 2026-08-18 13:10:00+01:00 with clock skew 0 minutes, minutes now 790
2026-08-18 13:10:00.710685: Saved current settings to /config/predbat_config.json
2026-08-18 13:10:00.710825: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 13:10:00.710936: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:10:00.711051: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:10:00.731221: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:10:00.731378: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:10:00.731622: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:10:00.732211: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:10:00.732334: Predbat mode is set to Control charge & discharge
2026-08-18 13:10:00.912301: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:10:00.912434: Using load_power data to fill gaps in load_today data
2026-08-18 13:10:01.690550: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:10:01.690731: Zero load period starting at 2026-08-17T10:54:00+0100 (1576 minutes) for 189 minutes with base value 207.25
2026-08-18 13:10:01.691970: Processing 721 30-minute periods for power integration
2026-08-18 13:10:01.859443: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:10:01.859693: Car charging hold False, threshold 6.0kWh
2026-08-18 13:10:01.859753: Current data so far today: load 8.05kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:10:01.873143: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:10:01.873227: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:10:01.873867: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:10:01.873935: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:10:01.873978: Standing charge is set to 46.63p
2026-08-18 13:10:01.966853: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:10:01.967111: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:10:01.967275: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:10:01.968535: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:10:01.968639: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:10:01.968744: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:10:01.973529: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:10:01.973882: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:10:02.015004: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:10:02.015125: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:10:02.016509: High export rate found rates in range 99p to -99p
2026-08-18 13:10:02.122841: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:10:02.122961: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:10:02.139945: Battery level now 8.32kWh, -1hr ago 8.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 10.17p, rate_forward 6.87p
2026-08-18 13:10:02.140552: 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-18 13:10:02.196119: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:10:02.196247: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:10:02.281841: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:10:02.314231: Today's load divergence 96.67%, in-day adjustment 94.96%, damping 0.95x, yesterday 92.68% today 96.84% blend 45.14%
2026-08-18 13:10:02.314325: Today's predicted so far 8.53kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 8.53kWh forecast extra.
2026-08-18 13:10:02.314357: Today's actual load so far 8.02kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 13:10:02.368200: Inverter 0: Type SK Sunsynk
2026-08-18 13:10:02.368273: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:10:02.368448: Reserve min: 7%, battery_min: 7%
2026-08-18 13:10:02.368559: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:10:02.368816: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 582W, current battery voltage 51.2V, grid power -56W, load power 623W, PV Power 0W
2026-08-18 13:10:02.368962: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:10:02.369044: Inverter 0 scheduled charge enable is False
2026-08-18 13:10:02.369073: Inverter 0 charge windows currently []
2026-08-18 13:10:02.369098: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:10:02.369246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:10:02.369289: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:10:02.369326: Inverter 0 scheduled discharge enable is False
2026-08-18 13:10:02.369457: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:10:02.369493: Inverter 0 discharge windows currently []
2026-08-18 13:10:02.369515: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:10:02.369560: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:10:02.369595: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:10:02.428125: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:10:02.428262: Plan was last updated on 2026-08-18 13:05:00+01:00 and is now 5.0 minutes old
2026-08-18 13:10:02.428623: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:10:02.428695: Best export window [  ]
2026-08-18 13:10:02.429955: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:10:02.435310: Load divergence over 8.0 hours mean 423.07W, min 345.0W, max 712.8W, std dev 65.47W, divergence 7.74%
2026-08-18 13:10:02.453810: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:10:02.453887: LoadML is_calculating False
2026-08-18 13:10:02.453956: Creating pool of 12 processes to match your CPU count
2026-08-18 13:10:02.551094: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 623.88p, metric_keep 126.18kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.1kWh, PV 0.0kWh
2026-08-18 13:10:02.664897: Battery has 10.25 hours left - now at 8.16kWh
2026-08-18 13:10:02.708418: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 655.13p, metric_keep 128.0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.2kWh, PV 0.0kWh
2026-08-18 13:10:02.783366: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 364.83p, metric_keep 6.7kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.2kWh, PV 0.0kWh
2026-08-18 13:10:02.850251: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 340.42p, metric_keep 1.83kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.1kWh, PV 0.0kWh
2026-08-18 13:10:02.850327: Saving plan best values to HA entities
2026-08-18 13:10:03.002238: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:10:03.007344: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:10:03.012259: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.03kWh, export 0.0kWh, metric 340.42p, metric10 364.83p
2026-08-18 13:10:03.077501: Marginal costs baseline metric (no standing charge): 293.7891
2026-08-18 13:10:03.337096: Marginal energy costs matrix computed: min=8.0 max=36.32
2026-08-18 13:10:03.406751: Rate array import [{'start': 790, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 790, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:10:03.407437: - Your estimated bill for today is £1.66 and tomorrow is £1.94
2026-08-18 13:10:03.407479: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:10:03.407499: - The battery is currently at 51% and is in eco mode for the next 10 hours.
2026-08-18 13:10:03.407531: - For the next 48 hours there will be no solar generation.
2026-08-18 13:10:03.407562: - You have enough battery to reach the next charge.
2026-08-18 13:10:03.407584: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:10:03.407599: 
2026-08-18 13:10:03.455036: Plan calculation took 1.03 seconds
2026-08-18 13:10:03.458121: No high rate period found
2026-08-18 13:10:03.506034: Import threshold used for optimisation was 8.0p
2026-08-18 13:10:03.557492: Low import rate windows [0: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 1: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 2: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 3: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 4: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 5: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 6: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 7: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 8: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 9: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 10: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 11: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 12: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 13: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 14: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 15: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 16: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 17: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 18: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 27: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 28: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 29: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 30: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 31: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 32: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 33: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 34: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 35: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 36: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 37: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 38: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 39: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 40: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 41: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 42: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 43: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 44: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 45: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 46: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 47: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 48: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 49: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 50: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 51: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 52: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 53: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 54: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 55: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 56: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 57: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 58: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 59: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 60: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 61: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 62: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 63: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 64: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 65: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 66: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 67: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 68: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 69: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 70: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 71: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 72: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 73: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 74: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 75: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 76: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 77: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 78: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 79: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 80: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 81: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 82: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 83: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 84: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 85: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 86: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 87: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 88: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 89: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 90: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 91: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 92: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 93: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 94: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75]
2026-08-18 13:10:03.563429: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 51%, target 100%
2026-08-18 13:10:03.563575: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:10:03.563693: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:10:03.563994: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:10:03.564096: No export window planned
2026-08-18 13:10:03.564216: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:10:03.564251: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:10:03.564385: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:10:03.564583: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:10:03.564647: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:10:03.564715: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:10:03.564812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.564851: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.564879: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.564908: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.564962: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.564990: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565018: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:10:03.565297: Inverter 0 count register writes 0
2026-08-18 13:10:03.582421: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 13:10:03.587870: Total inverter register writes now 867
2026-08-18 13:10:03.619097: Info: Completed run status Demand
2026-08-18 13:10:03.625347: Info: record_status Demand
2026-08-18 13:10:03.631800: Saved current settings to /config/predbat_config.json
2026-08-18 13:10:03.632216: Compare, best tariff: current metric 129.87p
2026-08-18 13:10:33.745548: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:10:33.745777: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:10:33.745827: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:10:33.745969: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:10:33.746011: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:10:33.746032: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:10:33.746051: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:12:33.964229: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:12:33.964420: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:12:33.964456: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:12:33.964580: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:12:33.964614: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:12:33.964632: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:12:33.964646: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:14:34.175041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:14:34.175465: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:14:34.175511: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:14:34.175672: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:14:34.175712: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:14:34.175734: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:14:34.175773: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:15:00.284084: --------------- PredBat - update at 2026-08-18 13:15:00+01:00 with clock skew 0 minutes, minutes now 795
2026-08-18 13:15:00.284962: Saved current settings to /config/predbat_config.json
2026-08-18 13:15:00.285081: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 13:15:00.285144: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:15:00.285217: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:15:00.315288: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:15:00.315438: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:15:00.315626: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:15:00.316163: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:15:00.316287: Predbat mode is set to Control charge & discharge
2026-08-18 13:15:00.521554: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:15:00.521685: Using load_power data to fill gaps in load_today data
2026-08-18 13:15:01.362925: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:15:01.363084: Zero load period starting at 2026-08-17T10:54:00+0100 (1581 minutes) for 189 minutes with base value 207.2333
2026-08-18 13:15:01.364306: Processing 721 30-minute periods for power integration
2026-08-18 13:15:01.547588: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:15:01.547697: Car charging hold False, threshold 6.0kWh
2026-08-18 13:15:01.547738: Current data so far today: load 8.1kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:15:01.564321: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:15:01.564406: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:15:01.565185: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:15:01.565271: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:15:01.565323: Standing charge is set to 46.63p
2026-08-18 13:15:01.645397: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:15:01.645652: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:15:01.645833: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:15:01.646911: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:15:01.647014: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:15:01.647128: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:15:01.652436: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:15:01.652838: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:15:01.702304: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:15:01.702469: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:15:01.703880: High export rate found rates in range 99p to -99p
2026-08-18 13:15:01.806073: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:15:01.806217: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:15:01.818822: Battery level now 8.16kWh, -1hr ago 8.66kWh, at midnight 6.84kWh, battery value change in the last hour -3.46p, change today 9.07p, rate_forward 6.87p
2026-08-18 13:15:01.819211: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:15:01.873302: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:15:01.873428: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:15:01.961548: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:15:02.000383: Today's load divergence 96.78%, in-day adjustment 95.03%, damping 0.95x, yesterday 92.68% today 96.94% blend 44.79%
2026-08-18 13:15:02.000472: Today's predicted so far 8.55kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 8.55kWh forecast extra.
2026-08-18 13:15:02.000503: Today's actual load so far 8.05kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 13:15:02.033210: Inverter 0: Type SK Sunsynk
2026-08-18 13:15:02.033308: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:15:02.033524: Reserve min: 7%, battery_min: 7%
2026-08-18 13:15:02.033642: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:15:02.033965: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 565W, current battery voltage 51.2V, grid power -52W, load power 610W, PV Power 0W
2026-08-18 13:15:02.034140: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:15:02.034254: Inverter 0 scheduled charge enable is False
2026-08-18 13:15:02.034292: Inverter 0 charge windows currently []
2026-08-18 13:15:02.034325: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:15:02.034459: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:15:02.034508: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:15:02.034585: Inverter 0 scheduled discharge enable is False
2026-08-18 13:15:02.034750: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:15:02.034794: Inverter 0 discharge windows currently []
2026-08-18 13:15:02.034828: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:15:02.034864: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:15:02.034890: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:15:02.090586: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:15:02.090681: Plan was last updated on 2026-08-18 13:05:00+01:00 and is now 10.0 minutes old
2026-08-18 13:15:02.090974: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:15:02.091031: Best export window [  ]
2026-08-18 13:15:02.091976: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:15:02.095183: Load divergence over 8.0 hours mean 421.6W, min 307.2W, max 753.0W, std dev 77.19W, divergence 9.15%
2026-08-18 13:15:02.113732: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:15:02.113833: LoadML is_calculating False
2026-08-18 13:15:02.113906: Creating pool of 12 processes to match your CPU count
2026-08-18 13:15:02.227963: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 623.53p, metric_keep 125.99kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.21kWh, PV 0.0kWh
2026-08-18 13:15:02.347391: Battery has 10.25 hours left - now at 8.16kWh
2026-08-18 13:15:02.391733: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 654.29p, metric_keep 127.81kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.31kWh, PV 0.0kWh
2026-08-18 13:15:02.458159: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 366.77p, metric_keep 6.41kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.31kWh, PV 0.0kWh
2026-08-18 13:15:02.533822: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 343.32p, metric_keep 1.53kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.21kWh, PV 0.0kWh
2026-08-18 13:15:02.533906: Saving plan best values to HA entities
2026-08-18 13:15:02.676447: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:15:02.681507: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:15:02.686519: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.45kWh, house 0kWh, export 0.0kWh, metric 343.32p, metric10 366.77p
2026-08-18 13:15:02.765887: Marginal costs baseline metric (no standing charge): 296.6896
2026-08-18 13:15:03.034998: Marginal energy costs matrix computed: min=8.0 max=36.67
2026-08-18 13:15:03.111495: Rate array import [{'start': 795, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 795, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:15:03.112812: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:15:03.112876: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:15:03.112911: - The battery is currently at 51% and is in eco mode for the next 10 hours.
2026-08-18 13:15:03.112936: - For the next 48 hours there will be no solar generation.
2026-08-18 13:15:03.112963: - You have enough battery to reach the next charge.
2026-08-18 13:15:03.112991: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:15:03.113026: 
2026-08-18 13:15:03.164641: Plan calculation took 1.07 seconds
2026-08-18 13:15:03.167683: No high rate period found
2026-08-18 13:15:03.214330: Import threshold used for optimisation was 8.0p
2026-08-18 13:15:03.261900: Low import rate windows [0: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 1: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 2: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 3: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 4: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 5: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 6: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 7: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 8: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 9: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 10: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 11: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 12: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 13: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 14: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 15: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 16: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 17: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 18: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 27: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 28: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 29: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 30: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 31: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 32: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 33: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 34: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 35: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 36: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 37: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 38: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 39: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 40: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 41: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 42: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 43: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 44: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 45: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 46: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 47: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 48: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 49: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 50: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 51: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 52: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 53: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 54: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 55: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 56: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 57: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 58: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 59: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 60: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 61: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 62: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 63: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 64: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 65: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 66: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 67: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 68: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 69: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 70: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 71: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 72: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 73: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 74: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 75: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 76: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 77: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 78: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 79: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 80: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 81: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 82: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 83: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 84: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 85: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 86: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 87: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 88: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 89: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 90: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 91: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 92: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 93: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 94: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75]
2026-08-18 13:15:03.267309: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 51%, target 100%
2026-08-18 13:15:03.267454: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:15:03.267611: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:15:03.267975: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:15:03.268099: No export window planned
2026-08-18 13:15:03.268276: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:15:03.268320: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:15:03.268536: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:15:03.268794: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:15:03.268871: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:15:03.268958: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:15:03.269112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269184: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269238: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269273: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269424: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:03.269860: Inverter 0 count register writes 0
2026-08-18 13:15:03.284852: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 13:15:03.285007: Recompute is saving previous plan...
2026-08-18 13:15:03.288241: Best charge window [ 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0% ]
2026-08-18 13:15:03.288324: Best export window [  ]
2026-08-18 13:15:03.289179: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:15:03.292348: Load divergence over 8.0 hours mean 421.6W, min 307.2W, max 753.0W, std dev 77.19W, divergence 9.15%
2026-08-18 13:15:03.310112: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:15:03.310199: LoadML is_calculating False
2026-08-18 13:15:03.310257: Creating pool of 12 processes to match your CPU count
2026-08-18 13:15:03.391544: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 13:15:03.393410: Optimise levels pass started at 2026-08-18 13:15:03
2026-08-18 13:15:03.393473: Optimise all windows, total charge 94 export 1
2026-08-18 13:15:03.777520: >> Region optimisation pass width 960 gives best_metric 378.97p, best_cost 436.02p, best_cycle 50.75kWh, best_import 36.86kWh
2026-08-18 13:15:04.006182: >> Region optimisation pass width 480 gives best_metric 378.97p, best_cost 436.02p, best_cycle 50.75kWh, best_import 36.86kWh
2026-08-18 13:15:04.318657: >> Region optimisation pass width 240 gives best_metric 378.97p, best_cost 436.02p, best_cycle 50.75kWh, best_import 36.86kWh
2026-08-18 13:15:05.971700: >> Region optimisation pass width 120 gives best_metric 370.26p, best_cost 375.38p, best_cycle 49.19kWh, best_import 29.28kWh
2026-08-18 13:15:05.972159: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 67
2026-08-18 13:15:05.972260: Optimise levels pass ended at 2026-08-18 13:15:05, duration 2.6 seconds tried 239 combinations
2026-08-18 13:15:05.972339: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 370.26p, best_keep 1.19kWh, best_cycle 49.19kWh, best_carbon 0kg, best_import 29.28kWh
2026-08-18 13:15:05.992148: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 13:15:11.168860: Tweak plan optimisation started metric 283.45p, cost 292.57p
2026-08-18 13:15:11.472491: Tweak optimisation finished metric 283.45p, cost 292.57p, metric_keep 1.19kWh, cycle 32.85kWh, carbon 0kg, import 18.93kWh, changed 8 window(s)
2026-08-18 13:15:11.492396: Swap charge optimisation started metric 283.45p, cost 292.57p, min_improvement_swap 0.1p
2026-08-18 13:15:17.928715: Swap charge optimisation finished metric 283.45p, cost 292.57p
2026-08-18 13:15:18.068478: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 281.06p -> 280.82p, plan now metric 284.7p, cost 288.41p, cycle 32.86kWh, import 18.41kWh
2026-08-18 13:15:18.080863: Raw charge windows [ 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:15:18.081363: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:15:18.081562: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:15:18.081728: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:15:18.119095: Previous plan best metric is 283.45 (cost 292.57) and new plan best metric is 283.45 (cost 292.57)
2026-08-18 13:15:18.119304: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 13:15:18.119468: Plan valid is now true after recompute was False
2026-08-18 13:15:18.147087: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 621.93p, metric_keep 125.74kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.01kWh, PV 0.0kWh
2026-08-18 13:15:18.251412: Battery has 10.25 hours left - now at 8.16kWh
2026-08-18 13:15:18.291601: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 652.61p, metric_keep 127.55kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.1kWh, PV 0.0kWh
2026-08-18 13:15:18.363633: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 359.53p, metric_keep 6.39kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.1kWh, PV 0.0kWh
2026-08-18 13:15:18.433850: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 335.05p, metric_keep 1.53kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.01kWh, PV 0.0kWh
2026-08-18 13:15:18.433927: Saving plan best values to HA entities
2026-08-18 13:15:18.592553: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:15:18.598117: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:15:18.603282: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.41kWh, house 0kWh, export 0.0kWh, metric 335.05p, metric10 359.53p
2026-08-18 13:15:18.674496: Marginal costs baseline metric (no standing charge): 288.4142
2026-08-18 13:15:18.936768: Marginal energy costs matrix computed: min=8.0 max=36.67
2026-08-18 13:15:19.004005: Rate array import [{'start': 795, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 795, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:15:19.004681: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:15:19.004724: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:15:19.004747: - The battery is currently at 51% and is in eco mode for the next 10 hours.
2026-08-18 13:15:19.004766: - For the next 48 hours there will be no solar generation.
2026-08-18 13:15:19.004783: - You have enough battery to reach the next charge.
2026-08-18 13:15:19.004805: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:15:19.004839: 
2026-08-18 13:15:19.059627: Plan calculation took 15.77 seconds
2026-08-18 13:15:19.060021: Inverter 0: Type SK Sunsynk
2026-08-18 13:15:19.060077: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:15:19.060319: Reserve min: 7%, battery_min: 7%
2026-08-18 13:15:19.060418: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:15:19.060819: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 565W, current battery voltage 51.2V, grid power -52W, load power 610W, PV Power 0W
2026-08-18 13:15:19.061079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:15:19.061211: Inverter 0 scheduled charge enable is False
2026-08-18 13:15:19.061261: Inverter 0 charge windows currently []
2026-08-18 13:15:19.061304: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:15:19.061461: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:15:19.061508: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:15:19.061564: Inverter 0 scheduled discharge enable is False
2026-08-18 13:15:19.061766: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:15:19.061808: Inverter 0 discharge windows currently []
2026-08-18 13:15:19.061870: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:15:19.061917: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:15:19.061954: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:15:19.112842: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 51%, target 100%
2026-08-18 13:15:19.112980: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:15:19.113093: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:15:19.113323: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:15:19.113420: No export window planned
2026-08-18 13:15:19.113600: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:15:19.113643: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:15:19.113820: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:15:19.114011: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:15:19.114068: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:15:19.114193: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:15:19.114328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114425: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114479: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114532: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.114967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.115015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:15:19.115048: Inverter 0 count register writes 0
2026-08-18 13:15:19.134377: Total inverter register writes now 867
2026-08-18 13:15:19.162294: Info: Completed run status Demand
2026-08-18 13:15:19.182820: Info: record_status Demand
2026-08-18 13:15:19.189935: Saved current settings to /config/predbat_config.json
2026-08-18 13:15:19.190258: Compare, best tariff: current metric 129.87p
2026-08-18 13:15:49.287776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:15:49.288085: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:15:49.288155: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:15:49.288311: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:15:49.288366: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:15:49.288408: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:15:49.288444: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:17:49.509324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:17:49.509553: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:17:49.509605: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:17:49.509756: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:17:49.509795: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:17:49.509818: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:17:49.509836: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:20:00.781670: --------------- PredBat - update at 2026-08-18 13:20:00+01:00 with clock skew 0 minutes, minutes now 800
2026-08-18 13:20:00.782487: Saved current settings to /config/predbat_config.json
2026-08-18 13:20:00.782640: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 13:20:00.782742: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:20:00.782849: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:20:00.801402: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:20:00.801514: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:20:00.801749: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:20:00.802283: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:20:00.802392: Predbat mode is set to Control charge & discharge
2026-08-18 13:20:01.002151: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:20:01.002293: Using load_power data to fill gaps in load_today data
2026-08-18 13:20:01.868990: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:20:01.869618: Zero load period starting at 2026-08-17T10:54:00+0100 (1586 minutes) for 189 minutes with base value 207.2167
2026-08-18 13:20:01.870625: Processing 721 30-minute periods for power integration
2026-08-18 13:20:02.023224: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:20:02.023347: Car charging hold False, threshold 6.0kWh
2026-08-18 13:20:02.023385: Current data so far today: load 8.15kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:20:02.037253: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:20:02.037343: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:20:02.037978: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:20:02.038045: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:20:02.038109: Standing charge is set to 46.63p
2026-08-18 13:20:02.124402: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:20:02.124752: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:20:02.125041: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:20:02.127019: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:20:02.127204: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:20:02.127416: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:20:02.133277: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:20:02.133716: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:20:02.181053: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:20:02.181138: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:20:02.182211: High export rate found rates in range 99p to -99p
2026-08-18 13:20:02.257507: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:20:02.257618: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:20:02.272056: Battery level now 8.16kWh, -1hr ago 8.64kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 9.07p, rate_forward 6.87p
2026-08-18 13:20:02.272385: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:20:02.327157: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:20:02.327288: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:20:02.415466: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:20:02.449984: Today's load divergence 96.74%, in-day adjustment 95.03%, damping 0.95x, yesterday 92.68% today 96.9% blend 44.44%
2026-08-18 13:20:02.450076: Today's predicted so far 8.6kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 8.6kWh forecast extra.
2026-08-18 13:20:02.450112: Today's actual load so far 8.1kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 13:20:02.484483: Inverter 0: Type SK Sunsynk
2026-08-18 13:20:02.484584: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:20:02.484864: Reserve min: 7%, battery_min: 7%
2026-08-18 13:20:02.484943: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:20:02.485287: Inverter 0 SoC: 8.1kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 545W, current battery voltage 51.2V, grid power -54W, load power 596W, PV Power 0W
2026-08-18 13:20:02.485498: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:20:02.485652: Inverter 0 scheduled charge enable is False
2026-08-18 13:20:02.485715: Inverter 0 charge windows currently []
2026-08-18 13:20:02.485825: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:20:02.485993: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:20:02.486033: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:20:02.486098: Inverter 0 scheduled discharge enable is False
2026-08-18 13:20:02.486237: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:20:02.486267: Inverter 0 discharge windows currently []
2026-08-18 13:20:02.486295: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:20:02.486315: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:20:02.486336: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:20:02.543681: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:20:02.543784: Plan was last updated on 2026-08-18 13:15:00+01:00 and is now 5.0 minutes old
2026-08-18 13:20:02.544017: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:20:02.544054: Best export window [  ]
2026-08-18 13:20:02.544830: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:20:02.548693: Load divergence over 8.0 hours mean 421.66W, min 316.8W, max 620.4W, std dev 67.49W, divergence 8.0%
2026-08-18 13:20:02.565528: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:20:02.565630: LoadML is_calculating False
2026-08-18 13:20:02.565686: Creating pool of 12 processes to match your CPU count
2026-08-18 13:20:02.696699: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.45p, metric_keep 125.78kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.07kWh, PV 0.0kWh
2026-08-18 13:20:02.823313: Battery has 10.17 hours left - now at 8.1kWh
2026-08-18 13:20:02.881367: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 652.65p, metric_keep 127.55kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.16kWh, PV 0.0kWh
2026-08-18 13:20:02.956352: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 362.29p, metric_keep 6.24kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.16kWh, PV 0.0kWh
2026-08-18 13:20:03.053894: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 339.02p, metric_keep 1.43kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.07kWh, PV 0.0kWh
2026-08-18 13:20:03.053976: Saving plan best values to HA entities
2026-08-18 13:20:03.220041: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:20:03.225900: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:20:03.231254: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.91kWh, house 0kWh, export 0.0kWh, metric 339.02p, metric10 362.29p
2026-08-18 13:20:03.317136: Marginal costs baseline metric (no standing charge): 292.3822
2026-08-18 13:20:03.597400: Marginal energy costs matrix computed: min=8.0 max=37.1
2026-08-18 13:20:03.668049: Rate array import [{'start': 800, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 800, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:20:03.668736: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:20:03.668780: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:20:03.668803: - The battery is currently at 51% and is in eco mode for the next 10 hours.
2026-08-18 13:20:03.668822: - For the next 48 hours there will be no solar generation.
2026-08-18 13:20:03.668840: - You have enough battery to reach the next charge.
2026-08-18 13:20:03.668858: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:20:03.668893: 
2026-08-18 13:20:03.724159: Plan calculation took 1.18 seconds
2026-08-18 13:20:03.730115: No high rate period found
2026-08-18 13:20:03.798655: Import threshold used for optimisation was 8.0p
2026-08-18 13:20:03.855154: Low import rate windows [0: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 1: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 2: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 3: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 4: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 5: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 6: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 7: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 8: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 9: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 10: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 11: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 12: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 13: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 14: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 15: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 16: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 17: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 18: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 27: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 28: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 29: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 30: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 31: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 32: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 33: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 34: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 35: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 36: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 37: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 38: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 39: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 40: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 41: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 42: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 43: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 44: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 45: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 46: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 47: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 48: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 49: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 50: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 51: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 52: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 53: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 54: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 55: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 56: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 57: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 58: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 59: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 60: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 61: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 62: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 63: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 64: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 65: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 66: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 67: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 68: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 69: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 70: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 71: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 72: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 73: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 74: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 75: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 76: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 77: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 78: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 79: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 80: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 81: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 82: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 83: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 84: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 85: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 86: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 87: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 88: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 89: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 90: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 91: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 92: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 93: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 94: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75]
2026-08-18 13:20:03.859940: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 51%, target 100%
2026-08-18 13:20:03.860063: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:20:03.860184: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:20:03.860427: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:20:03.860522: No export window planned
2026-08-18 13:20:03.860685: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:20:03.860721: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:20:03.860866: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:20:03.861044: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:20:03.861103: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:20:03.861191: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:20:03.861313: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861433: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861480: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861528: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:20:03.861951: Inverter 0 count register writes 0
2026-08-18 13:20:03.874809: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 13:20:03.879871: Total inverter register writes now 867
2026-08-18 13:20:03.911218: Info: Completed run status Demand
2026-08-18 13:20:03.916164: Info: record_status Demand
2026-08-18 13:20:03.922102: Saved current settings to /config/predbat_config.json
2026-08-18 13:20:03.922414: Compare, best tariff: current metric 129.87p
2026-08-18 13:20:34.021013: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:20:34.021289: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:20:34.021355: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:20:34.021540: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:20:34.021590: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:20:34.021672: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:20:34.021714: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:22:34.240707: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:22:34.241028: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:22:34.241088: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:22:34.241274: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:22:34.241318: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:22:34.241341: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:22:34.241364: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:24:34.452959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:24:34.453204: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:24:34.453253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:24:34.453391: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:24:34.453429: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:24:34.453450: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:24:34.453468: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:25:00.560916: --------------- PredBat - update at 2026-08-18 13:25:00+01:00 with clock skew 0 minutes, minutes now 805
2026-08-18 13:25:00.561883: Saved current settings to /config/predbat_config.json
2026-08-18 13:25:00.562047: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 13:25:00.562205: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:25:00.562325: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:25:00.586338: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:25:00.586530: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:25:00.586854: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:25:00.587771: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:25:00.588001: Predbat mode is set to Control charge & discharge
2026-08-18 13:25:00.776571: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:25:00.776706: Using load_power data to fill gaps in load_today data
2026-08-18 13:25:01.497349: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:25:01.497779: Zero load period starting at 2026-08-17T10:54:00+0100 (1591 minutes) for 189 minutes with base value 207.2
2026-08-18 13:25:01.498779: Processing 721 30-minute periods for power integration
2026-08-18 13:25:01.670315: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:25:01.670442: Car charging hold False, threshold 6.0kWh
2026-08-18 13:25:01.670488: Current data so far today: load 8.2kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:25:01.684831: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:25:01.684980: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:25:01.685657: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:25:01.685739: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:25:01.685800: Standing charge is set to 46.63p
2026-08-18 13:25:01.782250: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:25:01.782652: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:25:01.782942: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:25:01.784231: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:25:01.784418: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:25:01.784653: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:25:01.790222: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:25:01.790727: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:25:01.840950: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:25:01.845150: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:25:01.846537: High export rate found rates in range 99p to -99p
2026-08-18 13:25:01.958223: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:25:01.958354: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:25:01.983240: Battery level now 8.1kWh, -1hr ago 8.62kWh, at midnight 6.84kWh, battery value change in the last hour -3.63p, change today 8.63p, rate_forward 6.87p
2026-08-18 13:25:01.984248: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:25:02.050316: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:25:02.050448: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:25:02.138654: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:25:02.176032: Today's load divergence 96.85%, in-day adjustment 95.1%, damping 0.95x, yesterday 92.68% today 97.01% blend 44.1%
2026-08-18 13:25:02.176120: Today's predicted so far 8.64kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 8.64kWh forecast extra.
2026-08-18 13:25:02.176152: Today's actual load so far 8.15kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 13:25:02.207895: Inverter 0: Type SK Sunsynk
2026-08-18 13:25:02.208019: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:25:02.208195: Reserve min: 7%, battery_min: 7%
2026-08-18 13:25:02.208285: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:25:02.208573: Inverter 0 SoC: 8.1kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 548W, current battery voltage 51.2V, grid power -57W, load power 600W, PV Power 0W
2026-08-18 13:25:02.208742: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:25:02.208828: Inverter 0 scheduled charge enable is False
2026-08-18 13:25:02.208857: Inverter 0 charge windows currently []
2026-08-18 13:25:02.208882: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:25:02.209058: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:25:02.209124: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:25:02.209203: Inverter 0 scheduled discharge enable is False
2026-08-18 13:25:02.209418: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:25:02.209480: Inverter 0 discharge windows currently []
2026-08-18 13:25:02.209519: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:25:02.209573: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:25:02.209616: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:25:02.270071: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:25:02.270165: Plan was last updated on 2026-08-18 13:15:00+01:00 and is now 10.0 minutes old
2026-08-18 13:25:02.270389: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:25:02.270430: Best export window [  ]
2026-08-18 13:25:02.271280: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:25:02.274481: Load divergence over 8.0 hours mean 421.71W, min 324.0W, max 601.2W, std dev 65.96W, divergence 7.82%
2026-08-18 13:25:02.292891: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:25:02.292992: LoadML is_calculating False
2026-08-18 13:25:02.293074: Creating pool of 12 processes to match your CPU count
2026-08-18 13:25:02.418952: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 623.27p, metric_keep 125.61kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.18kWh, PV 0.0kWh
2026-08-18 13:25:02.563437: Battery has 10.08 hours left - now at 8.1kWh
2026-08-18 13:25:02.610240: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 652.43p, metric_keep 127.32kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.27kWh, PV 0.0kWh
2026-08-18 13:25:02.689973: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 364.92p, metric_keep 5.92kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.27kWh, PV 0.0kWh
2026-08-18 13:25:02.768779: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 342.57p, metric_keep 1.18kWh, min_soc 1.21kWh @ 08-18 23:25:00, load 31.18kWh, PV 0.0kWh
2026-08-18 13:25:02.768859: Saving plan best values to HA entities
2026-08-18 13:25:02.925564: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:25:02.930737: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:25:02.935888: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.36kWh, house 0.0kWh, export 0.0kWh, metric 342.57p, metric10 364.92p
2026-08-18 13:25:03.010723: Marginal costs baseline metric (no standing charge): 295.9408
2026-08-18 13:25:03.278336: Marginal energy costs matrix computed: min=8.0 max=37.36
2026-08-18 13:25:03.347815: Rate array import [{'start': 805, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 805, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:25:03.348391: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 13:25:03.348430: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:25:03.348448: - The battery is currently at 51% and is in eco mode for the next 10 hours.
2026-08-18 13:25:03.348464: - For the next 48 hours there will be no solar generation.
2026-08-18 13:25:03.348478: - You will reach a minimum of 8% battery in 10 hours.
2026-08-18 13:25:03.348498: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:25:03.348512: 
2026-08-18 13:25:03.397440: Plan calculation took 1.13 seconds
2026-08-18 13:25:03.400882: No high rate period found
2026-08-18 13:25:03.442624: Import threshold used for optimisation was 8.0p
2026-08-18 13:25:03.492653: Low import rate windows [0: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 1: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 2: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 3: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 4: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 5: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 6: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 7: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 8: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 9: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 10: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 11: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 12: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 13: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 14: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 15: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 16: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 17: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 18: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 27: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 28: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 29: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 30: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 31: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 32: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 33: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 34: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 35: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 36: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 37: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 38: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 39: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 40: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 41: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 42: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 43: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 44: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 45: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 46: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 47: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 48: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 49: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 50: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 51: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 52: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 53: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 54: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 55: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 56: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 57: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 58: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 59: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 60: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 61: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 62: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 63: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 64: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 65: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 66: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 67: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 68: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 69: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 70: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 71: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 72: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 73: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 74: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 75: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 76: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 77: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 78: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 79: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 80: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 81: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 82: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 83: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 84: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 85: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 86: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 87: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 88: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 89: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 90: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 91: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 92: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 93: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 94: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75]
2026-08-18 13:25:03.497989: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 51%, target 100%
2026-08-18 13:25:03.498108: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:25:03.498218: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:25:03.498463: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:25:03.498553: No export window planned
2026-08-18 13:25:03.498701: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:25:03.498739: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:25:03.498869: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:25:03.499043: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:25:03.499103: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:25:03.499165: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:25:03.499261: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499302: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499331: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499411: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:03.499737: Inverter 0 count register writes 0
2026-08-18 13:25:03.517336: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 13:25:03.517518: Recompute is saving previous plan...
2026-08-18 13:25:03.520985: Best charge window [ 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0% ]
2026-08-18 13:25:03.521065: Best export window [  ]
2026-08-18 13:25:03.521811: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:25:03.524824: Load divergence over 8.0 hours mean 421.71W, min 324.0W, max 601.2W, std dev 65.96W, divergence 7.82%
2026-08-18 13:25:03.541765: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:25:03.541863: LoadML is_calculating False
2026-08-18 13:25:03.541918: Creating pool of 12 processes to match your CPU count
2026-08-18 13:25:03.628017: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 13:25:03.629526: Optimise levels pass started at 2026-08-18 13:25:03
2026-08-18 13:25:03.629579: Optimise all windows, total charge 94 export 1
2026-08-18 13:25:03.998666: >> Region optimisation pass width 960 gives best_metric 378.74p, best_cost 437.54p, best_cycle 50.98kWh, best_import 37.06kWh
2026-08-18 13:25:04.197371: >> Region optimisation pass width 480 gives best_metric 378.74p, best_cost 437.54p, best_cycle 50.98kWh, best_import 37.06kWh
2026-08-18 13:25:04.511090: >> Region optimisation pass width 240 gives best_metric 378.74p, best_cost 437.54p, best_cycle 50.98kWh, best_import 37.06kWh
2026-08-18 13:25:06.054061: >> Region optimisation pass width 120 gives best_metric 368.77p, best_cost 374.2p, best_cycle 48.0kWh, best_import 29.14kWh
2026-08-18 13:25:06.054373: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 67
2026-08-18 13:25:06.054454: Optimise levels pass ended at 2026-08-18 13:25:06, duration 2.4 seconds tried 247 combinations
2026-08-18 13:25:06.054551: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 368.77p, best_keep 1.05kWh, best_cycle 48.0kWh, best_carbon 0kg, best_import 29.14kWh
2026-08-18 13:25:06.074776: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 13:25:11.081503: Tweak plan optimisation started metric 282.25p, cost 291.91p
2026-08-18 13:25:11.373595: Tweak optimisation finished metric 282.25p, cost 291.91p, metric_keep 0.81kWh, cycle 32.67kWh, carbon 0kg, import 18.85kWh, changed 8 window(s)
2026-08-18 13:25:11.389302: Swap charge optimisation started metric 282.25p, cost 291.91p, min_improvement_swap 0.1p
2026-08-18 13:25:16.494695: Swap charge optimisation finished metric 282.25p, cost 291.91p
2026-08-18 13:25:16.606299: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 280.1p -> 279.95p, plan now metric 282.73p, cost 289.89p, cycle 32.93kWh, import 18.6kWh
2026-08-18 13:25:16.616316: Raw charge windows [ 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:25:16.616779: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:25:16.616950: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:25:16.617060: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:25:16.648040: Previous plan best metric is 282.25 (cost 291.91) and new plan best metric is 282.25 (cost 291.91)
2026-08-18 13:25:16.648237: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 13:25:16.648383: Plan valid is now true after recompute was False
2026-08-18 13:25:16.671670: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 621.74p, metric_keep 125.36kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 30.98kWh, PV 0.0kWh
2026-08-18 13:25:16.773171: Battery has 10.08 hours left - now at 8.1kWh
2026-08-18 13:25:16.816286: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 650.83p, metric_keep 127.07kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.07kWh, PV 0.0kWh
2026-08-18 13:25:16.885563: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 357.76p, metric_keep 5.9kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.07kWh, PV 0.0kWh
2026-08-18 13:25:16.963842: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 334.38p, metric_keep 1.18kWh, min_soc 1.21kWh @ 08-18 23:25:00, load 30.98kWh, PV 0.0kWh
2026-08-18 13:25:16.964089: Saving plan best values to HA entities
2026-08-18 13:25:17.132045: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:25:17.136384: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:25:17.141074: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.33kWh, house 0.0kWh, export 0.0kWh, metric 334.38p, metric10 357.76p
2026-08-18 13:25:17.206205: Marginal costs baseline metric (no standing charge): 287.7453
2026-08-18 13:25:17.445315: Marginal energy costs matrix computed: min=8.0 max=37.36
2026-08-18 13:25:17.539447: Rate array import [{'start': 805, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 805, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:25:17.540141: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 13:25:17.540194: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:25:17.540228: - The battery is currently at 51% and is in eco mode for the next 10 hours.
2026-08-18 13:25:17.540361: - For the next 48 hours there will be no solar generation.
2026-08-18 13:25:17.540396: - You will reach a minimum of 8% battery in 10 hours.
2026-08-18 13:25:17.540426: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:25:17.540453: 
2026-08-18 13:25:17.590883: Plan calculation took 14.07 seconds
2026-08-18 13:25:17.591179: Inverter 0: Type SK Sunsynk
2026-08-18 13:25:17.591222: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:25:17.591420: Reserve min: 7%, battery_min: 7%
2026-08-18 13:25:17.591496: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:25:17.591816: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 547W, current battery voltage 51.2V, grid power -58W, load power 604W, PV Power 0W
2026-08-18 13:25:17.592057: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:25:17.592161: Inverter 0 scheduled charge enable is False
2026-08-18 13:25:17.592204: Inverter 0 charge windows currently []
2026-08-18 13:25:17.592243: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:25:17.592375: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:25:17.592414: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:25:17.592447: Inverter 0 scheduled discharge enable is False
2026-08-18 13:25:17.592559: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:25:17.592589: Inverter 0 discharge windows currently []
2026-08-18 13:25:17.592608: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:25:17.592623: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:25:17.592654: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:25:17.645042: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 50%, target 100%
2026-08-18 13:25:17.645182: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:25:17.645246: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:25:17.645412: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:25:17.645491: No export window planned
2026-08-18 13:25:17.645597: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:25:17.645630: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:25:17.645780: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:25:17.645937: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:25:17.645988: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:25:17.646045: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:25:17.646133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646172: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646249: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646307: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646420: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:25:17.646937: Inverter 0 count register writes 0
2026-08-18 13:25:17.664671: Total inverter register writes now 867
2026-08-18 13:25:17.691331: Info: Completed run status Demand
2026-08-18 13:25:17.700721: Info: record_status Demand
2026-08-18 13:25:17.707891: Saved current settings to /config/predbat_config.json
2026-08-18 13:25:17.708174: Compare, best tariff: current metric 129.87p
2026-08-18 13:25:48.806733: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:25:48.807000: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:25:48.807071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:25:48.807222: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:25:48.807260: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:25:48.807280: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:25:48.807298: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:27:49.017781: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:27:49.018007: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:27:49.018046: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:27:49.018190: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:27:49.018228: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:27:49.018249: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:27:49.018267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:29:14.321029: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 13:29:15.428010: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:29:15.428220: Zero load period starting at 2026-08-17T10:54:00+0100 (1591 minutes) for 189 minutes with base value 397.5
2026-08-18 13:29:15.429426: Processing 1345 30-minute periods for power integration
2026-08-18 13:29:15.537154: ML Component: Car charging hold False, car energy reported load False
2026-08-18 13:29:15.638753: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:29:15.745186: ML Temperature data points: 49596
2026-08-18 13:29:16.013570: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 13:29:16.052618: ML Component: Data fetch completed, load data age 59.0 days, 17272 data points
2026-08-18 13:29:16.053268: ML Component: No training needed, model age is 0.85 hours
2026-08-18 13:29:16.053337: ML Component: Generating predictions load data age 59.0 days, 17272 data points
2026-08-18 13:29:16.192138: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0496 max_dow {0: 0.08701944450702932, 1: 0.09171111095034414, 2: 0.10702187459506095, 3: 0.1005312503473833, 4: 0.13755000035744158, 5: 0.09631666693902677, 6: 0.10488888886421918}
2026-08-18 13:29:16.603694: ML Component: Generated 576 predictions (total 28.80 kWh over 48h)
2026-08-18 13:29:16.641006: ML Component: Prediction cycle completed
2026-08-18 13:29:16.760031: ML Component: Saved 17272 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 13:29:49.257264: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:29:49.257496: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:29:49.257538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:29:49.257688: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:29:49.257728: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:29:49.257750: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:29:49.257768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:30:00.345642: --------------- PredBat - update at 2026-08-18 13:30:00+01:00 with clock skew 0 minutes, minutes now 810
2026-08-18 13:30:00.346367: Saved current settings to /config/predbat_config.json
2026-08-18 13:30:00.786726: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:30:00.786837: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:30:00.804810: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:30:00.804911: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:30:00.805101: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:30:00.805560: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:30:00.805698: Predbat mode is set to Control charge & discharge
2026-08-18 13:30:00.979164: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:30:00.979321: Using load_power data to fill gaps in load_today data
2026-08-18 13:30:01.954685: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:30:01.955333: Zero load period starting at 2026-08-17T10:54:00+0100 (1596 minutes) for 189 minutes with base value 207.175
2026-08-18 13:30:01.956343: Processing 721 30-minute periods for power integration
2026-08-18 13:30:02.137298: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:30:02.137421: Car charging hold False, threshold 6.0kWh
2026-08-18 13:30:02.137465: Current data so far today: load 8.25kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:30:02.153975: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:30:02.154081: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:30:02.154820: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:30:02.154900: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:30:02.154950: Standing charge is set to 46.63p
2026-08-18 13:30:02.296491: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:30:02.297518: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:30:02.299082: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:30:02.300120: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:30:02.300253: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:30:02.300448: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:30:02.305272: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:30:02.306467: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:30:02.348209: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:30:02.349163: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:30:02.350431: High export rate found rates in range 99p to -99p
2026-08-18 13:30:02.444625: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:30:02.444883: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:30:02.463233: Battery level now 8.1kWh, -1hr ago 8.62kWh, at midnight 6.84kWh, battery value change in the last hour -3.63p, change today 8.63p, rate_forward 6.87p
2026-08-18 13:30:02.463546: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.58kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:30:02.535111: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:30:02.535243: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:30:02.622867: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:30:02.658086: Today's load divergence 96.65%, in-day adjustment 95.01%, damping 0.95x, yesterday 92.68% today 96.81% blend 43.75%
2026-08-18 13:30:02.658762: Today's predicted so far 8.75kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 8.75kWh forecast extra.
2026-08-18 13:30:02.658803: Today's actual load so far 8.23kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 13:30:02.688757: Inverter 0: Type SK Sunsynk
2026-08-18 13:30:02.688828: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:30:02.689014: Reserve min: 7%, battery_min: 7%
2026-08-18 13:30:02.689098: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:30:02.689353: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 491W, current battery voltage 51.2V, grid power -57W, load power 545W, PV Power 0W
2026-08-18 13:30:02.689506: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:30:02.689632: Inverter 0 scheduled charge enable is False
2026-08-18 13:30:02.689682: Inverter 0 charge windows currently []
2026-08-18 13:30:02.689729: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:30:02.689854: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:30:02.689891: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:30:02.689940: Inverter 0 scheduled discharge enable is False
2026-08-18 13:30:02.690090: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:30:02.690125: Inverter 0 discharge windows currently []
2026-08-18 13:30:02.690152: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:30:02.690185: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:30:02.690204: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:30:02.747973: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:30:02.748072: Plan was last updated on 2026-08-18 13:25:00+01:00 and is now 5.0 minutes old
2026-08-18 13:30:02.748269: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:30:02.748308: Best export window [  ]
2026-08-18 13:30:02.749207: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:30:02.755104: Load divergence over 8.0 hours mean 423.29W, min 335.4W, max 633.6W, std dev 59.22W, divergence 7.0%
2026-08-18 13:30:02.776176: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:30:02.776274: LoadML is_calculating False
2026-08-18 13:30:02.776340: Creating pool of 12 processes to match your CPU count
2026-08-18 13:30:02.893003: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.63p, metric_keep 125.76kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.09kWh, PV 0.0kWh
2026-08-18 13:30:03.027141: Battery has 10.0 hours left - now at 8.0kWh
2026-08-18 13:30:03.075976: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 652.69p, metric_keep 127.47kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.17kWh, PV 0.0kWh
2026-08-18 13:30:03.157098: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 362.47p, metric_keep 6.16kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.17kWh, PV 0.0kWh
2026-08-18 13:30:03.241649: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 338.98p, metric_keep 1.44kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.09kWh, PV 0.0kWh
2026-08-18 13:30:03.241743: Saving plan best values to HA entities
2026-08-18 13:30:03.432181: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:30:03.439507: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:30:03.445915: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.91kWh, house 0.0kWh, export 0.0kWh, metric 338.98p, metric10 362.47p
2026-08-18 13:30:03.520162: Marginal costs baseline metric (no standing charge): 292.3464
2026-08-18 13:30:03.797875: Marginal energy costs matrix computed: min=8.0 max=38.07
2026-08-18 13:30:03.885553: Rate array import [{'start': 810, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 810, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:30:03.886619: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:30:03.886707: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:30:03.886734: - The battery is currently at 50% and is in eco mode for the next 10 hours.
2026-08-18 13:30:03.886759: - For the next 48 hours there will be no solar generation.
2026-08-18 13:30:03.886800: - You have enough battery to reach the next charge.
2026-08-18 13:30:03.886836: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-18 13:30:03.886868: 
2026-08-18 13:30:03.959643: Plan calculation took 1.21 seconds
2026-08-18 13:30:03.963218: No high rate period found
2026-08-18 13:30:04.017686: Import threshold used for optimisation was 8.0p
2026-08-18 13:30:04.076256: Low import rate windows [0: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 1: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 2: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 3: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 4: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 5: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 6: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 7: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 8: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 9: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 10: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 11: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 12: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 13: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 14: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 15: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 16: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 17: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 27: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 28: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 29: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 30: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 31: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 32: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 33: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 34: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 35: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 36: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 37: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 38: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 39: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 40: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 41: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 42: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 43: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 44: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 45: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 46: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 47: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 48: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 49: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 50: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 51: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 52: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 53: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 54: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 55: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 56: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 57: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 58: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 59: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 60: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 61: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 62: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 63: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 64: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 65: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 66: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 67: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 68: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 69: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 70: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 71: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 72: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 73: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 74: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 75: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 76: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 77: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 78: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 79: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 80: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 81: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 82: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 83: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 84: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 85: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 86: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 87: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 88: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 89: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 90: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 91: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 92: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 93: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75]
2026-08-18 13:30:04.082478: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 50%, target 100%
2026-08-18 13:30:04.082607: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:30:04.082722: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:30:04.082975: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:30:04.083068: No export window planned
2026-08-18 13:30:04.083196: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:30:04.083231: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:30:04.083412: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:30:04.083606: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:30:04.083688: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:30:04.083757: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:30:04.083859: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.083933: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.083994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084061: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084087: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084245: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:30:04.084392: Inverter 0 count register writes 0
2026-08-18 13:30:04.101482: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 13:30:04.106834: Total inverter register writes now 867
2026-08-18 13:30:04.144639: Info: Completed run status Demand
2026-08-18 13:30:04.150726: Info: record_status Demand
2026-08-18 13:30:04.157427: Saved current settings to /config/predbat_config.json
2026-08-18 13:30:04.157774: Compare, best tariff: current metric 129.87p
2026-08-18 13:30:34.260289: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:30:34.260590: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:30:34.260651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:30:34.260851: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:30:34.260899: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:30:34.260923: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:30:34.260943: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:32:34.509802: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:32:34.510020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:32:34.510062: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:32:34.510190: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:32:34.510226: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:32:34.510248: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:32:34.510265: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:34:48.843718: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:34:48.844088: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:34:48.844135: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:34:48.844291: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:34:48.844317: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:34:48.844350: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:34:48.844371: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:35:00.924654: --------------- PredBat - update at 2026-08-18 13:35:00+01:00 with clock skew 0 minutes, minutes now 815
2026-08-18 13:35:00.925357: Saved current settings to /config/predbat_config.json
2026-08-18 13:35:00.925465: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 13:35:00.925536: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:35:00.925626: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:35:00.943468: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:35:00.943585: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:35:00.943858: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:35:00.944629: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:35:00.944888: Predbat mode is set to Control charge & discharge
2026-08-18 13:35:01.116668: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:35:01.116822: Using load_power data to fill gaps in load_today data
2026-08-18 13:35:01.935768: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:35:01.936018: Zero load period starting at 2026-08-17T10:54:00+0100 (1601 minutes) for 189 minutes with base value 207.15
2026-08-18 13:35:01.937806: Processing 721 30-minute periods for power integration
2026-08-18 13:35:02.136663: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:35:02.136792: Car charging hold False, threshold 6.0kWh
2026-08-18 13:35:02.136839: Current data so far today: load 8.3kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:35:02.156790: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:35:02.156947: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:35:02.157659: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:35:02.157775: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:35:02.157842: Standing charge is set to 46.63p
2026-08-18 13:35:02.261145: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:35:02.261384: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:35:02.261584: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:35:02.262681: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:35:02.262891: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:35:02.263048: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:35:02.267862: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:35:02.269119: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:35:02.315638: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:35:02.317086: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:35:02.318433: High export rate found rates in range 99p to -99p
2026-08-18 13:35:02.425052: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:35:02.425168: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:35:02.443670: Battery level now 8.0kWh, -1hr ago 8.48kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 7.97p, rate_forward 6.87p
2026-08-18 13:35:02.444129: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:35:02.517260: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:35:02.517399: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:35:02.604364: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:35:02.637221: Today's load divergence 96.47%, in-day adjustment 94.92%, damping 0.95x, yesterday 92.68% today 96.65% blend 43.4%
2026-08-18 13:35:02.637301: Today's predicted so far 8.84kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 8.84kWh forecast extra.
2026-08-18 13:35:02.637332: Today's actual load so far 8.29kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 13:35:02.671866: Inverter 0: Type SK Sunsynk
2026-08-18 13:35:02.672013: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:35:02.672268: Reserve min: 7%, battery_min: 7%
2026-08-18 13:35:02.672384: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:35:02.672769: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 504W, current battery voltage 51.2V, grid power -52W, load power 553W, PV Power 0W
2026-08-18 13:35:02.672985: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:35:02.673108: Inverter 0 scheduled charge enable is False
2026-08-18 13:35:02.673158: Inverter 0 charge windows currently []
2026-08-18 13:35:02.673188: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:35:02.673338: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:35:02.673446: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:35:02.673535: Inverter 0 scheduled discharge enable is False
2026-08-18 13:35:02.673782: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:35:02.673837: Inverter 0 discharge windows currently []
2026-08-18 13:35:02.673882: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:35:02.673921: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:35:02.673956: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:35:02.731653: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:35:02.731755: Plan was last updated on 2026-08-18 13:25:00+01:00 and is now 10.0 minutes old
2026-08-18 13:35:02.731956: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:35:02.731992: Best export window [  ]
2026-08-18 13:35:02.732645: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:35:02.735377: Load divergence over 8.0 hours mean 425.19W, min 330.0W, max 675.0W, std dev 68.11W, divergence 8.01%
2026-08-18 13:35:02.751327: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:35:02.751413: LoadML is_calculating False
2026-08-18 13:35:02.751465: Creating pool of 12 processes to match your CPU count
2026-08-18 13:35:02.880273: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 622.95p, metric_keep 125.57kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.18kWh, PV 0.0kWh
2026-08-18 13:35:02.993677: Battery has 9.92 hours left - now at 8.0kWh
2026-08-18 13:35:03.042521: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 651.57p, metric_keep 127.28kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.28kWh, PV 0.0kWh
2026-08-18 13:35:03.134115: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 364.15p, metric_keep 5.87kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.28kWh, PV 0.0kWh
2026-08-18 13:35:03.207677: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 342.62p, metric_keep 1.12kWh, min_soc 1.22kWh @ 08-18 23:25:00, load 31.18kWh, PV 0.0kWh
2026-08-18 13:35:03.207777: Saving plan best values to HA entities
2026-08-18 13:35:03.368390: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:35:03.373997: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:35:03.379600: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.36kWh, house 0.0kWh, export 0.0kWh, metric 342.62p, metric10 364.15p
2026-08-18 13:35:03.459324: Marginal costs baseline metric (no standing charge): 295.9889
2026-08-18 13:35:03.727947: Marginal energy costs matrix computed: min=8.0 max=38.32
2026-08-18 13:35:03.799296: Rate array import [{'start': 815, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 815, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:35:03.800036: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 13:35:03.800097: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:35:03.800131: - The battery is currently at 50% and is in eco mode for the next 9 hours.
2026-08-18 13:35:03.800165: - For the next 48 hours there will be no solar generation.
2026-08-18 13:35:03.800193: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 13:35:03.800221: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:35:03.800256: 
2026-08-18 13:35:03.852647: Plan calculation took 1.12 seconds
2026-08-18 13:35:03.856190: No high rate period found
2026-08-18 13:35:03.905215: Import threshold used for optimisation was 8.0p
2026-08-18 13:35:03.954211: Low import rate windows [0: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 1: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 2: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 3: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 4: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 5: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 6: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 7: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 8: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 9: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 10: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 11: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 12: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 13: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 14: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 15: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 16: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 17: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 27: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 28: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 29: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 30: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 31: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 32: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 33: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 34: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 35: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 36: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 37: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 38: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 39: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 40: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 41: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 42: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 43: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 44: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 45: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 46: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 47: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 48: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 49: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 50: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 51: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 52: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 53: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 54: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 55: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 56: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 57: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 58: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 59: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 60: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 61: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 62: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 63: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 64: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 65: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 66: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 67: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 68: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 69: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 70: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 71: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 72: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 73: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 74: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 75: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 76: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 77: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 78: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 79: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 80: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 81: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 82: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 83: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 84: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 85: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 86: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 87: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 88: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 89: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 90: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 91: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 92: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 93: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 94: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75]
2026-08-18 13:35:03.960657: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 50%, target 100%
2026-08-18 13:35:03.960804: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:35:03.960907: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:35:03.961156: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:35:03.961251: No export window planned
2026-08-18 13:35:03.961376: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:35:03.961411: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:35:03.961541: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:35:03.961734: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:35:03.961804: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:35:03.961870: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:35:03.961965: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962003: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962031: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962056: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962160: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:03.962444: Inverter 0 count register writes 0
2026-08-18 13:35:03.977674: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 13:35:03.977853: Recompute is saving previous plan...
2026-08-18 13:35:03.981001: Best charge window [ 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0% ]
2026-08-18 13:35:03.981076: Best export window [  ]
2026-08-18 13:35:03.981914: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:35:03.984947: Load divergence over 8.0 hours mean 425.19W, min 330.0W, max 675.0W, std dev 68.11W, divergence 8.01%
2026-08-18 13:35:04.002436: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:35:04.002522: LoadML is_calculating False
2026-08-18 13:35:04.002581: Creating pool of 12 processes to match your CPU count
2026-08-18 13:35:04.093209: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 13:35:04.095169: Optimise levels pass started at 2026-08-18 13:35:04
2026-08-18 13:35:04.095239: Optimise all windows, total charge 94 export 1
2026-08-18 13:35:04.504342: >> Region optimisation pass width 960 gives best_metric 379.23p, best_cost 435.38p, best_cycle 50.67kWh, best_import 36.78kWh
2026-08-18 13:35:04.700270: >> Region optimisation pass width 480 gives best_metric 379.23p, best_cost 435.38p, best_cycle 50.67kWh, best_import 36.78kWh
2026-08-18 13:35:05.024444: >> Region optimisation pass width 240 gives best_metric 375.05p, best_cost 385.29p, best_cycle 50.01kWh, best_import 30.52kWh
2026-08-18 13:35:06.209308: >> Region optimisation pass width 120 gives best_metric 372.99p, best_cost 396.03p, best_cycle 51.3kWh, best_import 31.87kWh
2026-08-18 13:35:06.209654: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 66
2026-08-18 13:35:06.209877: Optimise levels pass ended at 2026-08-18 13:35:06, duration 2.1 seconds tried 220 combinations
2026-08-18 13:35:06.209992: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 372.99p, best_keep 0.77kWh, best_cycle 51.3kWh, best_carbon 0kg, best_import 31.87kWh
2026-08-18 13:35:06.230473: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 15.5, 15.5, 15.5, 15.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 13:35:11.140931: Tweak plan optimisation started metric 283.25p, cost 293.69p
2026-08-18 13:35:11.442354: Tweak optimisation finished metric 283.25p, cost 293.69p, metric_keep 0.77kWh, cycle 34.46kWh, carbon 0kg, import 19.07kWh, changed 8 window(s)
2026-08-18 13:35:11.461538: Swap charge optimisation started metric 283.25p, cost 293.69p, min_improvement_swap 0.1p
2026-08-18 13:35:15.634503: Swap charge optimisation finished metric 283.25p, cost 293.69p
2026-08-18 13:35:15.716996: Raw charge windows [ 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 89%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:35:15.717398: Unclipped charge windows [ 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:35:15.717552: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:35:15.717668: Filtered charge windows [ 18-08 23:30:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:35:15.747873: Previous plan best metric is 282.07 (cost 291.92) and new plan best metric is 283.25 (cost 293.69)
2026-08-18 13:35:15.748982: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 13:35:15.749137: Plan valid is now true after recompute was False
2026-08-18 13:35:15.771307: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 621.36p, metric_keep 125.32kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 30.99kWh, PV 0.0kWh
2026-08-18 13:35:15.865758: Battery has 9.92 hours left - now at 8.0kWh
2026-08-18 13:35:15.905159: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 649.91p, metric_keep 127.03kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.07kWh, PV 0.0kWh
2026-08-18 13:35:15.975625: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 356.93p, metric_keep 5.85kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.07kWh, PV 0.0kWh
2026-08-18 13:35:16.039197: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 334.37p, metric_keep 1.12kWh, min_soc 1.22kWh @ 08-18 23:25:00, load 30.99kWh, PV 0.0kWh
2026-08-18 13:35:16.039281: Saving plan best values to HA entities
2026-08-18 13:35:16.182069: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:35:16.186395: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:35:16.190704: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.33kWh, house 0.0kWh, export 0.0kWh, metric 334.37p, metric10 356.93p
2026-08-18 13:35:16.250511: Marginal costs baseline metric (no standing charge): 287.7343
2026-08-18 13:35:16.465482: Marginal energy costs matrix computed: min=8.0 max=38.32
2026-08-18 13:35:16.523558: Rate array import [{'start': 815, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 815, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:35:16.524173: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 13:35:16.524217: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:35:16.524236: - The battery is currently at 50% and is in eco mode for the next 9 hours.
2026-08-18 13:35:16.524251: - For the next 48 hours there will be no solar generation.
2026-08-18 13:35:16.524265: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 13:35:16.524279: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:35:16.524293: 
2026-08-18 13:35:16.584203: Plan calculation took 12.61 seconds
2026-08-18 13:35:16.584518: Inverter 0: Type SK Sunsynk
2026-08-18 13:35:16.584578: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:35:16.584829: Reserve min: 7%, battery_min: 7%
2026-08-18 13:35:16.584912: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:35:16.585297: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 521W, current battery voltage 51.2V, grid power -55W, load power 574W, PV Power 0W
2026-08-18 13:35:16.585558: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:35:16.585676: Inverter 0 scheduled charge enable is False
2026-08-18 13:35:16.585734: Inverter 0 charge windows currently []
2026-08-18 13:35:16.585779: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:35:16.585904: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:35:16.585943: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:35:16.585991: Inverter 0 scheduled discharge enable is False
2026-08-18 13:35:16.586161: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:35:16.586209: Inverter 0 discharge windows currently []
2026-08-18 13:35:16.586241: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:35:16.586272: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:35:16.586288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:35:16.644131: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 50%, target 100%
2026-08-18 13:35:16.644310: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:35:16.644390: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:35:16.644572: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:35:16.644673: No export window planned
2026-08-18 13:35:16.644827: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:35:16.644866: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:35:16.645025: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:35:16.645204: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:35:16.645263: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:35:16.645332: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:35:16.645436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645514: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645562: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645678: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645740: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.645977: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.646019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.646048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:35:16.646076: Inverter 0 count register writes 0
2026-08-18 13:35:16.665417: Total inverter register writes now 867
2026-08-18 13:35:16.694008: Info: Completed run status Demand
2026-08-18 13:35:16.699065: Info: record_status Demand
2026-08-18 13:35:16.705142: Saved current settings to /config/predbat_config.json
2026-08-18 13:35:16.705429: Compare, best tariff: current metric 129.87p
2026-08-18 13:35:48.800227: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:35:48.800446: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:35:48.800488: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:35:48.800617: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:35:48.800655: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:35:48.800676: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:35:48.800710: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:37:49.008053: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:37:49.008269: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:37:49.008310: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:37:49.008441: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:37:49.008479: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:37:49.008501: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:37:49.008519: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:39:49.240772: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:39:49.240990: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:39:49.241051: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:39:49.241189: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:39:49.241227: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:39:49.241248: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:39:49.241266: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:40:00.318494: --------------- PredBat - update at 2026-08-18 13:40:00+01:00 with clock skew 0 minutes, minutes now 820
2026-08-18 13:40:00.319351: Saved current settings to /config/predbat_config.json
2026-08-18 13:40:00.319494: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 13:40:00.319597: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:40:00.319712: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:40:00.336900: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:40:00.337048: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:40:00.337289: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:40:00.337886: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:40:00.338071: Predbat mode is set to Control charge & discharge
2026-08-18 13:40:00.513222: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:40:00.513346: Using load_power data to fill gaps in load_today data
2026-08-18 13:40:01.316823: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:40:01.317455: Zero load period starting at 2026-08-17T10:54:00+0100 (1606 minutes) for 189 minutes with base value 207.125
2026-08-18 13:40:01.318398: Processing 721 30-minute periods for power integration
2026-08-18 13:40:01.465740: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:40:01.465836: Car charging hold False, threshold 6.0kWh
2026-08-18 13:40:01.465871: Current data so far today: load 8.35kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:40:01.479124: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:40:01.479194: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:40:01.479810: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:40:01.479877: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:40:01.479961: Standing charge is set to 46.63p
2026-08-18 13:40:01.559926: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:40:01.560347: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:40:01.560505: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:40:01.561362: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:40:01.561447: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:40:01.561554: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:40:01.566097: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:40:01.566525: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:40:01.601587: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:40:01.601710: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:40:01.603128: High export rate found rates in range 99p to -99p
2026-08-18 13:40:01.685714: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:40:01.685857: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:40:01.703445: Battery level now 8.0kWh, -1hr ago 8.48kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 7.97p, rate_forward 6.87p
2026-08-18 13:40:01.703987: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:40:01.767672: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:40:01.767840: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:40:01.873040: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:40:01.910172: Today's load divergence 96.52%, in-day adjustment 94.96%, damping 0.95x, yesterday 92.68% today 96.69% blend 43.06%
2026-08-18 13:40:01.910248: Today's predicted so far 8.85kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 8.85kWh forecast extra.
2026-08-18 13:40:01.910274: Today's actual load so far 8.32kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 13:40:01.938846: Inverter 0: Type SK Sunsynk
2026-08-18 13:40:01.938916: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:40:01.939058: Reserve min: 7%, battery_min: 7%
2026-08-18 13:40:01.939112: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:40:01.939316: Inverter 0 SoC: 7.86kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 571W, current battery voltage 51.2V, grid power -55W, load power 624W, PV Power 0W
2026-08-18 13:40:01.939437: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:40:01.939508: Inverter 0 scheduled charge enable is False
2026-08-18 13:40:01.939530: Inverter 0 charge windows currently []
2026-08-18 13:40:01.939551: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:40:01.939655: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:40:01.939686: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:40:01.939716: Inverter 0 scheduled discharge enable is False
2026-08-18 13:40:01.939819: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:40:01.939848: Inverter 0 discharge windows currently []
2026-08-18 13:40:01.939866: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:40:01.939881: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:40:01.939928: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:40:01.989693: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:40:01.989779: Plan was last updated on 2026-08-18 13:35:00+01:00 and is now 5.0 minutes old
2026-08-18 13:40:01.989942: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:40:01.989992: Best export window [  ]
2026-08-18 13:40:01.990617: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:40:01.993164: Load divergence over 8.0 hours mean 426.4W, min 345.0W, max 712.8W, std dev 65.93W, divergence 7.73%
2026-08-18 13:40:02.008207: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:40:02.008277: LoadML is_calculating False
2026-08-18 13:40:02.008323: Creating pool of 12 processes to match your CPU count
2026-08-18 13:40:02.111348: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.71p, metric_keep 125.94kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.08kWh, PV 0.0kWh
2026-08-18 13:40:02.230924: Battery has 9.83 hours left - now at 7.86kWh
2026-08-18 13:40:02.277555: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 653.31p, metric_keep 127.67kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.16kWh, PV 0.0kWh
2026-08-18 13:40:02.348944: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 363.01p, metric_keep 6.38kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.16kWh, PV 0.0kWh
2026-08-18 13:40:02.424962: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 339.25p, metric_keep 1.6kWh, min_soc 1.13kWh @ 08-18 23:25:00, load 31.08kWh, PV 0.0kWh
2026-08-18 13:40:02.425038: Saving plan best values to HA entities
2026-08-18 13:40:02.582688: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:40:02.587864: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:40:02.593181: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.94kWh, house 0.0kWh, export 0.0kWh, metric 339.25p, metric10 363.01p
2026-08-18 13:40:02.661310: Marginal costs baseline metric (no standing charge): 292.617
2026-08-18 13:40:02.947374: Marginal energy costs matrix computed: min=8.0 max=39.21
2026-08-18 13:40:03.017191: Rate array import [{'start': 820, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 820, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:40:03.018040: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:40:03.018099: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:40:03.018124: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 13:40:03.018143: - For the next 48 hours there will be no solar generation.
2026-08-18 13:40:03.018160: - You have enough battery to reach the next charge.
2026-08-18 13:40:03.018178: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:40:03.018201: 
2026-08-18 13:40:03.070571: Plan calculation took 1.08 seconds
2026-08-18 13:40:03.075058: No high rate period found
2026-08-18 13:40:03.128050: Import threshold used for optimisation was 8.0p
2026-08-18 13:40:03.184833: Low import rate windows [0: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 1: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 2: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 3: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 4: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 5: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 6: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 7: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 8: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 9: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 10: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 11: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 12: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 13: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 14: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 15: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 16: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 17: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 27: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 28: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 29: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 30: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 31: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 32: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 33: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 34: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 35: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 36: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 37: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 38: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 39: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 40: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 41: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 42: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 43: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 44: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 45: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 46: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 47: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 48: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 49: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 50: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 51: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 52: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 53: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 54: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 55: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 56: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 57: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 58: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 59: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 60: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 61: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 62: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 63: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 64: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 65: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 66: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 67: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 68: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 69: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 70: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 71: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 72: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 73: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 74: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 75: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 76: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 77: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 78: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 79: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 80: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 81: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 82: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 83: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 84: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 85: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 86: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 87: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 88: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 89: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 90: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 91: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 92: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 93: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 94: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75]
2026-08-18 13:40:03.195736: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 13:40:03.195888: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:40:03.196030: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:40:03.196306: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:40:03.196437: No export window planned
2026-08-18 13:40:03.196750: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:40:03.196798: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:40:03.196931: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:40:03.197096: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:40:03.197159: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:40:03.197230: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:40:03.197322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197382: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.197604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.198289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.199704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.199786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.199824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:40:03.199854: Inverter 0 count register writes 0
2026-08-18 13:40:03.227647: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 13:40:03.236513: Total inverter register writes now 867
2026-08-18 13:40:03.290615: Info: Completed run status Demand
2026-08-18 13:40:03.296380: Info: record_status Demand
2026-08-18 13:40:03.303472: Saved current settings to /config/predbat_config.json
2026-08-18 13:40:03.303830: Compare, best tariff: current metric 129.87p
2026-08-18 13:40:34.406124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:40:34.406355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:40:34.406395: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:40:34.406546: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:40:34.406587: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:40:34.406625: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:40:34.406747: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:42:34.610506: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:42:34.610756: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:42:34.610798: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:42:34.610931: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:42:34.610970: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:42:34.610991: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:42:34.611010: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:44:48.864471: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:44:48.864802: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:44:48.864872: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:44:48.864988: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:44:48.865050: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:44:48.865075: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:44:48.865089: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:45:00.945649: --------------- PredBat - update at 2026-08-18 13:45:00+01:00 with clock skew 0 minutes, minutes now 825
2026-08-18 13:45:00.946463: Saved current settings to /config/predbat_config.json
2026-08-18 13:45:00.946637: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 13:45:00.946769: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:45:00.946874: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:45:00.964878: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:45:00.965043: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:45:00.965210: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:45:00.965725: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:45:00.965845: Predbat mode is set to Control charge & discharge
2026-08-18 13:45:01.146343: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:45:01.146462: Using load_power data to fill gaps in load_today data
2026-08-18 13:45:02.053837: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:45:02.053990: Zero load period starting at 2026-08-17T10:54:00+0100 (1611 minutes) for 189 minutes with base value 207.1
2026-08-18 13:45:02.054993: Processing 721 30-minute periods for power integration
2026-08-18 13:45:02.214697: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:45:02.214812: Car charging hold False, threshold 6.0kWh
2026-08-18 13:45:02.214859: Current data so far today: load 8.4kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:45:02.233169: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:45:02.233259: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:45:02.234145: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:45:02.234462: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:45:02.234548: Standing charge is set to 46.63p
2026-08-18 13:45:02.320047: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:45:02.320249: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:45:02.320393: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:45:02.321809: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:45:02.321943: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:45:02.322108: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:45:02.329926: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:45:02.330368: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:45:02.375684: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:45:02.375789: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:45:02.376958: High export rate found rates in range 99p to -99p
2026-08-18 13:45:02.461994: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:45:02.462110: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:45:02.474908: Battery level now 7.86kWh, -1hr ago 8.42kWh, at midnight 6.84kWh, battery value change in the last hour -3.85p, change today 6.98p, rate_forward 6.87p
2026-08-18 13:45:02.475207: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:45:02.524468: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:45:02.524611: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:45:02.602617: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:45:02.630018: Today's load divergence 96.58%, in-day adjustment 95.01%, damping 0.95x, yesterday 92.68% today 96.75% blend 42.71%
2026-08-18 13:45:02.630094: Today's predicted so far 8.88kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 8.88kWh forecast extra.
2026-08-18 13:45:02.630120: Today's actual load so far 8.35kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 13:45:02.658720: Inverter 0: Type SK Sunsynk
2026-08-18 13:45:02.658803: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:45:02.658979: Reserve min: 7%, battery_min: 7%
2026-08-18 13:45:02.659056: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:45:02.659318: Inverter 0 SoC: 7.86kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 514W, current battery voltage 51.2V, grid power -56W, load power 570W, PV Power 0W
2026-08-18 13:45:02.659463: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:45:02.659563: Inverter 0 scheduled charge enable is False
2026-08-18 13:45:02.659601: Inverter 0 charge windows currently []
2026-08-18 13:45:02.659628: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:45:02.659735: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:45:02.659789: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:45:02.659826: Inverter 0 scheduled discharge enable is False
2026-08-18 13:45:02.659989: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:45:02.660030: Inverter 0 discharge windows currently []
2026-08-18 13:45:02.660114: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:45:02.660148: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:45:02.660167: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:45:02.721234: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:45:02.721353: Plan was last updated on 2026-08-18 13:35:00+01:00 and is now 10.0 minutes old
2026-08-18 13:45:02.721648: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:45:02.721697: Best export window [  ]
2026-08-18 13:45:02.722567: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:45:02.726575: Load divergence over 8.0 hours mean 428.15W, min 307.2W, max 753.0W, std dev 75.88W, divergence 8.86%
2026-08-18 13:45:02.745388: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:45:02.745459: LoadML is_calculating False
2026-08-18 13:45:02.745505: Creating pool of 12 processes to match your CPU count
2026-08-18 13:45:02.859738: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 623.2p, metric_keep 125.71kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.18kWh, PV 0.0kWh
2026-08-18 13:45:02.969650: Battery has 9.75 hours left - now at 7.86kWh
2026-08-18 13:45:03.009502: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 652.22p, metric_keep 127.42kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.26kWh, PV 0.0kWh
2026-08-18 13:45:03.092898: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 364.7p, metric_keep 6.03kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.26kWh, PV 0.0kWh
2026-08-18 13:45:03.167452: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 342.89p, metric_keep 1.25kWh, min_soc 1.19kWh @ 08-18 23:25:00, load 31.18kWh, PV 0.0kWh
2026-08-18 13:45:03.167539: Saving plan best values to HA entities
2026-08-18 13:45:03.318503: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:45:03.323419: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:45:03.328925: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.39kWh, house 0kWh, export 0.0kWh, metric 342.89p, metric10 364.7p
2026-08-18 13:45:03.405172: Marginal costs baseline metric (no standing charge): 296.2597
2026-08-18 13:45:03.719246: Marginal energy costs matrix computed: min=8.0 max=39.43
2026-08-18 13:45:03.830885: Rate array import [{'start': 825, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 825, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:45:03.831668: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:45:03.831712: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:45:03.831732: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 13:45:03.831748: - For the next 48 hours there will be no solar generation.
2026-08-18 13:45:03.831762: - You have enough battery to reach the next charge.
2026-08-18 13:45:03.831791: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:45:03.831810: 
2026-08-18 13:45:03.883291: Plan calculation took 1.16 seconds
2026-08-18 13:45:03.886856: No high rate period found
2026-08-18 13:45:03.938534: Import threshold used for optimisation was 8.0p
2026-08-18 13:45:04.003235: Low import rate windows [0: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 1: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 2: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 3: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 4: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 5: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 6: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 7: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 8: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 9: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 10: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 11: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 12: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 13: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 14: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 15: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 16: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 17: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 27: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 28: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 29: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 30: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 31: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 32: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 33: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 34: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 35: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 36: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 37: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 38: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 39: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 40: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 41: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 42: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 43: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 44: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 45: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 46: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 47: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 48: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 49: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 50: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 51: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 52: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 53: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 54: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 55: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 56: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 57: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 58: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 59: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 60: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 61: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 62: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 63: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 64: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 65: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 66: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 67: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 68: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 69: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 70: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 71: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 72: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 73: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 74: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 75: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 76: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 77: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 78: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 79: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 80: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 81: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 82: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 83: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 84: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 85: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 86: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 87: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 88: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 89: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 90: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 91: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 92: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 93: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 94: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75]
2026-08-18 13:45:04.008967: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 13:45:04.009090: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:45:04.009178: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:45:04.009418: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:45:04.009510: No export window planned
2026-08-18 13:45:04.009663: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:45:04.009699: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:45:04.009831: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:45:04.010009: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:45:04.010090: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:45:04.010156: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:45:04.010246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010314: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010388: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010636: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:04.010686: Inverter 0 count register writes 0
2026-08-18 13:45:04.025770: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 13:45:04.025941: Recompute is saving previous plan...
2026-08-18 13:45:04.029139: Best charge window [ 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0% ]
2026-08-18 13:45:04.029216: Best export window [  ]
2026-08-18 13:45:04.030117: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:45:04.033362: Load divergence over 8.0 hours mean 428.15W, min 307.2W, max 753.0W, std dev 75.88W, divergence 8.86%
2026-08-18 13:45:04.049625: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:45:04.049730: LoadML is_calculating False
2026-08-18 13:45:04.049784: Creating pool of 12 processes to match your CPU count
2026-08-18 13:45:04.126395: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 13:45:04.129268: Optimise levels pass started at 2026-08-18 13:45:04
2026-08-18 13:45:04.129353: Optimise all windows, total charge 94 export 1
2026-08-18 13:45:04.551259: >> Region optimisation pass width 960 gives best_metric 380.59p, best_cost 437.75p, best_cycle 50.98kWh, best_import 37.08kWh
2026-08-18 13:45:04.765699: >> Region optimisation pass width 480 gives best_metric 380.59p, best_cost 437.75p, best_cycle 50.98kWh, best_import 37.08kWh
2026-08-18 13:45:05.153935: >> Region optimisation pass width 240 gives best_metric 380.59p, best_cost 437.75p, best_cycle 50.98kWh, best_import 37.08kWh
2026-08-18 13:45:06.338568: >> Region optimisation pass width 120 gives best_metric 372.85p, best_cost 387.76p, best_cycle 50.3kWh, best_import 30.83kWh
2026-08-18 13:45:06.339060: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 66
2026-08-18 13:45:06.339186: Optimise levels pass ended at 2026-08-18 13:45:06, duration 2.2 seconds tried 217 combinations
2026-08-18 13:45:06.339309: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 372.85p, best_keep 0.91kWh, best_cycle 50.3kWh, best_carbon 0kg, best_import 30.83kWh
2026-08-18 13:45:06.361548: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 13:45:11.634794: Tweak plan optimisation started metric 282.49p, cost 292.14p
2026-08-18 13:45:11.945306: Tweak optimisation finished metric 282.49p, cost 292.14p, metric_keep 0.91kWh, cycle 32.46kWh, carbon 0kg, import 18.88kWh, changed 8 window(s)
2026-08-18 13:45:11.964598: Swap charge optimisation started metric 282.49p, cost 292.14p, min_improvement_swap 0.1p
2026-08-18 13:45:18.324118: Swap charge optimisation finished metric 282.49p, cost 292.14p
2026-08-18 13:45:18.465885: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 280.36p -> 280.2p, plan now metric 282.92p, cost 290.13p, cycle 32.72kWh, import 18.63kWh
2026-08-18 13:45:18.479816: Raw charge windows [ 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:45:18.480449: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:45:18.480675: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:45:18.480821: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:45:18.520093: Previous plan best metric is 282.49 (cost 292.14) and new plan best metric is 282.49 (cost 292.14)
2026-08-18 13:45:18.520314: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 13:45:18.520480: Plan valid is now true after recompute was False
2026-08-18 13:45:18.548882: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 621.59p, metric_keep 125.46kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 30.98kWh, PV 0.0kWh
2026-08-18 13:45:18.651284: Battery has 9.75 hours left - now at 7.86kWh
2026-08-18 13:45:18.695773: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 650.54p, metric_keep 127.17kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.05kWh, PV 0.0kWh
2026-08-18 13:45:18.773621: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 357.46p, metric_keep 6.01kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.05kWh, PV 0.0kWh
2026-08-18 13:45:18.848042: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 334.62p, metric_keep 1.25kWh, min_soc 1.19kWh @ 08-18 23:25:00, load 30.98kWh, PV 0.0kWh
2026-08-18 13:45:18.848127: Saving plan best values to HA entities
2026-08-18 13:45:18.994043: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:45:18.999100: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:45:19.004258: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.36kWh, house 0kWh, export 0.0kWh, metric 334.62p, metric10 357.46p
2026-08-18 13:45:19.078022: Marginal costs baseline metric (no standing charge): 287.9842
2026-08-18 13:45:19.358497: Marginal energy costs matrix computed: min=8.0 max=39.43
2026-08-18 13:45:19.431952: Rate array import [{'start': 825, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 825, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:45:19.432637: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 13:45:19.432692: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:45:19.435652: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 13:45:19.435693: - For the next 48 hours there will be no solar generation.
2026-08-18 13:45:19.435710: - You have enough battery to reach the next charge.
2026-08-18 13:45:19.435725: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:45:19.435738: 
2026-08-18 13:45:19.499281: Plan calculation took 15.47 seconds
2026-08-18 13:45:19.499612: Inverter 0: Type SK Sunsynk
2026-08-18 13:45:19.499669: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:45:19.500437: Reserve min: 7%, battery_min: 7%
2026-08-18 13:45:19.501390: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:45:19.501759: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 522W, current battery voltage 51.2V, grid power -53W, load power 576W, PV Power 0W
2026-08-18 13:45:19.502005: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:45:19.502113: Inverter 0 scheduled charge enable is False
2026-08-18 13:45:19.502158: Inverter 0 charge windows currently []
2026-08-18 13:45:19.502215: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:45:19.502423: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:45:19.502468: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:45:19.502506: Inverter 0 scheduled discharge enable is False
2026-08-18 13:45:19.502648: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:45:19.502697: Inverter 0 discharge windows currently []
2026-08-18 13:45:19.503176: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:45:19.504158: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:45:19.504990: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:45:19.584927: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 13:45:19.585091: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:45:19.585155: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:45:19.585330: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:45:19.585411: No export window planned
2026-08-18 13:45:19.585540: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:45:19.585577: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:45:19.585709: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:45:19.585886: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:45:19.585937: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:45:19.585998: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:45:19.586078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586117: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586175: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586205: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586230: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586260: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:45:19.586566: Inverter 0 count register writes 0
2026-08-18 13:45:19.608417: Total inverter register writes now 867
2026-08-18 13:45:19.640054: Info: Completed run status Demand
2026-08-18 13:45:19.646280: Info: record_status Demand
2026-08-18 13:45:19.652612: Saved current settings to /config/predbat_config.json
2026-08-18 13:45:19.652880: Compare, best tariff: current metric 129.87p
2026-08-18 13:46:03.796447: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:46:03.796693: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:46:03.796735: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:46:03.796868: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:46:03.796926: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:46:03.796965: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:46:03.796985: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:48:04.019229: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:48:04.019458: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:48:04.019517: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:48:04.019664: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:48:04.019715: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:48:04.019736: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:48:04.019757: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:50:00.237706: --------------- PredBat - update at 2026-08-18 13:50:00+01:00 with clock skew 0 minutes, minutes now 830
2026-08-18 13:50:00.238695: Saved current settings to /config/predbat_config.json
2026-08-18 13:50:00.238853: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 13:50:00.238945: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:50:00.239083: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:50:00.258555: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:50:00.258686: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:50:00.258909: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:50:00.259421: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:50:00.259577: Predbat mode is set to Control charge & discharge
2026-08-18 13:50:00.432777: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:50:00.432903: Using load_power data to fill gaps in load_today data
2026-08-18 13:50:01.307451: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:50:01.307622: Zero load period starting at 2026-08-17T10:54:00+0100 (1616 minutes) for 189 minutes with base value 207.0833
2026-08-18 13:50:01.308827: Processing 721 30-minute periods for power integration
2026-08-18 13:50:01.492729: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:50:01.492856: Car charging hold False, threshold 6.0kWh
2026-08-18 13:50:01.492900: Current data so far today: load 8.45kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:50:01.511015: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:50:01.511115: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:50:01.511841: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:50:01.511954: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:50:01.512014: Standing charge is set to 46.63p
2026-08-18 13:50:01.599094: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:50:01.599360: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:50:01.599563: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:50:01.600656: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:50:01.600770: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:50:01.600883: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:50:01.606046: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:50:01.606397: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:50:01.650758: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:50:01.650873: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:50:01.652197: High export rate found rates in range 99p to -99p
2026-08-18 13:50:01.746322: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:50:01.746443: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:50:01.758793: Battery level now 7.86kWh, -1hr ago 8.42kWh, at midnight 6.84kWh, battery value change in the last hour -3.85p, change today 6.98p, rate_forward 6.87p
2026-08-18 13:50:01.759193: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:50:01.809374: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:50:01.809527: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:50:01.897166: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:50:01.931694: Today's load divergence 96.67%, in-day adjustment 95.07%, damping 0.95x, yesterday 92.68% today 96.83% blend 42.36%
2026-08-18 13:50:01.931781: Today's predicted so far 8.91kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 8.91kWh forecast extra.
2026-08-18 13:50:01.931813: Today's actual load so far 8.4kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 13:50:01.961618: Inverter 0: Type SK Sunsynk
2026-08-18 13:50:01.961687: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:50:01.961826: Reserve min: 7%, battery_min: 7%
2026-08-18 13:50:01.961882: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:50:01.962090: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 581W, current battery voltage 51.2V, grid power -54W, load power 632W, PV Power 0W
2026-08-18 13:50:01.962212: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:50:01.962280: Inverter 0 scheduled charge enable is False
2026-08-18 13:50:01.962308: Inverter 0 charge windows currently []
2026-08-18 13:50:01.962330: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:50:01.962415: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:50:01.962445: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:50:01.962491: Inverter 0 scheduled discharge enable is False
2026-08-18 13:50:01.962595: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:50:01.962625: Inverter 0 discharge windows currently []
2026-08-18 13:50:01.962643: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:50:01.962658: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:50:01.962672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:50:02.015262: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:50:02.015360: Plan was last updated on 2026-08-18 13:45:00+01:00 and is now 5.0 minutes old
2026-08-18 13:50:02.015580: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:50:02.015623: Best export window [  ]
2026-08-18 13:50:02.016486: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:50:02.019675: Load divergence over 8.0 hours mean 427.85W, min 316.8W, max 620.4W, std dev 66.26W, divergence 7.74%
2026-08-18 13:50:02.038084: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:50:02.038168: LoadML is_calculating False
2026-08-18 13:50:02.038224: Creating pool of 12 processes to match your CPU count
2026-08-18 13:50:02.153313: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 621.9p, metric_keep 125.4kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.07kWh, PV 0.0kWh
2026-08-18 13:50:02.276771: Battery has 9.75 hours left - now at 7.84kWh
2026-08-18 13:50:02.321185: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 649.95p, metric_keep 127.06kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.14kWh, PV 0.0kWh
2026-08-18 13:50:02.396108: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 359.59p, metric_keep 5.75kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.14kWh, PV 0.0kWh
2026-08-18 13:50:02.469486: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 338.4p, metric_keep 1.05kWh, min_soc 1.23kWh @ 08-18 23:25:00, load 31.07kWh, PV 0.0kWh
2026-08-18 13:50:02.469591: Saving plan best values to HA entities
2026-08-18 13:50:02.629735: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:50:02.634970: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 13:50:02.640707: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.83kWh, house 0kWh, export 0.0kWh, metric 338.4p, metric10 359.59p
2026-08-18 13:50:02.711468: Marginal costs baseline metric (no standing charge): 291.7621
2026-08-18 13:50:02.982869: Marginal energy costs matrix computed: min=8.0 max=39.76
2026-08-18 13:50:03.053711: Rate array import [{'start': 830, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 830, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:50:03.054384: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 13:50:03.054426: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:50:03.054450: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 13:50:03.054484: - For the next 48 hours there will be no solar generation.
2026-08-18 13:50:03.054510: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 13:50:03.054528: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:50:03.054550: 
2026-08-18 13:50:03.106977: Plan calculation took 1.09 seconds
2026-08-18 13:50:03.110984: No high rate period found
2026-08-18 13:50:03.158352: Import threshold used for optimisation was 8.0p
2026-08-18 13:50:03.206361: Low import rate windows [0: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 1: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 2: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 3: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 4: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 5: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 6: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 7: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 8: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 9: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 10: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 11: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 12: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 13: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 14: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 15: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 16: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 17: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 27: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 28: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 29: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 30: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 31: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 32: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 33: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 34: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 35: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 36: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 37: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 38: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 39: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 40: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 41: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 42: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 43: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 44: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 45: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 46: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 47: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 48: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 49: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 50: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 51: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 52: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 53: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 54: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 55: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 56: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 57: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 58: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 59: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 60: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 61: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 62: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 63: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 64: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 65: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 66: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 67: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 68: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 69: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 70: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 71: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 72: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 73: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 74: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 75: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 76: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 77: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 78: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 79: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 80: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 81: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 82: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 83: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 84: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 85: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 86: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 87: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 88: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 89: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 90: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 91: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 92: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 93: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 94: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75]
2026-08-18 13:50:03.212508: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 13:50:03.212639: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:50:03.212743: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:50:03.212985: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:50:03.213080: No export window planned
2026-08-18 13:50:03.213212: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:50:03.213247: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:50:03.213377: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:50:03.213573: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:50:03.213637: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:50:03.213725: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:50:03.213843: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.213884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.213917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.213948: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.213973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.213998: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214141: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:50:03.214452: Inverter 0 count register writes 0
2026-08-18 13:50:03.233741: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 13:50:03.242923: Total inverter register writes now 867
2026-08-18 13:50:03.279754: Info: Completed run status Demand
2026-08-18 13:50:03.293549: Info: record_status Demand
2026-08-18 13:50:03.314624: Saved current settings to /config/predbat_config.json
2026-08-18 13:50:03.315044: Compare, best tariff: current metric 129.87p
2026-08-18 13:50:34.437146: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:50:34.437372: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:50:34.437420: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:50:34.437597: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:50:34.437643: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:50:34.437665: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:50:34.437690: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:52:48.679630: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:52:48.680010: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:52:48.680073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:52:48.680288: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:52:48.680352: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:52:48.680393: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:52:48.680430: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:54:48.910415: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:54:48.910664: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:54:48.910708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:54:48.910841: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:54:48.910880: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:54:48.910901: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:54:48.910923: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:55:00.003735: --------------- PredBat - update at 2026-08-18 13:55:00+01:00 with clock skew 0 minutes, minutes now 835
2026-08-18 13:55:00.004554: Saved current settings to /config/predbat_config.json
2026-08-18 13:55:00.004682: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 13:55:00.004810: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 13:55:00.004944: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 13:55:00.023640: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 13:55:00.023822: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 13:55:00.024048: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 13:55:00.024986: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 13:55:00.025158: Predbat mode is set to Control charge & discharge
2026-08-18 13:55:00.224015: Found 21602 load_today datapoints going back 28 days
2026-08-18 13:55:00.224147: Using load_power data to fill gaps in load_today data
2026-08-18 13:55:01.105037: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:55:01.105197: Zero load period starting at 2026-08-17T10:54:00+0100 (1621 minutes) for 189 minutes with base value 207.0667
2026-08-18 13:55:01.106156: Processing 721 30-minute periods for power integration
2026-08-18 13:55:01.250703: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 13:55:01.250800: Car charging hold False, threshold 6.0kWh
2026-08-18 13:55:01.250845: Current data so far today: load 8.5kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 13:55:01.264118: Car 0 using Octopus Intelligent is unplugged
2026-08-18 13:55:01.264189: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 13:55:01.264948: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:55:01.265016: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 13:55:01.265058: Standing charge is set to 46.63p
2026-08-18 13:55:01.335805: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:55:01.336044: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:55:01.336224: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 13:55:01.337095: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 13:55:01.337181: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 13:55:01.337264: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 13:55:01.341564: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 13:55:01.341855: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 13:55:01.376730: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 13:55:01.376820: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 13:55:01.377998: High export rate found rates in range 99p to -99p
2026-08-18 13:55:01.455765: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 13:55:01.455857: Car 0 on Octopus Intelligent, no active plan
2026-08-18 13:55:01.466121: Battery level now 7.84kWh, -1hr ago 8.32kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 6.87p, rate_forward 6.87p
2026-08-18 13:55:01.466469: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 13:55:01.519668: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 13:55:01.519851: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:55:01.608017: Using weighted-bucket historical load forecast over 14 days
2026-08-18 13:55:01.642375: Today's load divergence 96.92%, in-day adjustment 95.23%, damping 0.95x, yesterday 92.68% today 97.08% blend 42.01%
2026-08-18 13:55:01.642477: Today's predicted so far 8.93kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 8.93kWh forecast extra.
2026-08-18 13:55:01.642510: Today's actual load so far 8.46kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 13:55:01.676680: Inverter 0: Type SK Sunsynk
2026-08-18 13:55:01.676764: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:55:01.676940: Reserve min: 7%, battery_min: 7%
2026-08-18 13:55:01.677014: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:55:01.677277: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 527W, current battery voltage 51.2V, grid power -46W, load power 571W, PV Power 0W
2026-08-18 13:55:01.677445: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:55:01.677533: Inverter 0 scheduled charge enable is False
2026-08-18 13:55:01.677562: Inverter 0 charge windows currently []
2026-08-18 13:55:01.677593: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:55:01.677702: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:55:01.677737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:55:01.677773: Inverter 0 scheduled discharge enable is False
2026-08-18 13:55:01.677899: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:55:01.677935: Inverter 0 discharge windows currently []
2026-08-18 13:55:01.677957: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:55:01.677978: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:55:01.677995: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:55:01.730226: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 13:55:01.730323: Plan was last updated on 2026-08-18 13:45:00+01:00 and is now 10.0 minutes old
2026-08-18 13:55:01.730543: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 13:55:01.730585: Best export window [  ]
2026-08-18 13:55:01.731405: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:55:01.734514: Load divergence over 8.0 hours mean 427.98W, min 324.0W, max 601.2W, std dev 64.38W, divergence 7.52%
2026-08-18 13:55:01.753280: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:55:01.753365: LoadML is_calculating False
2026-08-18 13:55:01.753436: Creating pool of 12 processes to match your CPU count
2026-08-18 13:55:01.865572: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 622.93p, metric_keep 125.41kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.2kWh, PV 0.0kWh
2026-08-18 13:55:01.971542: Battery has 9.67 hours left - now at 7.84kWh
2026-08-18 13:55:02.013477: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 650.45p, metric_keep 126.98kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.28kWh, PV 0.0kWh
2026-08-18 13:55:02.088885: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 362.93p, metric_keep 5.57kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.28kWh, PV 0.0kWh
2026-08-18 13:55:02.183097: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 342.2p, metric_keep 0.99kWh, min_soc 1.25kWh @ 08-18 23:25:00, load 31.2kWh, PV 0.0kWh
2026-08-18 13:55:02.183189: Saving plan best values to HA entities
2026-08-18 13:55:02.326036: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:55:02.330863: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:55:02.335817: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.31kWh, house 0.0kWh, export 0.0kWh, metric 342.2p, metric10 362.93p
2026-08-18 13:55:02.407466: Marginal costs baseline metric (no standing charge): 295.5653
2026-08-18 13:55:02.689450: Marginal energy costs matrix computed: min=8.0 max=40.14
2026-08-18 13:55:02.760593: Rate array import [{'start': 835, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 835, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:55:02.761262: - Your estimated bill for today is £1.66 and tomorrow is £1.93
2026-08-18 13:55:02.761305: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:55:02.761328: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 13:55:02.761346: - For the next 48 hours there will be no solar generation.
2026-08-18 13:55:02.761367: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 13:55:02.761384: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:55:02.761405: 
2026-08-18 13:55:02.815299: Plan calculation took 1.08 seconds
2026-08-18 13:55:02.818919: No high rate period found
2026-08-18 13:55:02.867254: Import threshold used for optimisation was 8.0p
2026-08-18 13:55:02.916147: Low import rate windows [0: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 1: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 2: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 3: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 4: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 5: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 6: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 7: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 8: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 9: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 10: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 11: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 12: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 13: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 14: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 15: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 16: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 17: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 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, 26: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 27: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 28: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 29: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 30: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 31: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 32: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 33: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 34: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 35: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 36: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 37: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 38: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 39: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 40: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 41: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 42: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 43: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 44: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 45: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 46: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 47: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 48: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 49: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 50: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 51: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 52: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 53: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 54: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 55: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 56: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 57: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 58: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 59: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 60: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 61: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 62: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 63: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 64: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 65: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 66: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 67: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 68: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 69: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 70: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 71: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 72: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 73: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 74: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 75: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 76: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 77: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 78: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 79: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 80: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 81: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 82: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 83: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 84: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 85: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 86: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 87: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 88: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 89: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 90: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 91: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 92: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 93: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 94: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75]
2026-08-18 13:55:02.921404: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 13:55:02.921546: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:55:02.921651: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:55:02.921890: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:55:02.921981: No export window planned
2026-08-18 13:55:02.922114: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:55:02.922148: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:55:02.922278: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:55:02.922467: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:55:02.922532: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:55:02.922594: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:55:02.922711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922779: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922805: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922838: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.922985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.923011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.923035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.923059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.923082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.923116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:02.923137: Inverter 0 count register writes 0
2026-08-18 13:55:02.937347: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 13:55:02.937508: Recompute is saving previous plan...
2026-08-18 13:55:02.940842: Best charge window [ 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0% ]
2026-08-18 13:55:02.940921: Best export window [  ]
2026-08-18 13:55:02.941764: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 13:55:02.945129: Load divergence over 8.0 hours mean 427.98W, min 324.0W, max 601.2W, std dev 64.38W, divergence 7.52%
2026-08-18 13:55:02.963859: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 13:55:02.964004: LoadML is_calculating False
2026-08-18 13:55:02.964075: Creating pool of 12 processes to match your CPU count
2026-08-18 13:55:03.044252: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 13:55:03.046059: Optimise levels pass started at 2026-08-18 13:55:03
2026-08-18 13:55:03.046172: Optimise all windows, total charge 94 export 1
2026-08-18 13:55:03.438160: >> Region optimisation pass width 960 gives best_metric 380.19p, best_cost 437.16p, best_cycle 50.96kWh, best_import 37.01kWh
2026-08-18 13:55:03.610059: >> Region optimisation pass width 480 gives best_metric 380.19p, best_cost 437.16p, best_cycle 50.96kWh, best_import 37.01kWh
2026-08-18 13:55:03.915747: >> Region optimisation pass width 240 gives best_metric 380.19p, best_cost 437.16p, best_cycle 50.96kWh, best_import 37.01kWh
2026-08-18 13:55:04.991893: >> Region optimisation pass width 120 gives best_metric 372.49p, best_cost 387.03p, best_cycle 50.28kWh, best_import 30.74kWh
2026-08-18 13:55:04.992280: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 66
2026-08-18 13:55:04.992363: Optimise levels pass ended at 2026-08-18 13:55:04, duration 1.9 seconds tried 217 combinations
2026-08-18 13:55:04.992483: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 372.49p, best_keep 0.62kWh, best_cycle 50.28kWh, best_carbon 0kg, best_import 30.74kWh
2026-08-18 13:55:05.012337: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 13:55:09.724756: Tweak plan optimisation started metric 281.45p, cost 291.53p
2026-08-18 13:55:10.101237: Tweak optimisation finished metric 281.45p, cost 291.53p, metric_keep 0.62kWh, cycle 32.33kWh, carbon 0kg, import 18.8kWh, changed 8 window(s)
2026-08-18 13:55:10.128749: Swap charge optimisation started metric 281.45p, cost 291.53p, min_improvement_swap 0.1p
2026-08-18 13:55:15.264521: Swap charge optimisation finished metric 281.45p, cost 291.53p
2026-08-18 13:55:15.391336: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 279.53p -> 279.38p, plan now metric 281.93p, cost 289.52p, cycle 32.6kWh, import 18.55kWh
2026-08-18 13:55:15.403348: Raw charge windows [ 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:55:15.403875: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:55:15.404091: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:55:15.404221: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 13:55:15.437857: Previous plan best metric is 281.45 (cost 291.53) and new plan best metric is 281.45 (cost 291.53)
2026-08-18 13:55:15.438112: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 13:55:15.438400: Plan valid is now true after recompute was False
2026-08-18 13:55:15.468449: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 621.4p, metric_keep 125.16kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.0kWh, PV 0.0kWh
2026-08-18 13:55:15.586789: Battery has 9.67 hours left - now at 7.84kWh
2026-08-18 13:55:15.633166: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 648.84p, metric_keep 126.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.08kWh, PV 0.0kWh
2026-08-18 13:55:15.697468: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 355.78p, metric_keep 5.56kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.08kWh, PV 0.0kWh
2026-08-18 13:55:15.774412: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 334.0p, metric_keep 0.99kWh, min_soc 1.25kWh @ 08-18 23:25:00, load 31.0kWh, PV 0.0kWh
2026-08-18 13:55:15.774498: Saving plan best values to HA entities
2026-08-18 13:55:15.910635: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 13:55:15.915679: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 13:55:15.920486: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.28kWh, house 0.0kWh, export 0.0kWh, metric 334.0p, metric10 355.78p
2026-08-18 13:55:15.980908: Marginal costs baseline metric (no standing charge): 287.3698
2026-08-18 13:55:16.198077: Marginal energy costs matrix computed: min=8.0 max=40.14
2026-08-18 13:55:16.258495: Rate array import [{'start': 835, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 835, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 13:55:16.259037: - Your estimated bill for today is £1.66 and tomorrow is £1.93
2026-08-18 13:55:16.259072: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 13:55:16.259089: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 13:55:16.259105: - For the next 48 hours there will be no solar generation.
2026-08-18 13:55:16.259118: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 13:55:16.259132: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 13:55:16.259146: 
2026-08-18 13:55:16.307776: Plan calculation took 13.37 seconds
2026-08-18 13:55:16.308159: Inverter 0: Type SK Sunsynk
2026-08-18 13:55:16.308214: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 13:55:16.308484: Reserve min: 7%, battery_min: 7%
2026-08-18 13:55:16.308587: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 13:55:16.308970: Inverter 0 SoC: 7.76kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 470W, current battery voltage 51.2V, grid power -56W, load power 527W, PV Power 0W
2026-08-18 13:55:16.309223: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:55:16.309348: Inverter 0 scheduled charge enable is False
2026-08-18 13:55:16.309397: Inverter 0 charge windows currently []
2026-08-18 13:55:16.309453: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 13:55:16.309614: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:55:16.309661: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:55:16.309716: Inverter 0 scheduled discharge enable is False
2026-08-18 13:55:16.309902: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:55:16.309944: Inverter 0 discharge windows currently []
2026-08-18 13:55:16.309973: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:55:16.310015: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:55:16.310057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:55:16.359626: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 13:55:16.359748: Inverter 0 disabled charge window while waiting for schedule (now 08-18 13:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 13:55:16.359826: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:55:16.360059: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:55:16.360136: No export window planned
2026-08-18 13:55:16.360225: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 13:55:16.360254: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 13:55:16.360359: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 13:55:16.360501: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 13:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 13:55:16.360547: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 13:55:16.360595: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 13:55:16.360674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.360982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 13:55:16.361003: Inverter 0 count register writes 0
2026-08-18 13:55:16.378675: Total inverter register writes now 867
2026-08-18 13:55:16.405200: Info: Completed run status Demand
2026-08-18 13:55:16.410214: Info: record_status Demand
2026-08-18 13:55:16.416571: Saved current settings to /config/predbat_config.json
2026-08-18 13:55:16.416867: Compare, best tariff: current metric 129.87p
2026-08-18 13:55:49.519514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:55:49.519828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:55:49.519896: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:55:49.520218: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:55:49.520278: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:55:49.520348: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:55:49.520382: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:56:22.589371: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 13:56:22.766727: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 13:58:03.748496: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 13:58:03.748686: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 13:58:03.748718: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 13:58:03.748892: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 13:58:03.748947: Note: Inverter does not support discharge freeze - disabled
2026-08-18 13:58:03.748980: Note: Inverter does not support charge freeze - disabled
2026-08-18 13:58:03.749022: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 13:59:18.362534: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 13:59:19.413664: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 13:59:19.413847: Zero load period starting at 2026-08-17T10:54:00+0100 (1621 minutes) for 189 minutes with base value 397.3
2026-08-18 13:59:19.414889: Processing 1345 30-minute periods for power integration
2026-08-18 13:59:19.505621: ML Component: Car charging hold False, car energy reported load False
2026-08-18 13:59:19.612717: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 13:59:19.699488: ML Temperature data points: 49566
2026-08-18 13:59:19.941508: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 13:59:19.980569: ML Component: Data fetch completed, load data age 59.0 days, 17278 data points
2026-08-18 13:59:19.980673: ML Component: No training needed, model age is 1.35 hours
2026-08-18 13:59:19.980722: ML Component: Generating predictions load data age 59.0 days, 17278 data points
2026-08-18 13:59:20.098377: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0463 max_dow {0: 0.08701944450702932, 1: 0.09171111095034414, 2: 0.10702187459506095, 3: 0.1005312503473833, 4: 0.13755000035744158, 5: 0.09631666693902677, 6: 0.10488888886421918}
2026-08-18 13:59:20.459949: ML Component: Generated 576 predictions (total 28.87 kWh over 48h)
2026-08-18 13:59:20.489202: ML Component: Prediction cycle completed
2026-08-18 13:59:20.579589: ML Component: Saved 17278 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 14:00:00.973443: --------------- PredBat - update at 2026-08-18 14:00:00+01:00 with clock skew 0 minutes, minutes now 840
2026-08-18 14:00:00.974157: Saved current settings to /config/predbat_config.json
2026-08-18 14:00:00.974284: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 14:00:00.974386: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:00:00.974659: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:00:00.995521: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:00:00.995663: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:00:00.995884: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:00:00.996595: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:00:00.996764: Predbat mode is set to Control charge & discharge
2026-08-18 14:00:01.229861: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:00:01.229995: Using load_power data to fill gaps in load_today data
2026-08-18 14:00:02.083243: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:00:02.083438: Zero load period starting at 2026-08-17T10:54:00+0100 (1626 minutes) for 189 minutes with base value 207.05
2026-08-18 14:00:02.084687: Processing 721 30-minute periods for power integration
2026-08-18 14:00:02.275383: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:00:02.275744: Car charging hold False, threshold 6.0kWh
2026-08-18 14:00:02.275798: Current data so far today: load 8.55kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:00:02.289510: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:00:02.289594: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:00:02.290224: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:00:02.290294: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:00:02.290338: Standing charge is set to 46.63p
2026-08-18 14:00:02.370830: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:00:02.371069: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:00:02.371250: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:00:02.372487: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:00:02.372601: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:00:02.372710: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:00:02.378432: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:00:02.378734: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:00:02.435975: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:00:02.436101: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:00:02.437547: High export rate found rates in range 99p to -99p
2026-08-18 14:00:02.529905: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:00:02.530066: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:00:02.545373: Battery level now 7.84kWh, -1hr ago 8.32kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 6.87p, rate_forward 6.87p
2026-08-18 14:00:02.546105: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.15p, import 0.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:00:02.621907: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:00:02.622087: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:00:02.722066: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:00:02.763129: Today's load divergence 96.69%, in-day adjustment 95.12%, damping 0.95x, yesterday 92.68% today 96.86% blend 41.67%
2026-08-18 14:00:02.763229: Today's predicted so far 9.04kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 9.04kWh forecast extra.
2026-08-18 14:00:02.763261: Today's actual load so far 8.53kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 14:00:02.801009: Inverter 0: Type SK Sunsynk
2026-08-18 14:00:02.801090: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:00:02.801259: Reserve min: 7%, battery_min: 7%
2026-08-18 14:00:02.801329: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:00:02.801592: Inverter 0 SoC: 7.76kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 580W, current battery voltage 51.2V, grid power -55W, load power 641W, PV Power 0W
2026-08-18 14:00:02.801743: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:00:02.801829: Inverter 0 scheduled charge enable is False
2026-08-18 14:00:02.801863: Inverter 0 charge windows currently []
2026-08-18 14:00:02.801890: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:00:02.801995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:00:02.802031: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:00:02.802067: Inverter 0 scheduled discharge enable is False
2026-08-18 14:00:02.802192: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:00:02.802228: Inverter 0 discharge windows currently []
2026-08-18 14:00:02.802251: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:00:02.802270: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:00:02.802294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:00:02.873002: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:00:02.873131: Plan was last updated on 2026-08-18 13:55:00+01:00 and is now 5.0 minutes old
2026-08-18 14:00:02.873428: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:00:02.873492: Best export window [  ]
2026-08-18 14:00:02.874498: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:00:02.877733: Load divergence over 8.0 hours mean 429.5W, min 335.4W, max 633.6W, std dev 56.94W, divergence 6.63%
2026-08-18 14:00:02.896797: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:00:02.896911: LoadML is_calculating False
2026-08-18 14:00:02.896976: Creating pool of 12 processes to match your CPU count
2026-08-18 14:00:03.035618: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.1p, metric_keep 125.4kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.1kWh, PV 0.0kWh
2026-08-18 14:00:03.203495: Battery has 9.58 hours left - now at 7.76kWh
2026-08-18 14:00:03.253752: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 650.14p, metric_keep 127.01kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.18kWh, PV 0.0kWh
2026-08-18 14:00:03.344315: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 359.92p, metric_keep 5.7kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.18kWh, PV 0.0kWh
2026-08-18 14:00:03.429861: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 338.37p, metric_keep 1.08kWh, min_soc 1.23kWh @ 08-18 23:25:00, load 31.1kWh, PV 0.0kWh
2026-08-18 14:00:03.429947: Saving plan best values to HA entities
2026-08-18 14:00:03.637934: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:00:03.644745: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:00:03.651511: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.83kWh, house 0.0kWh, export 0.0kWh, metric 338.37p, metric10 359.92p
2026-08-18 14:00:03.735875: Marginal costs baseline metric (no standing charge): 291.7393
2026-08-18 14:00:04.042881: Marginal energy costs matrix computed: min=8.0 max=40.75
2026-08-18 14:00:04.127375: Rate array import [{'start': 840, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 840, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:00:04.128160: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 14:00:04.128213: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:00:04.128237: - The battery is currently at 49% and is in eco mode for the next 9 hours.
2026-08-18 14:00:04.128256: - For the next 48 hours there will be no solar generation.
2026-08-18 14:00:04.128274: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 14:00:04.128291: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:00:04.128324: 
2026-08-18 14:00:04.190016: Plan calculation took 1.32 seconds
2026-08-18 14:00:04.193903: No high rate period found
2026-08-18 14:00:04.262671: Import threshold used for optimisation was 8.0p
2026-08-18 14:00:04.358248: Low import rate windows [0: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 1: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 2: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 3: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 4: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 5: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 6: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 7: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 8: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 9: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 10: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 11: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 12: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 13: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 14: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 15: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 16: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 26: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 27: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 28: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 29: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 30: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 31: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 32: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 33: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 34: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 35: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 36: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 37: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 38: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 39: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 40: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 41: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 42: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 43: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 44: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 45: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 46: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 47: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 48: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 49: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 50: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 51: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 52: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 53: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 54: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 55: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 56: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 57: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 58: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 59: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 60: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 61: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 62: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 63: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 64: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 65: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 66: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 67: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 68: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 69: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 70: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 71: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 72: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 73: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 74: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 75: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 76: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 77: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 78: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 79: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 80: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 81: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 82: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 83: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 84: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 85: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 86: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 87: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 88: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 89: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 90: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 91: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 92: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 93: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75]
2026-08-18 14:00:04.366536: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 14:00:04.366673: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:00:04.366797: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:00:04.367099: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:00:04.367207: No export window planned
2026-08-18 14:00:04.367395: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:00:04.367457: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:00:04.367634: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:00:04.367973: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:00:04.368075: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:00:04.368193: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:00:04.368332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368539: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:00:04.368984: Inverter 0 count register writes 0
2026-08-18 14:00:04.392162: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 14:00:04.399298: Total inverter register writes now 867
2026-08-18 14:00:04.440021: Info: Completed run status Demand
2026-08-18 14:00:04.447599: Info: record_status Demand
2026-08-18 14:00:04.456218: Saved current settings to /config/predbat_config.json
2026-08-18 14:00:04.456671: Compare, best tariff: current metric 129.87p
2026-08-18 14:00:34.579441: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:00:34.579674: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:00:34.579719: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:00:34.579861: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:00:34.579941: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:00:34.579994: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:00:34.580017: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:00:41.207471: Info: HAHistory: Pruning history data started.
2026-08-18 14:00:41.210135: Info: HAHistory: Pruning history data completed.
2026-08-18 14:02:48.821231: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:02:48.821523: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:02:48.821587: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:02:48.821790: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:02:48.821835: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:02:48.821867: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:02:48.821903: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:04:49.066226: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:04:49.066471: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:04:49.066515: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:04:49.066647: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:04:49.066685: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:04:49.066706: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:04:49.066725: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:05:00.173440: --------------- PredBat - update at 2026-08-18 14:05:00+01:00 with clock skew 0 minutes, minutes now 845
2026-08-18 14:05:00.174238: Saved current settings to /config/predbat_config.json
2026-08-18 14:05:00.174359: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 14:05:00.174447: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:05:00.174527: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:05:00.195382: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:05:00.195810: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:05:00.196136: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:05:00.196764: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:05:00.196883: Predbat mode is set to Control charge & discharge
2026-08-18 14:05:00.371288: Found 21602 load_today datapoints going back 27 days
2026-08-18 14:05:00.371421: Using load_power data to fill gaps in load_today data
2026-08-18 14:05:01.216926: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:05:01.217371: Zero load period starting at 2026-08-17T10:54:00+0100 (1631 minutes) for 189 minutes with base value 207.0333
2026-08-18 14:05:01.219973: Processing 721 30-minute periods for power integration
2026-08-18 14:05:01.396160: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:05:01.396330: Car charging hold False, threshold 6.0kWh
2026-08-18 14:05:01.396444: Current data so far today: load 8.6kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:05:01.414803: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:05:01.414965: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:05:01.415666: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:05:01.415770: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:05:01.415854: Standing charge is set to 46.63p
2026-08-18 14:05:01.517102: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:05:01.517467: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:05:01.517758: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:05:01.520000: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:05:01.520182: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:05:01.520348: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:05:01.526916: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:05:01.527413: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:05:01.571513: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:05:01.571624: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:05:01.573417: High export rate found rates in range 99p to -99p
2026-08-18 14:05:01.690139: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:05:01.690289: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:05:01.702812: Battery level now 7.76kWh, -1hr ago 8.32kWh, at midnight 6.84kWh, battery value change in the last hour -3.85p, change today 6.32p, rate_forward 6.87p
2026-08-18 14:05:01.703179: 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-18 14:05:01.767746: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:05:01.767890: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:05:01.899210: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:05:01.932121: Today's load divergence 96.52%, in-day adjustment 95.03%, damping 0.95x, yesterday 92.68% today 96.69% blend 41.32%
2026-08-18 14:05:01.932208: Today's predicted so far 9.13kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 9.13kWh forecast extra.
2026-08-18 14:05:01.932253: Today's actual load so far 8.59kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 14:05:01.966144: Inverter 0: Type SK Sunsynk
2026-08-18 14:05:01.966234: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:05:01.966426: Reserve min: 7%, battery_min: 7%
2026-08-18 14:05:01.966504: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:05:01.966761: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 497W, current battery voltage 51.2V, grid power -53W, load power 548W, PV Power 0W
2026-08-18 14:05:01.966910: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:05:01.966996: Inverter 0 scheduled charge enable is False
2026-08-18 14:05:01.967031: Inverter 0 charge windows currently []
2026-08-18 14:05:01.967057: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:05:01.967165: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:05:01.967200: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:05:01.967234: Inverter 0 scheduled discharge enable is False
2026-08-18 14:05:01.967352: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:05:01.967401: Inverter 0 discharge windows currently []
2026-08-18 14:05:01.967426: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:05:01.967445: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:05:01.967466: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:05:02.022615: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:05:02.022714: Plan was last updated on 2026-08-18 13:55:00+01:00 and is now 10.0 minutes old
2026-08-18 14:05:02.022931: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:05:02.022973: Best export window [  ]
2026-08-18 14:05:02.023942: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:05:02.027276: Load divergence over 8.0 hours mean 431.09W, min 330.0W, max 675.0W, std dev 65.66W, divergence 7.62%
2026-08-18 14:05:02.045876: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:05:02.045980: LoadML is_calculating False
2026-08-18 14:05:02.046074: Creating pool of 12 processes to match your CPU count
2026-08-18 14:05:02.164670: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 623.08p, metric_keep 125.64kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.2kWh, PV 0.0kWh
2026-08-18 14:05:02.285431: Battery has 9.42 hours left - now at 7.68kWh
2026-08-18 14:05:02.333179: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 651.64p, metric_keep 127.28kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.28kWh, PV 0.0kWh
2026-08-18 14:05:02.404355: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 364.21p, metric_keep 5.88kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.28kWh, PV 0.0kWh
2026-08-18 14:05:02.478567: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 342.77p, metric_keep 1.19kWh, min_soc 1.2kWh @ 08-18 23:25:00, load 31.2kWh, PV 0.0kWh
2026-08-18 14:05:02.478650: Saving plan best values to HA entities
2026-08-18 14:05:02.628934: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:05:02.633766: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:05:02.638481: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.38kWh, house 0.0kWh, export 0.0kWh, metric 342.77p, metric10 364.21p
2026-08-18 14:05:02.717501: Marginal costs baseline metric (no standing charge): 296.1401
2026-08-18 14:05:03.025507: Marginal energy costs matrix computed: min=8.0 max=39.82
2026-08-18 14:05:03.090239: Rate array import [{'start': 845, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 845, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:05:03.090843: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:05:03.090880: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:05:03.090899: - The battery is currently at 48% and is in eco mode for the next 9 hours.
2026-08-18 14:05:03.090914: - For the next 48 hours there will be no solar generation.
2026-08-18 14:05:03.090928: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 14:05:03.090946: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:05:03.090960: 
2026-08-18 14:05:03.149058: Plan calculation took 1.13 seconds
2026-08-18 14:05:03.152529: No high rate period found
2026-08-18 14:05:03.206276: Import threshold used for optimisation was 8.0p
2026-08-18 14:05:03.259628: Low import rate windows [0: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 1: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 2: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 3: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 4: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 5: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 6: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 7: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 8: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 9: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 10: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 11: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 12: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 13: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 14: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 15: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 16: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 26: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 27: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 28: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 29: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 30: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 31: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 32: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 33: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 34: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 35: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 36: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 37: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 38: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 39: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 40: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 41: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 42: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 43: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 44: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 45: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 46: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 47: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 48: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 49: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 50: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 51: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 52: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 53: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 54: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 55: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 56: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 57: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 58: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 59: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 60: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 61: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 62: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 63: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 64: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 65: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 66: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 67: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 68: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 69: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 70: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 71: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 72: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 73: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 74: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 75: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 76: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 77: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 78: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 79: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 80: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 81: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 82: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 83: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 84: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 85: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 86: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 87: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 88: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 89: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 90: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 91: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 92: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 93: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 94: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75]
2026-08-18 14:05:03.266215: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-18 14:05:03.266344: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:05:03.266463: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:05:03.266708: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:05:03.266802: No export window planned
2026-08-18 14:05:03.266924: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:05:03.266960: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:05:03.267093: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:05:03.267268: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:05:03.267349: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:05:03.267430: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:05:03.267532: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267661: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.267983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.268020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:03.268046: Inverter 0 count register writes 0
2026-08-18 14:05:03.284522: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 14:05:03.284676: Recompute is saving previous plan...
2026-08-18 14:05:03.288159: Best charge window [ 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0% ]
2026-08-18 14:05:03.288331: Best export window [  ]
2026-08-18 14:05:03.289251: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:05:03.292514: Load divergence over 8.0 hours mean 431.09W, min 330.0W, max 675.0W, std dev 65.66W, divergence 7.62%
2026-08-18 14:05:03.309811: Calculating data from yesterday for savings calculation
2026-08-18 14:05:03.323466: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 14:05:03.372164: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 14:05:03.390136: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 14:05:03.414498: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 14:05:03.454751: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 14:05:03.531006: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 14:05:03.531144: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 14:05:03.542615: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:05:03.542738: LoadML is_calculating False
2026-08-18 14:05:03.542803: Creating pool of 12 processes to match your CPU count
2026-08-18 14:05:03.630478: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 14:05:03.632386: Optimise levels pass started at 2026-08-18 14:05:03
2026-08-18 14:05:03.632479: Optimise all windows, total charge 94 export 1
2026-08-18 14:05:04.051666: >> Region optimisation pass width 960 gives best_metric 381.71p, best_cost 435.53p, best_cycle 50.71kWh, best_import 36.8kWh
2026-08-18 14:05:04.247192: >> Region optimisation pass width 480 gives best_metric 381.71p, best_cost 435.53p, best_cycle 50.71kWh, best_import 36.8kWh
2026-08-18 14:05:04.633314: >> Region optimisation pass width 240 gives best_metric 377.92p, best_cost 408.62p, best_cycle 52.04kWh, best_import 33.44kWh
2026-08-18 14:05:06.527358: >> Region optimisation pass width 120 gives best_metric 372.36p, best_cost 379.58p, best_cycle 47.78kWh, best_import 29.81kWh
2026-08-18 14:05:06.528256: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 65
2026-08-18 14:05:06.528405: Optimise levels pass ended at 2026-08-18 14:05:06, duration 2.9 seconds tried 249 combinations
2026-08-18 14:05:06.528535: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 372.36p, best_keep 0.84kWh, best_cycle 47.78kWh, best_carbon 0kg, best_import 29.81kWh
2026-08-18 14:05:06.549778: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 14:05:11.985800: Tweak plan optimisation started metric 282.28p, cost 292.07p
2026-08-18 14:05:12.306142: Tweak optimisation finished metric 282.28p, cost 292.07p, metric_keep 0.84kWh, cycle 32.27kWh, carbon 0kg, import 18.87kWh, changed 8 window(s)
2026-08-18 14:05:12.334785: Swap charge optimisation started metric 282.28p, cost 292.07p, min_improvement_swap 0.1p
2026-08-18 14:05:18.536171: Swap charge optimisation finished metric 282.28p, cost 292.07p
2026-08-18 14:05:18.652896: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 280.21p -> 279.98p, plan now metric 283.56p, cost 287.89p, cycle 32.28kWh, import 18.35kWh
2026-08-18 14:05:18.667387: Raw charge windows [ 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:05:18.668220: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:05:18.668589: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:05:18.668861: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:05:18.712175: Previous plan best metric is 282.28 (cost 292.07) and new plan best metric is 282.28 (cost 292.07)
2026-08-18 14:05:18.712459: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 14:05:18.712697: Plan valid is now true after recompute was False
2026-08-18 14:05:18.741462: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 621.49p, metric_keep 125.39kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.0kWh, PV 0.0kWh
2026-08-18 14:05:18.845810: Battery has 9.42 hours left - now at 7.68kWh
2026-08-18 14:05:18.887845: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 649.97p, metric_keep 127.03kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.07kWh, PV 0.0kWh
2026-08-18 14:05:18.959596: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 356.99p, metric_keep 5.86kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.07kWh, PV 0.0kWh
2026-08-18 14:05:19.028983: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 334.52p, metric_keep 1.19kWh, min_soc 1.2kWh @ 08-18 23:25:00, load 31.0kWh, PV 0.0kWh
2026-08-18 14:05:19.029060: Saving plan best values to HA entities
2026-08-18 14:05:19.160971: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:05:19.166555: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:05:19.171774: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.35kWh, house 0.0kWh, export 0.0kWh, metric 334.52p, metric10 356.99p
2026-08-18 14:05:19.245887: Marginal costs baseline metric (no standing charge): 287.8855
2026-08-18 14:05:19.466505: Marginal energy costs matrix computed: min=8.0 max=39.82
2026-08-18 14:05:19.531588: Rate array import [{'start': 845, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 845, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:05:19.532355: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:05:19.532427: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:05:19.532472: - The battery is currently at 48% and is in eco mode for the next 9 hours.
2026-08-18 14:05:19.532508: - For the next 48 hours there will be no solar generation.
2026-08-18 14:05:19.532545: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 14:05:19.532580: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:05:19.532623: 
2026-08-18 14:05:19.586626: Plan calculation took 16.30 seconds
2026-08-18 14:05:19.586937: Inverter 0: Type SK Sunsynk
2026-08-18 14:05:19.586981: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:05:19.587186: Reserve min: 7%, battery_min: 7%
2026-08-18 14:05:19.587292: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:05:19.587662: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 485W, current battery voltage 51.2V, grid power -56W, load power 534W, PV Power 0W
2026-08-18 14:05:19.587887: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:05:19.588082: Inverter 0 scheduled charge enable is False
2026-08-18 14:05:19.588147: Inverter 0 charge windows currently []
2026-08-18 14:05:19.588187: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:05:19.588337: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:05:19.588378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:05:19.588435: Inverter 0 scheduled discharge enable is False
2026-08-18 14:05:19.588572: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:05:19.588610: Inverter 0 discharge windows currently []
2026-08-18 14:05:19.588633: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:05:19.588656: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:05:19.588674: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:05:19.642735: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-18 14:05:19.642909: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:05:19.642984: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:05:19.643188: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:05:19.643300: No export window planned
2026-08-18 14:05:19.643440: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:05:19.643501: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:05:19.643688: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:05:19.643893: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:05:19.644039: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:05:19.644126: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:05:19.644248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644306: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644494: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644528: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:05:19.644890: Inverter 0 count register writes 0
2026-08-18 14:05:19.666333: Total inverter register writes now 867
2026-08-18 14:05:19.699378: Info: Completed run status Demand
2026-08-18 14:05:19.705302: Info: record_status Demand
2026-08-18 14:05:19.711996: Saved current settings to /config/predbat_config.json
2026-08-18 14:05:19.712295: Compare, best tariff: current metric 129.87p
2026-08-18 14:06:03.840902: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:06:03.841205: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:06:03.841262: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:06:03.841487: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:06:03.841538: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:06:03.841580: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:06:03.841623: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:08:04.068030: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:08:04.068279: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:08:04.068311: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:08:04.068443: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:08:04.068479: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:08:04.068498: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:08:04.068512: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:10:00.292169: --------------- PredBat - update at 2026-08-18 14:10:00+01:00 with clock skew 0 minutes, minutes now 850
2026-08-18 14:10:00.293167: Saved current settings to /config/predbat_config.json
2026-08-18 14:10:00.293314: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 14:10:00.293458: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:10:00.293573: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:10:00.313726: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:10:00.313850: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:10:00.314092: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:10:00.314835: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:10:00.314986: Predbat mode is set to Control charge & discharge
2026-08-18 14:10:00.510096: Found 21602 load_today datapoints going back 27 days
2026-08-18 14:10:00.510250: Using load_power data to fill gaps in load_today data
2026-08-18 14:10:01.445658: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:10:01.446848: Zero load period starting at 2026-08-17T10:54:00+0100 (1636 minutes) for 189 minutes with base value 207.0167
2026-08-18 14:10:01.448818: Processing 721 30-minute periods for power integration
2026-08-18 14:10:01.666973: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:10:01.669634: Car charging hold False, threshold 6.0kWh
2026-08-18 14:10:01.669735: Current data so far today: load 8.65kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:10:01.691741: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:10:01.691928: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:10:01.692867: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:10:01.693780: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:10:01.696279: Standing charge is set to 46.63p
2026-08-18 14:10:01.786185: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:10:01.786491: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:10:01.786713: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:10:01.788270: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:10:01.788424: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:10:01.788605: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:10:01.793912: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:10:01.794276: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:10:01.839923: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:10:01.840048: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:10:01.841308: High export rate found rates in range 99p to -99p
2026-08-18 14:10:01.927582: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:10:01.927693: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:10:01.938086: Battery level now 7.68kWh, -1hr ago 8.16kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 5.77p, rate_forward 6.87p
2026-08-18 14:10:01.938414: 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-18 14:10:01.989375: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:10:01.989577: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:10:02.085891: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:10:02.128280: Today's load divergence 96.2%, in-day adjustment 94.87%, damping 0.95x, yesterday 92.68% today 96.39% blend 40.97%
2026-08-18 14:10:02.128370: Today's predicted so far 9.13kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 9.13kWh forecast extra.
2026-08-18 14:10:02.128419: Today's actual load so far 8.55kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 14:10:02.162228: Inverter 0: Type SK Sunsynk
2026-08-18 14:10:02.162304: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:10:02.162508: Reserve min: 7%, battery_min: 7%
2026-08-18 14:10:02.162578: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:10:02.162820: Inverter 0 SoC: 7.65kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 460W, current battery voltage 51.2V, grid power -54W, load power 512W, PV Power 0W
2026-08-18 14:10:02.162966: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:10:02.163049: Inverter 0 scheduled charge enable is False
2026-08-18 14:10:02.163081: Inverter 0 charge windows currently []
2026-08-18 14:10:02.163106: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:10:02.163224: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:10:02.163259: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:10:02.163293: Inverter 0 scheduled discharge enable is False
2026-08-18 14:10:02.163426: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:10:02.163465: Inverter 0 discharge windows currently []
2026-08-18 14:10:02.163487: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:10:02.163505: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:10:02.163527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:10:02.225370: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:10:02.225528: Plan was last updated on 2026-08-18 14:05:00+01:00 and is now 5.0 minutes old
2026-08-18 14:10:02.225757: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:10:02.225801: Best export window [  ]
2026-08-18 14:10:02.226674: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:10:02.229862: Load divergence over 8.0 hours mean 436.99W, min 345.0W, max 712.8W, std dev 66.85W, divergence 7.65%
2026-08-18 14:10:02.248149: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:10:02.248240: LoadML is_calculating False
2026-08-18 14:10:02.248299: Creating pool of 12 processes to match your CPU count
2026-08-18 14:10:02.356360: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 621.98p, metric_keep 125.41kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.09kWh, PV 0.0kWh
2026-08-18 14:10:02.484820: Battery has 9.42 hours left - now at 7.65kWh
2026-08-18 14:10:02.530045: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 649.79p, metric_keep 127.03kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.16kWh, PV 0.0kWh
2026-08-18 14:10:02.608330: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 359.49p, metric_keep 5.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.16kWh, PV 0.0kWh
2026-08-18 14:10:02.684521: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 338.4p, metric_keep 1.08kWh, min_soc 1.23kWh @ 08-18 23:25:00, load 31.09kWh, PV 0.0kWh
2026-08-18 14:10:02.684602: Saving plan best values to HA entities
2026-08-18 14:10:02.833225: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 14:10:02.837695: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:10:02.842908: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.83kWh, house 0.0kWh, export 0.0kWh, metric 338.4p, metric10 359.49p
2026-08-18 14:10:02.926353: Marginal costs baseline metric (no standing charge): 291.7631
2026-08-18 14:10:03.161594: Marginal energy costs matrix computed: min=8.0 max=38.67
2026-08-18 14:10:03.232415: Rate array import [{'start': 850, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 850, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:10:03.233128: - Your estimated bill for today is £1.65 and tomorrow is £1.93
2026-08-18 14:10:03.233171: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:10:03.233193: - The battery is currently at 48% and is in eco mode for the next 9 hours.
2026-08-18 14:10:03.233211: - For the next 48 hours there will be no solar generation.
2026-08-18 14:10:03.233230: - You will reach a minimum of 8% battery in 9 hours.
2026-08-18 14:10:03.233247: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:10:03.233284: 
2026-08-18 14:10:03.286023: Plan calculation took 1.06 seconds
2026-08-18 14:10:03.289541: No high rate period found
2026-08-18 14:10:03.332588: Import threshold used for optimisation was 8.0p
2026-08-18 14:10:03.378860: Low import rate windows [0: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 1: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 2: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 3: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 4: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 5: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 6: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 7: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 8: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 9: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 10: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 11: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 12: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 13: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 14: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 15: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 16: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 26: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 27: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 28: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 29: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 30: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 31: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 32: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 33: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 34: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 35: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 36: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 37: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 38: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 39: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 40: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 41: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 42: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 43: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 44: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 45: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 46: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 47: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 48: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 49: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 50: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 51: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 52: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 53: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 54: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 55: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 56: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 57: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 58: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 59: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 60: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 61: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 62: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 63: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 64: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 65: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 66: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 67: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 68: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 69: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 70: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 71: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 72: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 73: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 74: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 75: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 76: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 77: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 78: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 79: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 80: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 81: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 82: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 83: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 84: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 85: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 86: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 87: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 88: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 89: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 90: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 91: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 92: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 93: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 94: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75]
2026-08-18 14:10:03.384643: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-18 14:10:03.384744: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:10:03.384826: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:10:03.385029: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:10:03.385103: No export window planned
2026-08-18 14:10:03.385201: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:10:03.385230: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:10:03.385338: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:10:03.385499: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:10:03.385551: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:10:03.385602: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:10:03.385685: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385741: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.385991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.386017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.386037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:10:03.386054: Inverter 0 count register writes 0
2026-08-18 14:10:03.402374: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 14:10:03.407022: Total inverter register writes now 867
2026-08-18 14:10:03.434803: Info: Completed run status Demand
2026-08-18 14:10:03.441193: Info: record_status Demand
2026-08-18 14:10:03.448056: Saved current settings to /config/predbat_config.json
2026-08-18 14:10:03.448374: Compare, best tariff: current metric 129.87p
2026-08-18 14:10:34.567249: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:10:34.567502: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:10:34.567553: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:10:34.567711: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:10:34.567765: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:10:34.567788: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:10:34.567807: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:12:48.824667: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:12:48.824894: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:12:48.824928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:12:48.825056: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:12:48.825093: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:12:48.825114: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:12:48.825132: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:14:49.053292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:14:49.053538: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:14:49.053575: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:14:49.053724: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:14:49.053788: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:14:49.053810: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:14:49.053828: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:15:00.176456: --------------- PredBat - update at 2026-08-18 14:15:00+01:00 with clock skew 0 minutes, minutes now 855
2026-08-18 14:15:00.177413: Saved current settings to /config/predbat_config.json
2026-08-18 14:15:00.177555: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 14:15:00.177632: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:15:00.177764: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:15:00.207350: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:15:00.207521: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:15:00.207728: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:15:00.208347: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:15:00.208521: Predbat mode is set to Control charge & discharge
2026-08-18 14:15:00.428612: Found 21602 load_today datapoints going back 27 days
2026-08-18 14:15:00.428774: Using load_power data to fill gaps in load_today data
2026-08-18 14:15:01.225249: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:15:01.225431: Zero load period starting at 2026-08-17T10:54:00+0100 (1641 minutes) for 189 minutes with base value 207.0
2026-08-18 14:15:01.226631: Processing 721 30-minute periods for power integration
2026-08-18 14:15:01.445684: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:15:01.445808: Car charging hold False, threshold 6.0kWh
2026-08-18 14:15:01.445865: Current data so far today: load 8.7kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:15:01.462037: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:15:01.462127: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:15:01.462740: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:15:01.462865: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:15:01.462921: Standing charge is set to 46.63p
2026-08-18 14:15:01.569877: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:15:01.571604: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:15:01.571824: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:15:01.573545: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:15:01.573685: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:15:01.573814: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:15:01.579366: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:15:01.580009: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:15:01.622759: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:15:01.622906: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:15:01.624220: High export rate found rates in range 99p to -99p
2026-08-18 14:15:01.713660: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:15:01.713768: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:15:01.730653: Battery level now 7.65kWh, -1hr ago 8.16kWh, at midnight 6.84kWh, battery value change in the last hour -3.52p, change today 5.55p, rate_forward 6.87p
2026-08-18 14:15:01.731021: 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-18 14:15:01.792651: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:15:01.792777: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:15:01.868301: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:15:01.897401: Today's load divergence 96.89%, in-day adjustment 95.27%, damping 0.95x, yesterday 92.68% today 97.05% blend 40.62%
2026-08-18 14:15:01.897486: Today's predicted so far 9.14kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 9.14kWh forecast extra.
2026-08-18 14:15:01.897512: Today's actual load so far 8.66kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 14:15:01.930461: Inverter 0: Type SK Sunsynk
2026-08-18 14:15:01.930552: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:15:01.930803: Reserve min: 7%, battery_min: 7%
2026-08-18 14:15:01.930925: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:15:01.931249: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 553W, PV Power 0W
2026-08-18 14:15:01.931478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:15:01.931608: Inverter 0 scheduled charge enable is False
2026-08-18 14:15:01.931664: Inverter 0 charge windows currently []
2026-08-18 14:15:01.931714: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:15:01.931884: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:15:01.931987: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:15:01.932055: Inverter 0 scheduled discharge enable is False
2026-08-18 14:15:01.932242: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:15:01.932286: Inverter 0 discharge windows currently []
2026-08-18 14:15:01.932314: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:15:01.932356: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:15:01.932419: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:15:01.999314: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:15:01.999431: Plan was last updated on 2026-08-18 14:05:00+01:00 and is now 10.0 minutes old
2026-08-18 14:15:01.999638: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:15:01.999682: Best export window [  ]
2026-08-18 14:15:02.000685: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:15:02.004181: Load divergence over 8.0 hours mean 443.31W, min 307.2W, max 753.0W, std dev 83.25W, divergence 9.39%
2026-08-18 14:15:02.024339: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:15:02.024463: LoadML is_calculating False
2026-08-18 14:15:02.024523: Creating pool of 12 processes to match your CPU count
2026-08-18 14:15:02.138771: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 623.79p, metric_keep 126.11kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.23kWh, PV 0.0kWh
2026-08-18 14:15:02.274286: Battery has 9.17 hours left - now at 7.52kWh
2026-08-18 14:15:02.323615: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 654.21p, metric_keep 127.78kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.31kWh, PV 0.0kWh
2026-08-18 14:15:02.406561: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 366.69p, metric_keep 6.39kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.31kWh, PV 0.0kWh
2026-08-18 14:15:02.486978: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 343.57p, metric_keep 1.65kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.23kWh, PV 0.0kWh
2026-08-18 14:15:02.487054: Saving plan best values to HA entities
2026-08-18 14:15:02.635650: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:15:02.640578: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:15:02.645688: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.0kWh, export 0.0kWh, metric 343.57p, metric10 366.69p
2026-08-18 14:15:02.716205: Marginal costs baseline metric (no standing charge): 296.9345
2026-08-18 14:15:02.983772: Marginal energy costs matrix computed: min=8.0 max=38.33
2026-08-18 14:15:03.057538: Rate array import [{'start': 855, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 855, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:15:03.058306: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:15:03.058355: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:15:03.058403: - The battery is currently at 47% and is in eco mode for the next 9 hours.
2026-08-18 14:15:03.058448: - For the next 48 hours there will be no solar generation.
2026-08-18 14:15:03.058472: - You have enough battery to reach the next charge.
2026-08-18 14:15:03.058496: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:15:03.058535: 
2026-08-18 14:15:03.112145: Plan calculation took 1.11 seconds
2026-08-18 14:15:03.115831: No high rate period found
2026-08-18 14:15:03.165059: Import threshold used for optimisation was 8.0p
2026-08-18 14:15:03.243020: Low import rate windows [0: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 1: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 2: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 3: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 4: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 5: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 6: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 7: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 8: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 9: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 10: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 11: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 12: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 13: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 14: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 15: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 16: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 26: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 27: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 28: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 29: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 30: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 31: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 32: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 33: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 34: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 35: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 36: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 37: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 38: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 39: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 40: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 41: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 42: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 43: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 44: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 45: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 46: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 47: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 48: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 49: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 50: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 51: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 52: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 53: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 54: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 55: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 56: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 57: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 58: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 59: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 60: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 61: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 62: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 63: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 64: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 65: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 66: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 67: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 68: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 69: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 70: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 71: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 72: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 73: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 74: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 75: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 76: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 77: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 78: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 79: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 80: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 81: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 82: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 83: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 84: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 85: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 86: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 87: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 88: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 89: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 90: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 91: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 92: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 93: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 94: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75]
2026-08-18 14:15:03.249276: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-18 14:15:03.249565: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:15:03.249682: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:15:03.249930: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:15:03.250019: No export window planned
2026-08-18 14:15:03.250136: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:15:03.250172: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:15:03.250306: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:15:03.250501: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:15:03.250564: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:15:03.250626: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:15:03.250726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.250785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.250819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.250848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.250895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.251607: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.251682: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.251791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.251840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.251885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.251959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.252024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.252083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.252144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:03.252190: Inverter 0 count register writes 0
2026-08-18 14:15:03.267361: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 14:15:03.267589: Recompute is saving previous plan...
2026-08-18 14:15:03.271048: Best charge window [ 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0% ]
2026-08-18 14:15:03.271134: Best export window [  ]
2026-08-18 14:15:03.272019: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:15:03.275444: Load divergence over 8.0 hours mean 443.31W, min 307.2W, max 753.0W, std dev 83.25W, divergence 9.39%
2026-08-18 14:15:03.293367: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:15:03.293471: LoadML is_calculating False
2026-08-18 14:15:03.293530: Creating pool of 12 processes to match your CPU count
2026-08-18 14:15:03.376346: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 14:15:03.378541: Optimise levels pass started at 2026-08-18 14:15:03
2026-08-18 14:15:03.378602: Optimise all windows, total charge 94 export 1
2026-08-18 14:15:03.790611: >> Region optimisation pass width 960 gives best_metric 383.88p, best_cost 438.42p, best_cycle 51.07kWh, best_import 37.16kWh
2026-08-18 14:15:03.979056: >> Region optimisation pass width 480 gives best_metric 383.88p, best_cost 438.42p, best_cycle 51.07kWh, best_import 37.16kWh
2026-08-18 14:15:04.335302: >> Region optimisation pass width 240 gives best_metric 383.88p, best_cost 438.42p, best_cycle 51.07kWh, best_import 37.16kWh
2026-08-18 14:15:05.545789: >> Region optimisation pass width 120 gives best_metric 376.66p, best_cost 390.76p, best_cycle 50.65kWh, best_import 31.2kWh
2026-08-18 14:15:05.546062: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 65
2026-08-18 14:15:05.546186: Optimise levels pass ended at 2026-08-18 14:15:05, duration 2.2 seconds tried 219 combinations
2026-08-18 14:15:05.546482: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 376.66p, best_keep 1.31kWh, best_cycle 50.65kWh, best_carbon 0kg, best_import 31.2kWh
2026-08-18 14:15:05.563324: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 14:15:10.235841: Tweak plan optimisation started metric 283.77p, cost 292.82p
2026-08-18 14:15:10.538281: Tweak optimisation finished metric 283.77p, cost 292.82p, metric_keep 1.31kWh, cycle 32.28kWh, carbon 0kg, import 18.96kWh, changed 8 window(s)
2026-08-18 14:15:10.561101: Swap charge optimisation started metric 283.77p, cost 292.82p, min_improvement_swap 0.1p
2026-08-18 14:15:16.158969: Swap charge optimisation finished metric 283.77p, cost 292.82p
2026-08-18 14:15:16.316260: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 281.43p -> 281.28p, plan now metric 284.19p, cost 290.81p, cycle 32.54kWh, import 18.71kWh
2026-08-18 14:15:16.328322: Raw charge windows [ 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:15:16.328939: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:15:16.330080: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:15:16.332499: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:15:16.372266: Previous plan best metric is 283.77 (cost 292.82) and new plan best metric is 283.77 (cost 292.82)
2026-08-18 14:15:16.372509: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 14:15:16.372702: Plan valid is now true after recompute was False
2026-08-18 14:15:16.405890: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 622.18p, metric_keep 125.86kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.03kWh, PV 0.0kWh
2026-08-18 14:15:16.501797: Battery has 9.17 hours left - now at 7.52kWh
2026-08-18 14:15:16.545799: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 652.53p, metric_keep 127.52kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.1kWh, PV 0.0kWh
2026-08-18 14:15:16.619685: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 359.45p, metric_keep 6.37kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.1kWh, PV 0.0kWh
2026-08-18 14:15:16.692944: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 335.29p, metric_keep 1.65kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.03kWh, PV 0.0kWh
2026-08-18 14:15:16.693026: Saving plan best values to HA entities
2026-08-18 14:15:16.819420: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:15:16.824187: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:15:16.828922: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.0kWh, export 0.0kWh, metric 335.29p, metric10 359.45p
2026-08-18 14:15:16.894820: Marginal costs baseline metric (no standing charge): 288.6591
2026-08-18 14:15:17.139117: Marginal energy costs matrix computed: min=8.0 max=38.33
2026-08-18 14:15:17.206254: Rate array import [{'start': 855, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 855, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:15:17.206921: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:15:17.206965: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:15:17.206987: - The battery is currently at 47% and is in eco mode for the next 9 hours.
2026-08-18 14:15:17.207006: - For the next 48 hours there will be no solar generation.
2026-08-18 14:15:17.207027: - You have enough battery to reach the next charge.
2026-08-18 14:15:17.207045: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:15:17.207062: 
2026-08-18 14:15:17.259489: Plan calculation took 13.99 seconds
2026-08-18 14:15:17.259851: Inverter 0: Type SK Sunsynk
2026-08-18 14:15:17.259945: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:15:17.260193: Reserve min: 7%, battery_min: 7%
2026-08-18 14:15:17.260283: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:15:17.260614: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 553W, PV Power 0W
2026-08-18 14:15:17.260835: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:15:17.260929: Inverter 0 scheduled charge enable is False
2026-08-18 14:15:17.260954: Inverter 0 charge windows currently []
2026-08-18 14:15:17.260978: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:15:17.261067: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:15:17.261099: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:15:17.261131: Inverter 0 scheduled discharge enable is False
2026-08-18 14:15:17.261280: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:15:17.261319: Inverter 0 discharge windows currently []
2026-08-18 14:15:17.261338: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:15:17.261365: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:15:17.261415: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:15:17.312642: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-18 14:15:17.312818: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:15:17.312918: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:15:17.313123: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:15:17.313217: No export window planned
2026-08-18 14:15:17.313424: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:15:17.313470: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:15:17.313676: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:15:17.313916: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:15:17.313979: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:15:17.314048: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:15:17.314142: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314211: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:15:17.314576: Inverter 0 count register writes 0
2026-08-18 14:15:17.336612: Total inverter register writes now 867
2026-08-18 14:15:17.366484: Info: Completed run status Demand
2026-08-18 14:15:17.371734: Info: record_status Demand
2026-08-18 14:15:17.377769: Saved current settings to /config/predbat_config.json
2026-08-18 14:15:17.378025: Compare, best tariff: current metric 129.87p
2026-08-18 14:15:49.509269: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:15:49.509538: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:15:49.509583: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:15:49.509749: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:15:49.509834: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:15:49.509882: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:15:49.509971: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:18:03.752776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:18:03.753004: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:18:03.753045: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:18:03.753174: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:18:03.753212: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:18:03.753234: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:18:03.753252: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:20:00.957588: --------------- PredBat - update at 2026-08-18 14:20:00+01:00 with clock skew 0 minutes, minutes now 860
2026-08-18 14:20:00.958270: Saved current settings to /config/predbat_config.json
2026-08-18 14:20:00.958440: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 14:20:00.958570: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:20:00.958665: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:20:00.976503: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:20:00.976629: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:20:00.976790: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:20:00.977475: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:20:00.977599: Predbat mode is set to Control charge & discharge
2026-08-18 14:20:01.172323: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:20:01.172466: Using load_power data to fill gaps in load_today data
2026-08-18 14:20:01.938527: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:20:01.938696: Zero load period starting at 2026-08-17T10:54:00+0100 (1646 minutes) for 189 minutes with base value 206.975
2026-08-18 14:20:01.939705: Processing 721 30-minute periods for power integration
2026-08-18 14:20:02.112291: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:20:02.112453: Car charging hold False, threshold 6.0kWh
2026-08-18 14:20:02.112520: Current data so far today: load 8.75kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:20:02.126811: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:20:02.126920: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:20:02.129533: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:20:02.129647: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:20:02.129769: Standing charge is set to 46.63p
2026-08-18 14:20:02.234596: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:20:02.236472: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:20:02.236749: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:20:02.237967: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:20:02.238109: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:20:02.238246: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:20:02.243611: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:20:02.245107: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:20:02.296538: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:20:02.296739: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:20:02.298132: High export rate found rates in range 99p to -99p
2026-08-18 14:20:02.407950: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:20:02.409120: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:20:02.422490: Battery level now 7.52kWh, -1hr ago 8.1kWh, at midnight 6.84kWh, battery value change in the last hour -3.96p, change today 4.67p, rate_forward 6.87p
2026-08-18 14:20:02.422903: 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-18 14:20:02.477667: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:20:02.477815: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:20:02.566335: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:20:02.607012: Today's load divergence 96.53%, in-day adjustment 95.08%, damping 0.95x, yesterday 92.68% today 96.71% blend 40.28%
2026-08-18 14:20:02.607112: Today's predicted so far 9.16kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 9.16kWh forecast extra.
2026-08-18 14:20:02.607153: Today's actual load so far 8.63kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 14:20:02.648907: Inverter 0: Type SK Sunsynk
2026-08-18 14:20:02.649000: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:20:02.649184: Reserve min: 7%, battery_min: 7%
2026-08-18 14:20:02.649276: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:20:02.649586: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 448W, current battery voltage 51.2V, grid power -54W, load power 501W, PV Power 0W
2026-08-18 14:20:02.649767: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:20:02.649898: Inverter 0 scheduled charge enable is False
2026-08-18 14:20:02.649940: Inverter 0 charge windows currently []
2026-08-18 14:20:02.649969: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:20:02.650131: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:20:02.650180: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:20:02.650221: Inverter 0 scheduled discharge enable is False
2026-08-18 14:20:02.650349: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:20:02.650405: Inverter 0 discharge windows currently []
2026-08-18 14:20:02.650431: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:20:02.650449: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:20:02.650472: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:20:02.715005: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:20:02.715135: Plan was last updated on 2026-08-18 14:15:00+01:00 and is now 5.0 minutes old
2026-08-18 14:20:02.715405: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:20:02.715461: Best export window [  ]
2026-08-18 14:20:02.716412: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:20:02.719679: Load divergence over 8.0 hours mean 441.14W, min 316.8W, max 642.6W, std dev 72.24W, divergence 8.19%
2026-08-18 14:20:02.747185: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:20:02.747339: LoadML is_calculating False
2026-08-18 14:20:02.747449: Creating pool of 12 processes to match your CPU count
2026-08-18 14:20:02.866885: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.3p, metric_keep 125.65kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.12kWh, PV 0.0kWh
2026-08-18 14:20:02.986028: Battery has 9.17 hours left - now at 7.52kWh
2026-08-18 14:20:03.033488: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 651.18p, metric_keep 127.28kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.18kWh, PV 0.0kWh
2026-08-18 14:20:03.113012: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 360.82p, metric_keep 5.98kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.18kWh, PV 0.0kWh
2026-08-18 14:20:03.207153: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 338.83p, metric_keep 1.31kWh, min_soc 1.18kWh @ 08-18 23:25:00, load 31.12kWh, PV 0.0kWh
2026-08-18 14:20:03.207254: Saving plan best values to HA entities
2026-08-18 14:20:03.381498: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:20:03.387181: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:20:03.392983: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.89kWh, house 0kWh, export 0.0kWh, metric 338.83p, metric10 360.82p
2026-08-18 14:20:03.465832: Marginal costs baseline metric (no standing charge): 292.199
2026-08-18 14:20:03.751431: Marginal energy costs matrix computed: min=8.0 max=37.65
2026-08-18 14:20:03.829736: Rate array import [{'start': 860, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 860, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:20:03.830427: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:20:03.830469: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:20:03.830491: - The battery is currently at 47% and is in eco mode for the next 9 hours.
2026-08-18 14:20:03.830510: - For the next 48 hours there will be no solar generation.
2026-08-18 14:20:03.830527: - You have enough battery to reach the next charge.
2026-08-18 14:20:03.830549: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:20:03.830570: 
2026-08-18 14:20:03.885920: Plan calculation took 1.17 seconds
2026-08-18 14:20:03.889239: No high rate period found
2026-08-18 14:20:03.937354: Import threshold used for optimisation was 8.0p
2026-08-18 14:20:03.984128: Low import rate windows [0: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 1: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 2: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 3: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 4: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 5: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 6: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 7: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 8: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 9: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 10: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 11: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 12: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 13: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 14: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 15: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 16: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 26: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 27: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 28: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 29: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 30: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 31: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 32: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 33: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 34: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 35: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 36: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 37: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 38: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 39: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 40: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 41: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 42: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 43: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 44: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 45: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 46: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 47: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 48: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 49: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 50: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 51: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 52: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 53: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 54: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 55: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 56: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 57: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 58: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 59: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 60: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 61: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 62: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 63: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 64: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 65: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 66: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 67: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 68: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 69: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 70: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 71: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 72: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 73: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 74: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 75: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 76: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 77: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 78: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 79: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 80: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 81: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 82: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 83: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 84: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 85: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 86: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 87: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 88: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 89: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 90: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 91: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 92: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 93: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 94: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75]
2026-08-18 14:20:03.988861: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-18 14:20:03.988967: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:20:03.989070: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:20:03.989342: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:20:03.989465: No export window planned
2026-08-18 14:20:03.989629: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:20:03.989672: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:20:03.989843: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:20:03.990049: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:20:03.990121: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:20:03.990224: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:20:03.990346: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990413: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990470: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990567: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:20:03.990993: Inverter 0 count register writes 0
2026-08-18 14:20:04.003829: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 14:20:04.008459: Total inverter register writes now 867
2026-08-18 14:20:04.060202: Info: Completed run status Demand
2026-08-18 14:20:04.074241: Info: record_status Demand
2026-08-18 14:20:04.082680: Saved current settings to /config/predbat_config.json
2026-08-18 14:20:04.083006: Compare, best tariff: current metric 129.87p
2026-08-18 14:20:34.189752: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:20:34.189985: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:20:34.190059: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:20:34.190261: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:20:34.190303: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:20:34.190325: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:20:34.190345: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:22:34.407939: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:22:34.408168: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:22:34.408209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:22:34.408341: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:22:34.408395: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:22:34.408419: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:22:34.408437: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:24:48.671224: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:24:48.671531: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:24:48.671581: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:24:48.671719: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:24:48.671757: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:24:48.671779: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:24:48.671797: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:25:00.764754: --------------- PredBat - update at 2026-08-18 14:25:00+01:00 with clock skew 0 minutes, minutes now 865
2026-08-18 14:25:00.765733: Saved current settings to /config/predbat_config.json
2026-08-18 14:25:00.765887: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 14:25:00.766014: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:25:00.766135: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:25:00.787353: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:25:00.787523: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:25:00.787684: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:25:00.788213: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:25:00.788339: Predbat mode is set to Control charge & discharge
2026-08-18 14:25:00.980419: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:25:00.980559: Using load_power data to fill gaps in load_today data
2026-08-18 14:25:01.825487: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:25:01.825675: Zero load period starting at 2026-08-17T10:54:00+0100 (1651 minutes) for 189 minutes with base value 206.95
2026-08-18 14:25:01.826858: Processing 721 30-minute periods for power integration
2026-08-18 14:25:02.013440: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:25:02.013558: Car charging hold False, threshold 6.0kWh
2026-08-18 14:25:02.013601: Current data so far today: load 8.8kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:25:02.030611: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:25:02.030719: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:25:02.031578: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:25:02.031674: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:25:02.031747: Standing charge is set to 46.63p
2026-08-18 14:25:02.115809: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:25:02.116068: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:25:02.116257: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:25:02.117154: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:25:02.117259: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:25:02.117349: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:25:02.121689: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:25:02.122063: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:25:02.169848: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:25:02.170280: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:25:02.171656: High export rate found rates in range 99p to -99p
2026-08-18 14:25:02.295359: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:25:02.295700: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:25:02.315735: Battery level now 7.52kWh, -1hr ago 8.1kWh, at midnight 6.84kWh, battery value change in the last hour -3.96p, change today 4.67p, rate_forward 6.87p
2026-08-18 14:25:02.316168: 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-18 14:25:02.389825: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:25:02.389971: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:25:02.467615: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:25:02.495295: Today's load divergence 97.23%, in-day adjustment 95.5%, damping 0.95x, yesterday 92.68% today 97.37% blend 39.93%
2026-08-18 14:25:02.495364: Today's predicted so far 9.19kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 9.19kWh forecast extra.
2026-08-18 14:25:02.495402: Today's actual load so far 8.76kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 14:25:02.530431: Inverter 0: Type SK Sunsynk
2026-08-18 14:25:02.530514: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:25:02.530691: Reserve min: 7%, battery_min: 7%
2026-08-18 14:25:02.530767: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:25:02.531021: Inverter 0 SoC: 7.37kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 521W, current battery voltage 51.2V, grid power -54W, load power 572W, PV Power 0W
2026-08-18 14:25:02.531166: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:25:02.531250: Inverter 0 scheduled charge enable is False
2026-08-18 14:25:02.531299: Inverter 0 charge windows currently []
2026-08-18 14:25:02.531327: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:25:02.531456: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:25:02.531493: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:25:02.531529: Inverter 0 scheduled discharge enable is False
2026-08-18 14:25:02.531649: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:25:02.531678: Inverter 0 discharge windows currently []
2026-08-18 14:25:02.531699: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:25:02.531717: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:25:02.531745: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:25:02.588722: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:25:02.588857: Plan was last updated on 2026-08-18 14:15:00+01:00 and is now 10.0 minutes old
2026-08-18 14:25:02.589196: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:25:02.589264: Best export window [  ]
2026-08-18 14:25:02.590490: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:25:02.594308: Load divergence over 8.0 hours mean 446.33W, min 324.0W, max 1255.8W, std dev 107.94W, divergence 12.09%
2026-08-18 14:25:02.613160: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:25:02.613254: LoadML is_calculating False
2026-08-18 14:25:02.613313: Creating pool of 12 processes to match your CPU count
2026-08-18 14:25:02.728912: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 626.31p, metric_keep 126.48kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.25kWh, PV 0.0kWh
2026-08-18 14:25:02.848400: Battery has 9.0 hours left - now at 7.37kWh
2026-08-18 14:25:02.895181: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 656.64p, metric_keep 128.06kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.32kWh, PV 0.0kWh
2026-08-18 14:25:02.983126: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 369.13p, metric_keep 6.66kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.32kWh, PV 0.0kWh
2026-08-18 14:25:03.064473: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 345.71p, metric_keep 2.06kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.25kWh, PV 0.0kWh
2026-08-18 14:25:03.064559: Saving plan best values to HA entities
2026-08-18 14:25:03.231609: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:25:03.237585: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:25:03.242843: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.45kWh, house 0.07kWh, export 0.0kWh, metric 345.71p, metric10 369.13p
2026-08-18 14:25:03.319607: Marginal costs baseline metric (no standing charge): 299.0758
2026-08-18 14:25:03.594811: Marginal energy costs matrix computed: min=8.0 max=37.32
2026-08-18 14:25:03.668645: Rate array import [{'start': 865, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 865, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:25:03.669437: - Your estimated bill for today is £1.68 and tomorrow is £1.94
2026-08-18 14:25:03.669495: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:25:03.669559: - The battery is currently at 46% and is in eco mode for the next 9 hours.
2026-08-18 14:25:03.669607: - For the next 48 hours there will be no solar generation.
2026-08-18 14:25:03.669634: - You have enough battery to reach the next charge.
2026-08-18 14:25:03.669674: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:25:03.669717: 
2026-08-18 14:25:03.723799: Plan calculation took 1.13 seconds
2026-08-18 14:25:03.726848: No high rate period found
2026-08-18 14:25:03.771547: Import threshold used for optimisation was 8.0p
2026-08-18 14:25:03.819639: Low import rate windows [0: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 1: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 2: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 3: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 4: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 5: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 6: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 7: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 8: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 9: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 10: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 11: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 12: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 13: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 14: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 15: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 16: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 26: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 27: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 28: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 29: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 30: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 31: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 32: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 33: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 34: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 35: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 36: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 37: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 38: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 39: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 40: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 41: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 42: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 43: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 44: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 45: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 46: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 47: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 48: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 49: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 50: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 51: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 52: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 53: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 54: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 55: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 56: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 57: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 58: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 59: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 60: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 61: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 62: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 63: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 64: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 65: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 66: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 67: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 68: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 69: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 70: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 71: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 72: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 73: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 74: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 75: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 76: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 77: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 78: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 79: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 80: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 81: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 82: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 83: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 84: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 85: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 86: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 87: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 88: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 89: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 90: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 91: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 92: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 93: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 94: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75]
2026-08-18 14:25:03.829493: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-18 14:25:03.830672: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:25:03.830769: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:25:03.831074: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:25:03.831185: No export window planned
2026-08-18 14:25:03.831325: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:25:03.831366: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:25:03.831525: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:25:03.831761: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:25:03.831836: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:25:03.831961: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:25:03.832192: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.832242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.832276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.832310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.832342: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.832392: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.833136: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.834895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:03.835067: Inverter 0 count register writes 0
2026-08-18 14:25:03.865124: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 14:25:03.866489: Recompute is saving previous plan...
2026-08-18 14:25:03.869667: Best charge window [ 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0% ]
2026-08-18 14:25:03.870825: Best export window [  ]
2026-08-18 14:25:03.871824: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:25:03.874927: Load divergence over 8.0 hours mean 446.33W, min 324.0W, max 1255.8W, std dev 107.94W, divergence 12.09%
2026-08-18 14:25:03.896070: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:25:03.897153: LoadML is_calculating False
2026-08-18 14:25:03.898155: Creating pool of 12 processes to match your CPU count
2026-08-18 14:25:04.038445: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 14:25:04.040856: Optimise levels pass started at 2026-08-18 14:25:04
2026-08-18 14:25:04.041254: Optimise all windows, total charge 94 export 1
2026-08-18 14:25:04.453818: >> Region optimisation pass width 960 gives best_metric 387.22p, best_cost 440.68p, best_cycle 51.05kWh, best_import 37.22kWh
2026-08-18 14:25:04.657348: >> Region optimisation pass width 480 gives best_metric 387.22p, best_cost 440.68p, best_cycle 51.05kWh, best_import 37.22kWh
2026-08-18 14:25:04.998975: >> Region optimisation pass width 240 gives best_metric 387.22p, best_cost 440.68p, best_cycle 51.05kWh, best_import 37.22kWh
2026-08-18 14:25:06.181828: >> Region optimisation pass width 120 gives best_metric 380.25p, best_cost 392.9p, best_cycle 50.54kWh, best_import 31.25kWh
2026-08-18 14:25:06.182303: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 65
2026-08-18 14:25:06.182404: Optimise levels pass ended at 2026-08-18 14:25:06, duration 2.1 seconds tried 219 combinations
2026-08-18 14:25:06.182488: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 380.25p, best_keep 1.68kWh, best_cycle 50.54kWh, best_carbon 0kg, best_import 31.25kWh
2026-08-18 14:25:06.202617: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 14:25:12.481444: Tweak plan optimisation started metric 286.13p, cost 295.04p
2026-08-18 14:25:12.776966: Tweak optimisation finished metric 286.13p, cost 295.04p, metric_keep 1.39kWh, cycle 32.14kWh, carbon 0kg, import 19.02kWh, changed 8 window(s)
2026-08-18 14:25:12.796108: Swap charge optimisation started metric 286.13p, cost 295.04p, min_improvement_swap 0.1p
2026-08-18 14:25:18.967943: Swap charge optimisation finished metric 286.13p, cost 295.04p
2026-08-18 14:25:19.104327: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 283.82p -> 283.66p, plan now metric 286.61p, cost 293.03p, cycle 32.4kWh, import 18.76kWh
2026-08-18 14:25:19.116177: Raw charge windows [ 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 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 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:25:19.116762: Unclipped charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:25:19.117041: Unfiltered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:25:19.117261: Filtered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:25:19.154010: Previous plan best metric is 286.42 (cost 295.04) and new plan best metric is 286.13 (cost 295.04)
2026-08-18 14:25:19.154270: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 14:25:19.154504: Plan valid is now true after recompute was False
2026-08-18 14:25:19.183323: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 624.78p, metric_keep 126.23kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.06kWh, PV 0.0kWh
2026-08-18 14:25:19.281728: Battery has 9.0 hours left - now at 7.37kWh
2026-08-18 14:25:19.329966: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 655.04p, metric_keep 127.81kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.12kWh, PV 0.0kWh
2026-08-18 14:25:19.398140: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 361.97p, metric_keep 6.64kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.12kWh, PV 0.0kWh
2026-08-18 14:25:19.471403: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 337.51p, metric_keep 2.06kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.06kWh, PV 0.0kWh
2026-08-18 14:25:19.471489: Saving plan best values to HA entities
2026-08-18 14:25:19.612752: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:25:19.617022: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:25:19.621358: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.07kWh, export 0.0kWh, metric 337.51p, metric10 361.97p
2026-08-18 14:25:19.690186: Marginal costs baseline metric (no standing charge): 290.8803
2026-08-18 14:25:19.972495: Marginal energy costs matrix computed: min=8.0 max=37.32
2026-08-18 14:25:20.038259: Rate array import [{'start': 865, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 865, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:25:20.039131: - Your estimated bill for today is £1.68 and tomorrow is £1.94
2026-08-18 14:25:20.039189: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:25:20.039229: - The battery is currently at 46% and is in eco mode for the next 9 hours.
2026-08-18 14:25:20.039252: - For the next 48 hours there will be no solar generation.
2026-08-18 14:25:20.039294: - You have enough battery to reach the next charge.
2026-08-18 14:25:20.039314: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:25:20.039331: 
2026-08-18 14:25:20.094920: Plan calculation took 16.23 seconds
2026-08-18 14:25:20.095242: Inverter 0: Type SK Sunsynk
2026-08-18 14:25:20.095286: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:25:20.095502: Reserve min: 7%, battery_min: 7%
2026-08-18 14:25:20.095585: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:25:20.095930: Inverter 0 SoC: 7.37kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 521W, current battery voltage 51.2V, grid power -54W, load power 572W, PV Power 0W
2026-08-18 14:25:20.096194: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:25:20.096299: Inverter 0 scheduled charge enable is False
2026-08-18 14:25:20.096335: Inverter 0 charge windows currently []
2026-08-18 14:25:20.096366: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:25:20.096497: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:25:20.096536: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:25:20.096573: Inverter 0 scheduled discharge enable is False
2026-08-18 14:25:20.096738: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:25:20.096799: Inverter 0 discharge windows currently []
2026-08-18 14:25:20.096839: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:25:20.096876: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:25:20.096897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:25:20.156249: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-18 14:25:20.156385: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:25:20.156450: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:25:20.156600: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:25:20.156666: No export window planned
2026-08-18 14:25:20.156779: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:25:20.156818: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:25:20.156933: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:25:20.157067: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:25:20.157110: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:25:20.157164: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:25:20.157236: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157268: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157293: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157398: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:25:20.157635: Inverter 0 count register writes 0
2026-08-18 14:25:20.179301: Total inverter register writes now 867
2026-08-18 14:25:20.210230: Info: Completed run status Demand
2026-08-18 14:25:20.241396: Info: record_status Demand
2026-08-18 14:25:20.252844: Saved current settings to /config/predbat_config.json
2026-08-18 14:25:20.253146: Compare, best tariff: current metric 129.87p
2026-08-18 14:26:04.374415: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:26:04.374638: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:26:04.374679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:26:04.374843: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:26:04.374883: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:26:04.374904: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:26:04.374922: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:28:04.619854: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:28:04.620172: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:28:04.620231: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:28:04.620388: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:28:04.620427: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:28:04.620459: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:28:04.620491: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:29:22.182840: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 14:29:23.195265: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:29:23.195480: Zero load period starting at 2026-08-17T10:54:00+0100 (1651 minutes) for 189 minutes with base value 397.1
2026-08-18 14:29:23.196553: Processing 1345 30-minute periods for power integration
2026-08-18 14:29:23.281153: ML Component: Car charging hold False, car energy reported load False
2026-08-18 14:29:23.363617: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:29:23.442656: ML Temperature data points: 49536
2026-08-18 14:29:23.678548: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 14:29:23.715426: ML Component: Data fetch completed, load data age 60.0 days, 17284 data points
2026-08-18 14:29:23.716972: ML Component: No training needed, model age is 1.85 hours
2026-08-18 14:29:23.717046: ML Component: Generating predictions load data age 60.0 days, 17284 data points
2026-08-18 14:29:23.852438: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0478 max_dow {0: 0.08701944450702932, 1: 0.09171111095034414, 2: 0.10702187459506095, 3: 0.1005312503473833, 4: 0.13755000035744158, 5: 0.09631666693902677, 6: 0.10488888886421918}
2026-08-18 14:29:24.385608: ML Component: Generated 576 predictions (total 28.98 kWh over 48h)
2026-08-18 14:29:24.417741: ML Component: Prediction cycle completed
2026-08-18 14:29:24.522110: ML Component: Saved 17284 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 14:30:00.836329: --------------- PredBat - update at 2026-08-18 14:30:00+01:00 with clock skew 0 minutes, minutes now 870
2026-08-18 14:30:00.837138: Saved current settings to /config/predbat_config.json
2026-08-18 14:30:00.837255: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 14:30:00.837340: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:30:00.837471: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:30:00.855406: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:30:00.855552: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:30:00.855761: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:30:00.856351: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:30:00.856520: Predbat mode is set to Control charge & discharge
2026-08-18 14:30:01.057428: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:30:01.057560: Using load_power data to fill gaps in load_today data
2026-08-18 14:30:01.823603: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:30:01.823765: Zero load period starting at 2026-08-17T10:54:00+0100 (1656 minutes) for 189 minutes with base value 206.925
2026-08-18 14:30:01.824821: Processing 721 30-minute periods for power integration
2026-08-18 14:30:02.007441: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:30:02.007558: Car charging hold False, threshold 6.0kWh
2026-08-18 14:30:02.007603: Current data so far today: load 9.0kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:30:02.023296: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:30:02.023597: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:30:02.024298: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:30:02.024388: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:30:02.024446: Standing charge is set to 46.63p
2026-08-18 14:30:02.122783: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:30:02.123151: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:30:02.123358: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:30:02.125958: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:30:02.126363: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:30:02.126526: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:30:02.132134: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:30:02.132494: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:30:02.177342: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:30:02.177483: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:30:02.178849: High export rate found rates in range 99p to -99p
2026-08-18 14:30:02.277995: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:30:02.278139: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:30:02.290756: Battery level now 7.37kWh, -1hr ago 8.0kWh, at midnight 6.84kWh, battery value change in the last hour -4.34p, change today 3.63p, rate_forward 6.87p
2026-08-18 14:30:02.291118: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:30:02.354875: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:30:02.355062: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:30:02.449200: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:30:02.483428: Today's load divergence 97.9%, in-day adjustment 95.9%, damping 0.95x, yesterday 92.68% today 98.0% blend 39.58%
2026-08-18 14:30:02.483530: Today's predicted so far 9.3kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 9.3kWh forecast extra.
2026-08-18 14:30:02.483563: Today's actual load so far 8.98kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 14:30:02.519588: Inverter 0: Type SK Sunsynk
2026-08-18 14:30:02.519665: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:30:02.519830: Reserve min: 7%, battery_min: 7%
2026-08-18 14:30:02.519890: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:30:02.520177: Inverter 0 SoC: 7.37kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 508W, current battery voltage 51.2V, grid power -53W, load power 559W, PV Power 0W
2026-08-18 14:30:02.520321: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:30:02.520421: Inverter 0 scheduled charge enable is False
2026-08-18 14:30:02.520457: Inverter 0 charge windows currently []
2026-08-18 14:30:02.520484: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:30:02.520594: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:30:02.520627: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:30:02.520661: Inverter 0 scheduled discharge enable is False
2026-08-18 14:30:02.520783: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:30:02.520818: Inverter 0 discharge windows currently []
2026-08-18 14:30:02.520840: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:30:02.520863: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:30:02.520880: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:30:02.580282: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:30:02.580423: Plan was last updated on 2026-08-18 14:25:00+01:00 and is now 5.0 minutes old
2026-08-18 14:30:02.580657: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:30:02.580703: Best export window [  ]
2026-08-18 14:30:02.581560: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:30:02.584826: Load divergence over 8.0 hours mean 446.51W, min 335.4W, max 1247.4W, std dev 103.27W, divergence 11.56%
2026-08-18 14:30:02.604276: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:30:02.604402: LoadML is_calculating False
2026-08-18 14:30:02.604467: Creating pool of 12 processes to match your CPU count
2026-08-18 14:30:02.721447: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 624.72p, metric_keep 126.25kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 14:30:02.880253: Battery has 8.92 hours left - now at 7.37kWh
2026-08-18 14:30:02.965949: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 654.91p, metric_keep 127.84kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.41kWh, PV 0.0kWh
2026-08-18 14:30:03.076555: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 364.69p, metric_keep 6.53kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.41kWh, PV 0.0kWh
2026-08-18 14:30:03.152867: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 341.11p, metric_keep 1.93kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 14:30:03.153206: Saving plan best values to HA entities
2026-08-18 14:30:03.309913: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:30:03.315277: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:30:03.320462: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.05kWh, export 0.0kWh, metric 341.11p, metric10 364.69p
2026-08-18 14:30:03.395094: Marginal costs baseline metric (no standing charge): 294.4766
2026-08-18 14:30:03.655771: Marginal energy costs matrix computed: min=8.0 max=36.82
2026-08-18 14:30:03.728116: Rate array import [{'start': 870, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 870, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:30:03.729073: - Your estimated bill for today is £1.67 and tomorrow is £1.94
2026-08-18 14:30:03.729127: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:30:03.729151: - The battery is currently at 46% and is in eco mode for the next 9 hours.
2026-08-18 14:30:03.729170: - For the next 48 hours there will be no solar generation.
2026-08-18 14:30:03.729189: - You have enough battery to reach the next charge.
2026-08-18 14:30:03.729206: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-18 14:30:03.729227: 
2026-08-18 14:30:03.783236: Plan calculation took 1.20 seconds
2026-08-18 14:30:03.786932: No high rate period found
2026-08-18 14:30:03.839571: Import threshold used for optimisation was 8.0p
2026-08-18 14:30:03.894821: Low import rate windows [0: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 1: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 2: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 3: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 4: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 5: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 6: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 7: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 8: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 9: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 10: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 11: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 12: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 13: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 14: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 15: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 26: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 27: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 28: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 29: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 30: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 31: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 32: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 33: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 34: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 35: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 36: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 37: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 38: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 39: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 40: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 41: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 42: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 43: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 44: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 45: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 46: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 47: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 48: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 49: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 50: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 51: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 52: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 53: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 54: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 55: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 56: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 57: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 58: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 59: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 60: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 61: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 62: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 63: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 64: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 65: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 66: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 67: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 68: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 69: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 70: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 71: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 72: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 73: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 74: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 75: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 76: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 77: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 78: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 79: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 80: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 81: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 82: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 83: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 84: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 85: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 86: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 87: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 88: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 89: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 90: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 91: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 92: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 93: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75]
2026-08-18 14:30:03.900791: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-18 14:30:03.900960: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:30:03.901083: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:30:03.901439: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:30:03.901571: No export window planned
2026-08-18 14:30:03.901745: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:30:03.901794: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:30:03.901927: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:30:03.902080: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:30:03.902160: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:30:03.902246: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:30:03.902391: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902512: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902536: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902562: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:30:03.902915: Inverter 0 count register writes 0
2026-08-18 14:30:03.920576: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 14:30:03.927011: Total inverter register writes now 867
2026-08-18 14:30:03.966022: Info: Completed run status Demand
2026-08-18 14:30:03.974242: Info: record_status Demand
2026-08-18 14:30:03.981513: Saved current settings to /config/predbat_config.json
2026-08-18 14:30:03.981818: Compare, best tariff: current metric 129.87p
2026-08-18 14:30:34.093680: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:30:34.093956: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:30:34.094009: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:30:34.094173: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:30:34.094218: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:30:34.094240: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:30:34.094259: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:32:34.304994: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:32:34.305322: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:32:34.305406: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:32:34.305633: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:32:34.305690: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:32:34.305730: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:32:34.305768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:34:34.548435: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:34:34.548662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:34:34.548703: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:34:34.548837: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:34:34.548887: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:34:34.548926: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:34:34.548968: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:35:00.670002: --------------- PredBat - update at 2026-08-18 14:35:00+01:00 with clock skew 0 minutes, minutes now 875
2026-08-18 14:35:00.670752: Saved current settings to /config/predbat_config.json
2026-08-18 14:35:00.670891: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 14:35:00.670974: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:35:00.671127: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:35:00.689180: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:35:00.689317: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:35:00.689519: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:35:00.689997: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:35:00.690112: Predbat mode is set to Control charge & discharge
2026-08-18 14:35:00.846146: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:35:00.846263: Using load_power data to fill gaps in load_today data
2026-08-18 14:35:01.516861: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:35:01.517031: Zero load period starting at 2026-08-17T10:54:00+0100 (1661 minutes) for 189 minutes with base value 206.9
2026-08-18 14:35:01.518018: Processing 721 30-minute periods for power integration
2026-08-18 14:35:01.671261: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:35:01.671365: Car charging hold False, threshold 6.0kWh
2026-08-18 14:35:01.671415: Current data so far today: load 9.1kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:35:01.684548: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:35:01.684625: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:35:01.685232: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:35:01.685300: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:35:01.685343: Standing charge is set to 46.63p
2026-08-18 14:35:01.788482: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:35:01.789206: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:35:01.789480: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:35:01.790609: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:35:01.790723: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:35:01.790915: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:35:01.795672: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:35:01.796098: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:35:01.847702: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:35:01.847855: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:35:01.849237: High export rate found rates in range 99p to -99p
2026-08-18 14:35:01.943847: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:35:01.944848: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:35:01.964564: Battery level now 7.37kWh, -1hr ago 8.0kWh, at midnight 6.84kWh, battery value change in the last hour -4.34p, change today 3.63p, rate_forward 6.87p
2026-08-18 14:35:01.964953: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:35:02.037882: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:35:02.038022: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:35:02.122654: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:35:02.150024: Today's load divergence 98.0%, in-day adjustment 95.97%, damping 0.95x, yesterday 92.68% today 98.1% blend 39.24%
2026-08-18 14:35:02.150093: Today's predicted so far 9.4kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 9.4kWh forecast extra.
2026-08-18 14:35:02.150119: Today's actual load so far 9.09kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 14:35:02.181653: Inverter 0: Type SK Sunsynk
2026-08-18 14:35:02.181734: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:35:02.181912: Reserve min: 7%, battery_min: 7%
2026-08-18 14:35:02.181988: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:35:02.182246: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 483W, current battery voltage 51.2V, grid power -57W, load power 538W, PV Power 0W
2026-08-18 14:35:02.182410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:35:02.182496: Inverter 0 scheduled charge enable is False
2026-08-18 14:35:02.182563: Inverter 0 charge windows currently []
2026-08-18 14:35:02.182593: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:35:02.182730: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:35:02.182771: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:35:02.182808: Inverter 0 scheduled discharge enable is False
2026-08-18 14:35:02.182965: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:35:02.183024: Inverter 0 discharge windows currently []
2026-08-18 14:35:02.183050: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:35:02.183070: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:35:02.183087: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:35:02.238469: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:35:02.238558: Plan was last updated on 2026-08-18 14:25:00+01:00 and is now 10.0 minutes old
2026-08-18 14:35:02.238732: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:35:02.238765: Best export window [  ]
2026-08-18 14:35:02.239446: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:35:02.242015: Load divergence over 8.0 hours mean 446.52W, min 330.0W, max 1248.0W, std dev 107.55W, divergence 12.04%
2026-08-18 14:35:02.257342: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:35:02.257432: LoadML is_calculating False
2026-08-18 14:35:02.257479: Creating pool of 12 processes to match your CPU count
2026-08-18 14:35:02.363331: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 624.1p, metric_keep 126.14kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.5kWh, PV 0.0kWh
2026-08-18 14:35:02.469717: Battery has 8.83 hours left - now at 7.36kWh
2026-08-18 14:35:02.506514: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 654.2p, metric_keep 127.71kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.56kWh, PV 0.0kWh
2026-08-18 14:35:02.575809: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 366.77p, metric_keep 6.31kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.56kWh, PV 0.0kWh
2026-08-18 14:35:02.645890: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 343.89p, metric_keep 1.69kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.5kWh, PV 0.0kWh
2026-08-18 14:35:02.645967: Saving plan best values to HA entities
2026-08-18 14:35:02.787565: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:35:02.792495: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:35:02.796904: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.01kWh, export 0.0kWh, metric 343.89p, metric10 366.77p
2026-08-18 14:35:02.869362: Marginal costs baseline metric (no standing charge): 297.2549
2026-08-18 14:35:03.097446: Marginal energy costs matrix computed: min=8.0 max=36.27
2026-08-18 14:35:03.154260: Rate array import [{'start': 875, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 875, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:35:03.154819: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:35:03.154855: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:35:03.154888: - The battery is currently at 46% and is in eco mode for the next 8 hours.
2026-08-18 14:35:03.154904: - For the next 48 hours there will be no solar generation.
2026-08-18 14:35:03.154919: - You have enough battery to reach the next charge.
2026-08-18 14:35:03.154937: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:35:03.154951: 
2026-08-18 14:35:03.203018: Plan calculation took 0.96 seconds
2026-08-18 14:35:03.206592: No high rate period found
2026-08-18 14:35:03.254337: Import threshold used for optimisation was 8.0p
2026-08-18 14:35:03.297327: Low import rate windows [0: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 1: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 2: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 3: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 4: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 5: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 6: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 7: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 8: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 9: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 10: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 11: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 12: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 13: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 14: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 15: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 26: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 27: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 28: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 29: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 30: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 31: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 32: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 33: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 34: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 35: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 36: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 37: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 38: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 39: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 40: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 41: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 42: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 43: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 44: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 45: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 46: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 47: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 48: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 49: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 50: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 51: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 52: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 53: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 54: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 55: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 56: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 57: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 58: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 59: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 60: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 61: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 62: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 63: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 64: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 65: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 66: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 67: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 68: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 69: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 70: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 71: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 72: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 73: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 74: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 75: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 76: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 77: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 78: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 79: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 80: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 81: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 82: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 83: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 84: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 85: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 86: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 87: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 88: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 89: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 90: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 91: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 92: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 93: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 94: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75]
2026-08-18 14:35:03.302541: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-18 14:35:03.302649: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:35:03.302727: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:35:03.302916: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:35:03.302997: No export window planned
2026-08-18 14:35:03.303093: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:35:03.303121: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:35:03.303228: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:35:03.303360: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:35:03.303431: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:35:03.303486: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:35:03.303567: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303619: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303646: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:03.303962: Inverter 0 count register writes 0
2026-08-18 14:35:03.318577: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 14:35:03.318735: Recompute is saving previous plan...
2026-08-18 14:35:03.321888: Best charge window [ 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0% ]
2026-08-18 14:35:03.321966: Best export window [  ]
2026-08-18 14:35:03.322824: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:35:03.325869: Load divergence over 8.0 hours mean 446.52W, min 330.0W, max 1248.0W, std dev 107.55W, divergence 12.04%
2026-08-18 14:35:03.343955: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:35:03.344062: LoadML is_calculating False
2026-08-18 14:35:03.344123: Creating pool of 12 processes to match your CPU count
2026-08-18 14:35:03.422848: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 14:35:03.424470: Optimise levels pass started at 2026-08-18 14:35:03
2026-08-18 14:35:03.424530: Optimise all windows, total charge 94 export 1
2026-08-18 14:35:03.802825: >> Region optimisation pass width 960 gives best_metric 385.65p, best_cost 436.64p, best_cycle 50.86kWh, best_import 36.91kWh
2026-08-18 14:35:04.047082: >> Region optimisation pass width 480 gives best_metric 385.65p, best_cost 436.64p, best_cycle 50.86kWh, best_import 36.91kWh
2026-08-18 14:35:04.394496: >> Region optimisation pass width 240 gives best_metric 385.65p, best_cost 436.64p, best_cycle 50.86kWh, best_import 36.91kWh
2026-08-18 14:35:05.438568: >> Region optimisation pass width 120 gives best_metric 381.6p, best_cost 406.31p, best_cycle 52.63kWh, best_import 33.11kWh
2026-08-18 14:35:05.439060: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 64
2026-08-18 14:35:05.439217: Optimise levels pass ended at 2026-08-18 14:35:05, duration 2.0 seconds tried 217 combinations
2026-08-18 14:35:05.439385: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 381.6p, best_keep 1.34kWh, best_cycle 52.63kWh, best_carbon 0kg, best_import 33.11kWh
2026-08-18 14:35:05.467464: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 14:35:10.778451: Tweak plan optimisation started metric 284.11p, cost 293.19p
2026-08-18 14:35:11.109978: Tweak optimisation finished metric 284.11p, cost 293.19p, metric_keep 1.34kWh, cycle 32.12kWh, carbon 0kg, import 18.97kWh, changed 8 window(s)
2026-08-18 14:35:11.133835: Swap charge optimisation started metric 284.11p, cost 293.19p, min_improvement_swap 0.1p
2026-08-18 14:35:16.537020: Swap charge optimisation finished metric 284.11p, cost 293.19p
2026-08-18 14:35:16.656102: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 281.82p -> 281.59p, plan now metric 285.39p, cost 289.0p, cycle 32.13kWh, import 18.45kWh
2026-08-18 14:35:16.669513: Raw charge windows [ 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:35:16.670793: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:35:16.671076: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:35:16.671297: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:35:16.711259: Previous plan best metric is 284.11 (cost 293.19) and new plan best metric is 284.11 (cost 293.19)
2026-08-18 14:35:16.711484: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 14:35:16.711633: Plan valid is now true after recompute was False
2026-08-18 14:35:16.741557: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 622.52p, metric_keep 125.89kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.3kWh, PV 0.0kWh
2026-08-18 14:35:16.838478: Battery has 8.83 hours left - now at 7.36kWh
2026-08-18 14:35:16.873980: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 652.53p, metric_keep 127.46kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.35kWh, PV 0.0kWh
2026-08-18 14:35:16.942184: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 359.55p, metric_keep 6.29kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.35kWh, PV 0.0kWh
2026-08-18 14:35:17.017776: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 335.63p, metric_keep 1.69kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.3kWh, PV 0.0kWh
2026-08-18 14:35:17.017863: Saving plan best values to HA entities
2026-08-18 14:35:17.152940: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:35:17.157752: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:35:17.162718: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.01kWh, export 0.0kWh, metric 335.63p, metric10 359.55p
2026-08-18 14:35:17.230811: Marginal costs baseline metric (no standing charge): 289.0002
2026-08-18 14:35:17.481841: Marginal energy costs matrix computed: min=8.0 max=36.27
2026-08-18 14:35:17.548602: Rate array import [{'start': 875, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 875, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:35:17.549329: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:35:17.549405: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:35:17.549448: - The battery is currently at 46% and is in eco mode for the next 8 hours.
2026-08-18 14:35:17.549489: - For the next 48 hours there will be no solar generation.
2026-08-18 14:35:17.549523: - You have enough battery to reach the next charge.
2026-08-18 14:35:17.549561: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:35:17.549633: 
2026-08-18 14:35:17.600874: Plan calculation took 14.28 seconds
2026-08-18 14:35:17.601191: Inverter 0: Type SK Sunsynk
2026-08-18 14:35:17.601234: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:35:17.601457: Reserve min: 7%, battery_min: 7%
2026-08-18 14:35:17.601537: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:35:17.601872: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 493W, current battery voltage 51.2V, grid power -55W, load power 546W, PV Power 0W
2026-08-18 14:35:17.602098: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:35:17.602198: Inverter 0 scheduled charge enable is False
2026-08-18 14:35:17.602233: Inverter 0 charge windows currently []
2026-08-18 14:35:17.602263: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:35:17.602388: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:35:17.602432: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:35:17.602470: Inverter 0 scheduled discharge enable is False
2026-08-18 14:35:17.602598: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:35:17.602635: Inverter 0 discharge windows currently []
2026-08-18 14:35:17.602658: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:35:17.602677: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:35:17.602712: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:35:17.672314: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-18 14:35:17.672480: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:35:17.672574: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:35:17.672756: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:35:17.672845: No export window planned
2026-08-18 14:35:17.672968: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:35:17.673057: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:35:17.673223: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:35:17.673511: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:35:17.674127: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:35:17.675254: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:35:17.675410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675718: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675761: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.675926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.676526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.678581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.678629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.678663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:35:17.678732: Inverter 0 count register writes 0
2026-08-18 14:35:17.713947: Total inverter register writes now 867
2026-08-18 14:35:17.743526: Info: Completed run status Demand
2026-08-18 14:35:17.749075: Info: record_status Demand
2026-08-18 14:35:17.754542: Saved current settings to /config/predbat_config.json
2026-08-18 14:35:17.754770: Compare, best tariff: current metric 129.87p
2026-08-18 14:35:24.914427: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 14:35:25.849967: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:35:25.850108: Zero load period starting at 2026-08-17T10:54:00+0100 (1661 minutes) for 189 minutes with base value 397.0
2026-08-18 14:35:25.851123: Processing 1345 30-minute periods for power integration
2026-08-18 14:35:25.945794: ML Component: Car charging hold False, car energy reported load False
2026-08-18 14:35:26.057276: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:35:26.156953: ML Temperature data points: 49526
2026-08-18 14:35:26.441848: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 14:35:26.481350: ML Component: Data fetch completed, load data age 60.0 days, 17286 data points
2026-08-18 14:35:26.481592: ML Component: Starting fine-tune training (2h interval), model age is 2.0143985955555554 hours
2026-08-18 14:35:26.481641: ML Component: Doing training...
2026-08-18 14:35:26.493980: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=57.0 days)
2026-08-18 14:35:26.494071: ML Predictor: Curriculum training - 5 passes, window 57.0→60.0 days + final full pass (60.0 days)
2026-08-18 14:35:26.544506: ML Predictor: Curriculum pass 1/5: window=57.0 days (1368 hours of data)
2026-08-18 14:35:26.544601: ML Predictor: Starting initial training with 30 epochs
2026-08-18 14:35:27.203622: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 14:35:32.744119: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 14:35:32.991020: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0481) load(mean=0.0599 std=0.0484) pv(mean=0.0000 std=0.0100) temp(mean=19.7466 std=4.5738) import_rate(mean=16.5928 std=8.3605) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5283)
2026-08-18 14:35:49.025206: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0162 val_mae=0.0077 kWh val_bias=-0.0031 kWh (-3.9%) combined=0.0052 kWh ema_combined=0.0052 kWh
2026-08-18 14:35:49.494087: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:35:49.494424: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:35:49.494500: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:35:49.494695: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:35:49.494758: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:35:49.494801: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:35:49.494837: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:36:04.339855: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0393 val_mae=0.0072 kWh val_bias=-0.0020 kWh (-2.5%) combined=0.0039 kWh ema_combined=0.0048 kWh
2026-08-18 14:36:21.188520: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0320 val_mae=0.0067 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0047 kWh ema_combined=0.0048 kWh
2026-08-18 14:36:35.297121: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0230 val_mae=0.0051 kWh val_bias=+0.0013 kWh (+1.6%) combined=0.0038 kWh ema_combined=0.0045 kWh
2026-08-18 14:36:50.293093: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0140 val_mae=0.0042 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0024 kWh ema_combined=0.0038 kWh
2026-08-18 14:37:04.166254: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0136 val_mae=0.0040 kWh val_bias=+0.0012 kWh (+1.5%) combined=0.0025 kWh ema_combined=0.0035 kWh
2026-08-18 14:37:19.705677: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0105 val_mae=0.0040 kWh val_bias=-0.0018 kWh (-2.4%) combined=0.0033 kWh ema_combined=0.0034 kWh
2026-08-18 14:37:34.115934: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0100 val_mae=0.0034 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0020 kWh ema_combined=0.0030 kWh
2026-08-18 14:37:46.398425: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0091 val_mae=0.0033 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-18 14:38:00.383460: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0094 val_mae=0.0033 kWh val_bias=-0.0017 kWh (-2.1%) combined=0.0031 kWh ema_combined=0.0029 kWh
2026-08-18 14:38:03.862216: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:38:03.862574: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:38:03.862634: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:38:03.862779: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:38:03.862820: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:38:03.862843: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:38:03.862935: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:38:13.133176: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0086 val_mae=0.0032 kWh val_bias=-0.0014 kWh (-1.7%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-18 14:38:28.712732: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0031 kWh val_bias=+0.0010 kWh (+1.3%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-18 14:38:41.517657: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0076 val_mae=0.0035 kWh val_bias=-0.0022 kWh (-2.8%) combined=0.0033 kWh ema_combined=0.0028 kWh
2026-08-18 14:38:55.083758: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0076 val_mae=0.0027 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0018 kWh ema_combined=0.0025 kWh
2026-08-18 14:39:08.003849: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0070 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 14:39:22.802827: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0071 val_mae=0.0030 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-18 14:39:36.769713: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-18 14:39:51.254189: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0072 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-18 14:40:00.182651: --------------- PredBat - update at 2026-08-18 14:40:00+01:00 with clock skew 0 minutes, minutes now 880
2026-08-18 14:40:00.183338: Saved current settings to /config/predbat_config.json
2026-08-18 14:40:00.183467: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 14:40:00.183543: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:40:00.183966: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:40:00.221622: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:40:00.221962: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:40:00.222305: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:40:00.223015: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:40:00.223271: Predbat mode is set to Control charge & discharge
2026-08-18 14:40:00.548230: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:40:00.548406: Using load_power data to fill gaps in load_today data
2026-08-18 14:40:01.766122: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:40:01.766931: Zero load period starting at 2026-08-17T10:54:00+0100 (1666 minutes) for 189 minutes with base value 206.875
2026-08-18 14:40:01.768134: Processing 721 30-minute periods for power integration
2026-08-18 14:40:02.089648: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:40:02.089843: Car charging hold False, threshold 6.0kWh
2026-08-18 14:40:02.089915: Current data so far today: load 9.05kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:40:02.110180: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:40:02.110590: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:40:02.111546: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:40:02.111648: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:40:02.112112: Standing charge is set to 46.63p
2026-08-18 14:40:02.361402: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:40:02.361696: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:40:02.361922: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:40:02.363421: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:40:02.363554: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:40:02.363708: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:40:02.371427: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:40:02.371853: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:40:02.464597: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:40:02.465163: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:40:02.466687: High export rate found rates in range 99p to -99p
2026-08-18 14:40:02.563608: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:40:02.563859: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:40:02.602654: Battery level now 7.36kWh, -1hr ago 7.86kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today 3.57p, rate_forward 6.87p
2026-08-18 14:40:02.603076: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:40:02.696833: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:40:02.696978: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:40:02.808469: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:40:02.842730: Today's load divergence 97.47%, in-day adjustment 95.69%, damping 0.95x, yesterday 92.68% today 97.6% blend 38.89%
2026-08-18 14:40:02.842879: Today's predicted so far 9.41kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 9.41kWh forecast extra.
2026-08-18 14:40:02.842922: Today's actual load so far 9.02kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 14:40:02.912656: Inverter 0: Type SK Sunsynk
2026-08-18 14:40:02.912856: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:40:02.913155: Reserve min: 7%, battery_min: 7%
2026-08-18 14:40:02.913296: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:40:02.913694: Inverter 0 SoC: 7.36kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 536W, current battery voltage 51.2V, grid power -53W, load power 585W, PV Power 0W
2026-08-18 14:40:02.913946: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:40:02.914109: Inverter 0 scheduled charge enable is False
2026-08-18 14:40:02.914197: Inverter 0 charge windows currently []
2026-08-18 14:40:02.914285: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:40:02.914508: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:40:02.914561: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:40:02.914659: Inverter 0 scheduled discharge enable is False
2026-08-18 14:40:02.914880: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:40:02.914931: Inverter 0 discharge windows currently []
2026-08-18 14:40:02.914963: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:40:02.915048: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:40:02.915120: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:40:03.034836: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:40:03.034972: Plan was last updated on 2026-08-18 14:35:00+01:00 and is now 5.0 minutes old
2026-08-18 14:40:03.035799: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:40:03.036033: Best export window [  ]
2026-08-18 14:40:03.037297: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:40:03.042981: Load divergence over 8.0 hours mean 446.59W, min 345.0W, max 1120.2W, std dev 93.21W, divergence 10.44%
2026-08-18 14:40:03.064155: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:40:03.064312: LoadML is_calculating True
2026-08-18 14:40:03.064343: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 14:40:03.101894: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 622.32p, metric_keep 125.62kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.27kWh, PV 0.0kWh
2026-08-18 14:40:03.246957: Battery has 8.83 hours left - now at 7.36kWh
2026-08-18 14:40:03.311276: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 650.79p, metric_keep 127.19kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.33kWh, PV 0.0kWh
2026-08-18 14:40:03.474975: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 360.49p, metric_keep 5.89kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.33kWh, PV 0.0kWh
2026-08-18 14:40:03.606847: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 338.79p, metric_keep 1.28kWh, min_soc 1.18kWh @ 08-18 23:25:00, load 31.27kWh, PV 0.0kWh
2026-08-18 14:40:03.607001: Saving plan best values to HA entities
2026-08-18 14:40:03.944253: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:40:03.951477: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 14:40:03.957873: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.88kWh, house 0.0kWh, export 0.0kWh, metric 338.79p, metric10 360.49p
2026-08-18 14:40:04.086341: Marginal costs baseline metric (no standing charge): 292.1588
2026-08-18 14:40:04.536836: Marginal energy costs matrix computed: min=8.0 max=35.56
2026-08-18 14:40:04.759080: Rate array import [{'start': 880, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 880, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:40:04.760084: - Your estimated bill for today is £1.65 and tomorrow is £1.94
2026-08-18 14:40:04.760140: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:40:04.760169: - The battery is currently at 46% and is in eco mode for the next 8 hours.
2026-08-18 14:40:04.760204: - For the next 48 hours there will be no solar generation.
2026-08-18 14:40:04.760228: - You have enough battery to reach the next charge.
2026-08-18 14:40:04.760253: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:40:04.760277: 
2026-08-18 14:40:04.852046: Plan calculation took 1.82 seconds
2026-08-18 14:40:04.855568: No high rate period found
2026-08-18 14:40:04.922343: Import threshold used for optimisation was 8.0p
2026-08-18 14:40:04.999655: Low import rate windows [0: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 1: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 2: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 3: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 4: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 5: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 6: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 7: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 8: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 9: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 10: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 11: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 12: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 13: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 14: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 15: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 26: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 27: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 28: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 29: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 30: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 31: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 32: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 33: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 34: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 35: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 36: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 37: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 38: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 39: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 40: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 41: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 42: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 43: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 44: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 45: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 46: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 47: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 48: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 49: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 50: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 51: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 52: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 53: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 54: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 55: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 56: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 57: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 58: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 59: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 60: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 61: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 62: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 63: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 64: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 65: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 66: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 67: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 68: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 69: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 70: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 71: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 72: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 73: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 74: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 75: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 76: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 77: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 78: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 79: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 80: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 81: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 82: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 83: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 84: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 85: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 86: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 87: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 88: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 89: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 90: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 91: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 92: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 93: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 94: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75]
2026-08-18 14:40:05.007454: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-18 14:40:05.007647: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:40:05.007770: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:40:05.008062: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:40:05.008207: No export window planned
2026-08-18 14:40:05.008400: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:40:05.008452: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:40:05.008748: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:40:05.008978: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:40:05.009088: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:40:05.009160: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:40:05.009334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009409: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009699: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.009960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:40:05.010424: Inverter 0 count register writes 0
2026-08-18 14:40:05.032197: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 14:40:05.039993: Total inverter register writes now 867
2026-08-18 14:40:05.109128: Info: Completed run status Demand
2026-08-18 14:40:05.116723: Info: record_status Demand
2026-08-18 14:40:05.124278: Saved current settings to /config/predbat_config.json
2026-08-18 14:40:05.124489: Compare, best tariff: current metric 129.87p
2026-08-18 14:40:08.853894: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0022 kWh ema_combined=0.0019 kWh
2026-08-18 14:40:24.266660: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0023 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-18 14:40:38.355165: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-18 14:40:49.274511: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:40:49.274775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:40:49.274826: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:40:49.274991: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:40:49.275059: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:40:49.275089: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:40:49.275114: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:40:53.325759: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0061 val_mae=0.0021 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 14:41:07.241631: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0062 val_mae=0.0020 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-18 14:41:21.082343: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0020 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-18 14:41:36.243471: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 14:41:50.073501: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 14:42:02.647073: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0054 val_mae=0.0020 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 14:42:15.966397: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-18 14:42:29.438358: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0018 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0012 kWh
2026-08-18 14:42:44.065996: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0020 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0013 kWh
2026-08-18 14:42:44.066854: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-18 14:42:44.066972: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-18 14:42:45.087415: ML Predictor: AR rollout over holdout: ar_mae=0.0019 kWh ar_bias=-0.0003 kWh (-0.3%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 14:42:45.116244: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0019 kWh
2026-08-18 14:42:45.185541: ML Predictor: Curriculum pass 2/5: window=58.0 days (1392 hours of data)
2026-08-18 14:42:45.185791: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 14:42:45.835829: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 14:42:51.033204: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 14:42:51.094116: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0485) load(mean=0.0599 std=0.0484) pv(mean=0.0000 std=0.0100) temp(mean=19.7412 std=4.5728) import_rate(mean=16.5777 std=8.3608) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1973 std=0.5285)
2026-08-18 14:42:51.191722: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 14:42:51.207152: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 14:42:51.246013: ML Predictor: Baseline (pre-finetune) val_mae=0.0024 kWh val_bias=-0.0005 kWh
2026-08-18 14:43:03.965861: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:43:03.966321: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:43:03.966486: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:43:03.966728: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:43:03.966843: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:43:03.966928: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:43:03.967007: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:43:05.810930: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0093 val_mae=0.0034 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 14:43:20.074634: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0119 val_mae=0.0034 kWh val_bias=+0.0015 kWh (+2.7%) combined=0.0036 kWh ema_combined=0.0025 kWh
2026-08-18 14:43:32.173752: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0103 val_mae=0.0029 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-18 14:43:48.224283: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0102 val_mae=0.0034 kWh val_bias=+0.0013 kWh (+2.4%) combined=0.0033 kWh ema_combined=0.0027 kWh
2026-08-18 14:44:01.486196: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0034 kWh val_bias=-0.0007 kWh (-1.3%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-18 14:44:15.952910: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0113 val_mae=0.0031 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0022 kWh
2026-08-18 14:44:29.773041: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0093 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 14:44:45.882430: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0092 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-18 14:45:00.375560: --------------- PredBat - update at 2026-08-18 14:45:00+01:00 with clock skew 0 minutes, minutes now 885
2026-08-18 14:45:00.377171: Saved current settings to /config/predbat_config.json
2026-08-18 14:45:00.377428: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 14:45:00.377639: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:45:00.377817: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:45:00.427690: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:45:00.427844: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:45:00.428212: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:45:00.428945: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:45:00.429196: Predbat mode is set to Control charge & discharge
2026-08-18 14:45:00.782852: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:45:00.782972: Using load_power data to fill gaps in load_today data
2026-08-18 14:45:02.003891: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:45:02.004223: Zero load period starting at 2026-08-17T10:54:00+0100 (1671 minutes) for 189 minutes with base value 206.85
2026-08-18 14:45:02.006122: Processing 721 30-minute periods for power integration
2026-08-18 14:45:02.317815: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:45:02.317948: Car charging hold False, threshold 6.0kWh
2026-08-18 14:45:02.318086: Current data so far today: load 9.1kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:45:02.334941: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:45:02.335124: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:45:02.335856: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:45:02.336053: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:45:02.336192: Standing charge is set to 46.63p
2026-08-18 14:45:02.491086: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:45:02.491277: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:45:02.491463: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:45:02.492544: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:45:02.492646: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:45:02.492751: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:45:02.497342: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:45:02.497646: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:45:02.596584: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:45:02.596689: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:45:02.598258: High export rate found rates in range 99p to -99p
2026-08-18 14:45:02.849430: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:45:02.849674: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:45:02.881295: Battery level now 7.36kWh, -1hr ago 7.86kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today 3.57p, rate_forward 6.87p
2026-08-18 14:45:02.881843: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:45:02.993203: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:45:02.993428: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:45:03.076646: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:45:03.106465: Today's load divergence 97.66%, in-day adjustment 95.81%, damping 0.95x, yesterday 92.68% today 97.77% blend 38.54%
2026-08-18 14:45:03.106677: Today's predicted so far 9.42kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 9.42kWh forecast extra.
2026-08-18 14:45:03.106719: Today's actual load so far 9.06kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 14:45:03.168806: Inverter 0: Type SK Sunsynk
2026-08-18 14:45:03.168893: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:45:03.169253: Reserve min: 7%, battery_min: 7%
2026-08-18 14:45:03.169424: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:45:03.170085: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 485W, current battery voltage 51.2V, grid power -53W, load power 536W, PV Power 0W
2026-08-18 14:45:03.170425: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:45:03.170631: Inverter 0 scheduled charge enable is False
2026-08-18 14:45:03.170750: Inverter 0 charge windows currently []
2026-08-18 14:45:03.170835: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:45:03.171108: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:45:03.171157: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:45:03.171267: Inverter 0 scheduled discharge enable is False
2026-08-18 14:45:03.171521: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:45:03.171621: Inverter 0 discharge windows currently []
2026-08-18 14:45:03.171743: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:45:03.171885: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:45:03.172093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:45:03.264233: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:45:03.264551: Plan was last updated on 2026-08-18 14:35:00+01:00 and is now 10.0 minutes old
2026-08-18 14:45:03.264916: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:45:03.265005: Best export window [  ]
2026-08-18 14:45:03.266631: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:45:03.288098: Load divergence over 8.0 hours mean 446.69W, min 307.2W, max 988.2W, std dev 93.69W, divergence 10.49%
2026-08-18 14:45:03.341050: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:45:03.355991: LoadML is_calculating True
2026-08-18 14:45:03.356192: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 14:45:03.418912: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 625.6p, metric_keep 126.42kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.39kWh, PV 0.0kWh
2026-08-18 14:45:03.586502: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0084 val_mae=0.0024 kWh val_bias=-0.0011 kWh (-2.0%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-18 14:45:03.722985: Battery has 8.67 hours left - now at 7.2kWh
2026-08-18 14:45:03.781155: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 655.53p, metric_keep 127.99kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.45kWh, PV 0.0kWh
2026-08-18 14:45:03.927828: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 368.0p, metric_keep 6.6kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.45kWh, PV 0.0kWh
2026-08-18 14:45:04.049753: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 345.38p, metric_keep 1.96kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.39kWh, PV 0.0kWh
2026-08-18 14:45:04.049907: Saving plan best values to HA entities
2026-08-18 14:45:04.401217: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:45:04.408626: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:45:04.416673: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.48kWh, house 0.05kWh, export 0.0kWh, metric 345.38p, metric10 368.0p
2026-08-18 14:45:04.517029: Marginal costs baseline metric (no standing charge): 298.7449
2026-08-18 14:45:05.066021: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 14:45:05.211217: Rate array import [{'start': 885, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 885, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:45:05.212400: - Your estimated bill for today is £1.67 and tomorrow is £1.94
2026-08-18 14:45:05.212602: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:45:05.212719: - The battery is currently at 45% and is in eco mode for the next 8 hours.
2026-08-18 14:45:05.212881: - For the next 48 hours there will be no solar generation.
2026-08-18 14:45:05.213041: - You have enough battery to reach the next charge.
2026-08-18 14:45:05.213208: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:45:05.213431: 
2026-08-18 14:45:05.261596: Plan calculation took 2.00 seconds
2026-08-18 14:45:05.266746: No high rate period found
2026-08-18 14:45:05.364315: Import threshold used for optimisation was 8.0p
2026-08-18 14:45:05.465425: Low import rate windows [0: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 1: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 2: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 3: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 4: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 5: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 6: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 7: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 8: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 9: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 10: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 11: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 12: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 13: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 14: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 15: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 26: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 27: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 28: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 29: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 30: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 31: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 32: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 33: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 34: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 35: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 36: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 37: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 38: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 39: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 40: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 41: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 42: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 43: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 44: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 45: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 46: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 47: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 48: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 49: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 50: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 51: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 52: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 53: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 54: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 55: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 56: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 57: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 58: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 59: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 60: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 61: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 62: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 63: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 64: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 65: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 66: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 67: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 68: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 69: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 70: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 71: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 72: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 73: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 74: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 75: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 76: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 77: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 78: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 79: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 80: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 81: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 82: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 83: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 84: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 85: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 86: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 87: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 88: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 89: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 90: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 91: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 92: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 93: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 94: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75]
2026-08-18 14:45:05.473880: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-18 14:45:05.474020: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:45:05.474081: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:45:05.474284: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:45:05.474718: No export window planned
2026-08-18 14:45:05.474948: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:45:05.475085: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:45:05.475265: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:45:05.476561: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:45:05.476883: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:45:05.477059: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:45:05.477293: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.477472: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.477594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.477684: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.477766: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.477850: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.477933: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:05.478622: Inverter 0 count register writes 0
2026-08-18 14:45:05.527052: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 14:45:05.527279: Recompute is saving previous plan...
2026-08-18 14:45:05.531786: Best charge window [ 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0% ]
2026-08-18 14:45:05.531877: Best export window [  ]
2026-08-18 14:45:05.540642: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:45:05.556740: Load divergence over 8.0 hours mean 446.69W, min 307.2W, max 988.2W, std dev 93.69W, divergence 10.49%
2026-08-18 14:45:05.600475: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:45:05.600593: LoadML is_calculating True
2026-08-18 14:45:05.600627: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 14:45:05.613934: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 14:45:05.615303: Optimise levels pass started at 2026-08-18 14:45:05
2026-08-18 14:45:05.615357: Optimise all windows, total charge 94 export 1
2026-08-18 14:45:08.116687: >> Region optimisation pass width 960 gives best_metric 388.11p, best_cost 440.23p, best_cycle 51.07kWh, best_import 37.22kWh
2026-08-18 14:45:08.755432: >> Region optimisation pass width 480 gives best_metric 388.11p, best_cost 440.23p, best_cycle 51.07kWh, best_import 37.22kWh
2026-08-18 14:45:09.672685: >> Region optimisation pass width 240 gives best_metric 388.11p, best_cost 440.23p, best_cycle 51.07kWh, best_import 37.22kWh
2026-08-18 14:45:12.915926: >> Region optimisation pass width 120 gives best_metric 384.04p, best_cost 409.95p, best_cycle 52.83kWh, best_import 33.43kWh
2026-08-18 14:45:12.916298: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 64
2026-08-18 14:45:12.916402: Optimise levels pass ended at 2026-08-18 14:45:12, duration 7.3 seconds tried 217 combinations
2026-08-18 14:45:12.916705: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 384.04p, best_keep 1.62kWh, best_cycle 52.83kWh, best_carbon 0kg, best_import 33.43kWh
2026-08-18 14:45:12.950747: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 14:45:43.819124: Tweak plan optimisation started metric 285.55p, cost 294.63p
2026-08-18 14:45:45.706929: Tweak optimisation finished metric 285.55p, cost 294.63p, metric_keep 1.36kWh, cycle 31.96kWh, carbon 0kg, import 19.02kWh, changed 8 window(s)
2026-08-18 14:45:45.729281: Swap charge optimisation started metric 285.55p, cost 294.63p, min_improvement_swap 0.1p
2026-08-18 14:45:54.595559: Swap charge optimisation finished metric 285.55p, cost 294.63p
2026-08-18 14:45:54.798530: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 283.29p -> 283.14p, plan now metric 285.98p, cost 292.62p, cycle 32.23kWh, import 18.76kWh
2026-08-18 14:45:54.812120: Raw charge windows [ 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 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 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:45:54.812937: Unclipped charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:45:54.813545: Unfiltered charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:45:54.814258: Filtered charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:45:54.876571: Previous plan best metric is 285.81 (cost 294.63) and new plan best metric is 285.55 (cost 294.63)
2026-08-18 14:45:54.876795: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 14:45:54.876928: Plan valid is now true after recompute was False
2026-08-18 14:45:54.929169: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 623.99p, metric_keep 126.17kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.19kWh, PV 0.0kWh
2026-08-18 14:45:55.095100: Battery has 8.67 hours left - now at 7.2kWh
2026-08-18 14:45:55.149363: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 653.84p, metric_keep 127.74kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.24kWh, PV 0.0kWh
2026-08-18 14:45:55.292560: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 360.76p, metric_keep 6.58kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.24kWh, PV 0.0kWh
2026-08-18 14:45:55.479305: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 337.1p, metric_keep 1.96kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.19kWh, PV 0.0kWh
2026-08-18 14:45:55.479431: Saving plan best values to HA entities
2026-08-18 14:45:55.790382: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:45:55.796254: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:45:55.804389: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.05kWh, export 0.0kWh, metric 337.1p, metric10 360.76p
2026-08-18 14:45:55.888434: Marginal costs baseline metric (no standing charge): 290.4694
2026-08-18 14:45:56.203874: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 14:45:56.334646: Rate array import [{'start': 885, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 885, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:45:56.335430: - Your estimated bill for today is £1.67 and tomorrow is £1.94
2026-08-18 14:45:56.335481: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:45:56.348171: - The battery is currently at 45% and is in eco mode for the next 8 hours.
2026-08-18 14:45:56.348279: - For the next 48 hours there will be no solar generation.
2026-08-18 14:45:56.348315: - You have enough battery to reach the next charge.
2026-08-18 14:45:56.348386: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:45:56.348448: 
2026-08-18 14:45:56.395204: Plan calculation took 50.87 seconds
2026-08-18 14:45:56.395476: Inverter 0: Type SK Sunsynk
2026-08-18 14:45:56.395581: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:45:56.395813: Reserve min: 7%, battery_min: 7%
2026-08-18 14:45:56.395929: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:45:56.396266: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 485W, current battery voltage 51.2V, grid power -53W, load power 536W, PV Power 0W
2026-08-18 14:45:56.396586: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:45:56.396700: Inverter 0 scheduled charge enable is False
2026-08-18 14:45:56.396747: Inverter 0 charge windows currently []
2026-08-18 14:45:56.396794: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:45:56.396952: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:45:56.396991: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:45:56.397023: Inverter 0 scheduled discharge enable is False
2026-08-18 14:45:56.397187: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:45:56.397222: Inverter 0 discharge windows currently []
2026-08-18 14:45:56.397275: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:45:56.397299: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:45:56.397315: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:45:56.568876: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-18 14:45:56.569054: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:45:56.581521: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:45:56.585227: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:45:56.585503: No export window planned
2026-08-18 14:45:56.585709: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:45:56.585761: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:45:56.585988: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:45:56.586281: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:45:56.586449: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:45:56.586615: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:45:56.586820: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.586967: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587106: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587214: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587400: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587656: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.587937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.588093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.588234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.588396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:45:56.588540: Inverter 0 count register writes 0
2026-08-18 14:45:56.635017: Total inverter register writes now 867
2026-08-18 14:45:56.723423: Info: Completed run status Demand
2026-08-18 14:45:56.731097: Info: record_status Demand
2026-08-18 14:45:56.737901: Saved current settings to /config/predbat_config.json
2026-08-18 14:45:56.738117: Compare, best tariff: current metric 129.87p
2026-08-18 14:45:58.037027: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0024 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 14:45:58.037142: ML Predictor: Early stopping at epoch 10
2026-08-18 14:45:58.038430: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.8%)
2026-08-18 14:45:58.038571: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.8%)
2026-08-18 14:45:59.150986: ML Predictor: AR rollout over holdout: ar_mae=0.0031 kWh ar_bias=-0.0007 kWh (-1.3%) [drift vs teacher-forced: +0.0007 kWh]
2026-08-18 14:45:59.161594: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0024 kWh
2026-08-18 14:45:59.263055: ML Predictor: Curriculum pass 3/5: window=59.0 days (1416 hours of data)
2026-08-18 14:45:59.263164: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 14:45:59.814323: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 14:46:05.072606: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 14:46:05.123145: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0485) load(mean=0.0599 std=0.0483) pv(mean=0.0000 std=0.0100) temp(mean=19.7306 std=4.5716) import_rate(mean=16.5523 std=8.3626) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1974 std=0.5287)
2026-08-18 14:46:05.203045: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 14:46:05.217526: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 14:46:05.240287: ML Predictor: Baseline (pre-finetune) val_mae=0.0039 kWh val_bias=-0.0010 kWh
2026-08-18 14:46:19.468599: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0087 val_mae=0.0036 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 14:46:34.116341: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:46:34.116739: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:46:34.116794: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:46:34.117021: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:46:34.117071: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:46:34.117155: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:46:34.117219: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:46:34.601242: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0142 val_mae=0.0050 kWh val_bias=-0.0036 kWh (-8.4%) combined=0.0041 kWh ema_combined=0.0026 kWh
2026-08-18 14:46:50.278357: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0110 val_mae=0.0038 kWh val_bias=+0.0005 kWh (+1.3%) combined=0.0030 kWh ema_combined=0.0028 kWh
2026-08-18 14:47:05.112247: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0104 val_mae=0.0039 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-18 14:47:19.483710: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0095 val_mae=0.0036 kWh val_bias=-0.0009 kWh (-2.2%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 14:47:33.607098: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0084 val_mae=0.0029 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-18 14:47:48.276956: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0095 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 14:48:03.221931: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0091 val_mae=0.0031 kWh val_bias=+0.0007 kWh (+1.7%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 14:48:16.605579: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0095 val_mae=0.0036 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 14:48:31.055599: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0085 val_mae=0.0035 kWh val_bias=-0.0008 kWh (-1.8%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-18 14:48:34.573927: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:48:34.574364: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:48:34.574409: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:48:34.574565: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:48:34.574605: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:48:34.574628: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:48:34.574716: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:48:47.037874: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0095 val_mae=0.0029 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-18 14:48:47.038149: ML Predictor: Early stopping at epoch 11
2026-08-18 14:48:47.039417: ML Predictor: Restored best weights from epoch with val_mae=0.0036 kWh val_bias=+0.0000 kWh (+0.1%)
2026-08-18 14:48:47.040411: ML Predictor: Training complete, final val_mae=0.0036 kWh val_bias=+0.0000 kWh (+0.1%)
2026-08-18 14:48:48.010122: ML Predictor: AR rollout over holdout: ar_mae=0.0065 kWh ar_bias=+0.0005 kWh (+1.1%) [drift vs teacher-forced: +0.0029 kWh]
2026-08-18 14:48:48.018965: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0036 kWh
2026-08-18 14:48:48.093563: ML Predictor: Curriculum pass 4/5: window=60.0 days (1440 hours of data)
2026-08-18 14:48:48.093817: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 14:48:48.737946: ML Predictor: Creating dataset with 1440 hours of training data, 48 hours validation
2026-08-18 14:48:54.345738: ML Predictor: Created 16992 training samples, 576 validation samples
2026-08-18 14:48:54.396113: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0485) load(mean=0.0598 std=0.0483) pv(mean=0.0000 std=0.0100) temp(mean=19.7182 std=4.5678) import_rate(mean=16.5448 std=8.3815) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1972 std=0.5290)
2026-08-18 14:48:54.478513: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 14:48:54.492381: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 14:48:54.516138: ML Predictor: Baseline (pre-finetune) val_mae=0.0056 kWh val_bias=-0.0012 kWh
2026-08-18 14:49:07.886465: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0047 kWh val_bias=-0.0018 kWh (-3.9%) combined=0.0033 kWh ema_combined=0.0033 kWh
2026-08-18 14:49:22.010889: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0114 val_mae=0.0041 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-18 14:49:36.776174: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0115 val_mae=0.0042 kWh val_bias=-0.0016 kWh (-3.4%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-18 14:49:51.011697: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0124 val_mae=0.0050 kWh val_bias=-0.0014 kWh (-2.9%) combined=0.0027 kWh ema_combined=0.0028 kWh
2026-08-18 14:50:00.319210: --------------- PredBat - update at 2026-08-18 14:50:00+01:00 with clock skew 0 minutes, minutes now 890
2026-08-18 14:50:00.320313: Saved current settings to /config/predbat_config.json
2026-08-18 14:50:00.320500: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 14:50:00.320684: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:50:00.320811: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:50:00.359242: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:50:00.359393: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:50:00.359711: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:50:00.360393: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:50:00.360613: Predbat mode is set to Control charge & discharge
2026-08-18 14:50:00.685727: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:50:00.685984: Using load_power data to fill gaps in load_today data
2026-08-18 14:50:01.918421: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:50:01.918673: Zero load period starting at 2026-08-17T10:54:00+0100 (1676 minutes) for 189 minutes with base value 206.825
2026-08-18 14:50:01.920705: Processing 721 30-minute periods for power integration
2026-08-18 14:50:02.295510: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:50:02.301129: Car charging hold False, threshold 6.0kWh
2026-08-18 14:50:02.301305: Current data so far today: load 9.15kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:50:02.318499: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:50:02.318770: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:50:02.319948: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:50:02.320131: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:50:02.320242: Standing charge is set to 46.63p
2026-08-18 14:50:02.607954: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:50:02.608323: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:50:02.608662: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:50:02.610488: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:50:02.610719: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:50:02.610869: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:50:02.620721: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:50:02.633031: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:50:02.678402: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:50:02.678726: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:50:02.680088: High export rate found rates in range 99p to -99p
2026-08-18 14:50:02.808821: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:50:02.809074: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:50:02.824818: Battery level now 7.2kWh, -1hr ago 7.84kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 2.47p, rate_forward 6.87p
2026-08-18 14:50:02.825381: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:50:02.897641: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:50:02.897892: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:50:03.035470: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:50:03.079523: Today's load divergence 97.79%, in-day adjustment 95.91%, damping 0.95x, yesterday 92.68% today 97.9% blend 38.19%
2026-08-18 14:50:03.079632: Today's predicted so far 9.44kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 9.44kWh forecast extra.
2026-08-18 14:50:03.079722: Today's actual load so far 9.09kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 14:50:03.133131: Inverter 0: Type SK Sunsynk
2026-08-18 14:50:03.133226: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:50:03.133541: Reserve min: 7%, battery_min: 7%
2026-08-18 14:50:03.133673: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:50:03.134103: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 512W, current battery voltage 51.2V, grid power -53W, load power 565W, PV Power 0W
2026-08-18 14:50:03.134474: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:50:03.134657: Inverter 0 scheduled charge enable is False
2026-08-18 14:50:03.134736: Inverter 0 charge windows currently []
2026-08-18 14:50:03.134786: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:50:03.135048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:50:03.135131: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:50:03.135231: Inverter 0 scheduled discharge enable is False
2026-08-18 14:50:03.135500: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:50:03.135585: Inverter 0 discharge windows currently []
2026-08-18 14:50:03.135630: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:50:03.135703: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:50:03.135770: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:50:03.253474: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:50:03.253574: Plan was last updated on 2026-08-18 14:45:00+01:00 and is now 5.0 minutes old
2026-08-18 14:50:03.253744: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:50:03.253794: Best export window [  ]
2026-08-18 14:50:03.254527: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:50:03.256984: Load divergence over 8.0 hours mean 448.37W, min 316.8W, max 1084.2W, std dev 95.46W, divergence 10.65%
2026-08-18 14:50:03.275107: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:50:03.275212: LoadML is_calculating True
2026-08-18 14:50:03.275245: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 14:50:03.321055: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 623.5p, metric_keep 126.09kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.3kWh, PV 0.0kWh
2026-08-18 14:50:03.566382: Battery has 8.58 hours left - now at 7.2kWh
2026-08-18 14:50:03.631040: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 653.34p, metric_keep 127.64kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.35kWh, PV 0.0kWh
2026-08-18 14:50:03.799843: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 362.98p, metric_keep 6.33kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.35kWh, PV 0.0kWh
2026-08-18 14:50:03.925175: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 340.09p, metric_keep 1.75kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.3kWh, PV 0.0kWh
2026-08-18 14:50:03.925273: Saving plan best values to HA entities
2026-08-18 14:50:04.269079: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 14:50:04.278045: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:50:04.285317: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.02kWh, export 0.0kWh, metric 340.09p, metric10 362.98p
2026-08-18 14:50:04.449802: Marginal costs baseline metric (no standing charge): 293.4604
2026-08-18 14:50:04.854313: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 14:50:05.006781: Rate array import [{'start': 890, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 890, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:50:05.012894: - Your estimated bill for today is £1.66 and tomorrow is £1.94
2026-08-18 14:50:05.013080: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:50:05.013323: - The battery is currently at 45% and is in eco mode for the next 8 hours.
2026-08-18 14:50:05.013508: - For the next 48 hours there will be no solar generation.
2026-08-18 14:50:05.013663: - You have enough battery to reach the next charge.
2026-08-18 14:50:05.013823: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:50:05.013973: 
2026-08-18 14:50:05.061618: Plan calculation took 1.81 seconds
2026-08-18 14:50:05.067054: No high rate period found
2026-08-18 14:50:05.138893: Import threshold used for optimisation was 8.0p
2026-08-18 14:50:05.248444: Low import rate windows [0: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 1: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 2: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 3: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 4: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 5: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 6: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 7: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 8: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 9: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 10: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 11: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 12: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 13: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 14: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 15: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 26: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 27: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 28: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 29: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 30: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 31: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 32: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 33: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 34: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 35: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 36: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 37: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 38: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 39: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 40: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 41: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 42: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 43: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 44: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 45: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 46: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 47: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 48: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 49: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 50: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 51: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 52: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 53: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 54: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 55: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 56: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 57: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 58: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 59: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 60: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 61: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 62: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 63: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 64: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 65: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 66: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 67: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 68: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 69: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 70: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 71: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 72: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 73: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 74: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 75: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 76: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 77: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 78: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 79: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 80: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 81: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 82: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 83: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 84: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 85: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 86: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 87: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 88: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 89: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 90: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 91: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 92: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 93: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 94: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75]
2026-08-18 14:50:05.256941: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-18 14:50:05.257109: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:50:05.257223: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:50:05.257478: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:50:05.257591: No export window planned
2026-08-18 14:50:05.257755: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:50:05.257809: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:50:05.258012: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:50:05.258215: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:50:05.258286: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:50:05.258470: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:50:05.258663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.258812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.258955: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.259092: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.259228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.259364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.259519: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.259702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.259848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.260009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.260152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.260286: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.260423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.260578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:50:05.261779: Inverter 0 count register writes 0
2026-08-18 14:50:05.302220: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 14:50:05.308362: Total inverter register writes now 867
2026-08-18 14:50:05.369335: Info: Completed run status Demand
2026-08-18 14:50:05.379778: Info: record_status Demand
2026-08-18 14:50:05.390405: Saved current settings to /config/predbat_config.json
2026-08-18 14:50:05.390936: Compare, best tariff: current metric 129.87p
2026-08-18 14:50:10.923628: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0126 val_mae=0.0053 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0035 kWh ema_combined=0.0030 kWh
2026-08-18 14:50:23.902951: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0125 val_mae=0.0041 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-18 14:50:38.029102: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0140 val_mae=0.0050 kWh val_bias=+0.0019 kWh (+4.0%) combined=0.0043 kWh ema_combined=0.0033 kWh
2026-08-18 14:50:49.568661: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:50:49.568905: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:50:49.568954: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:50:49.569092: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:50:49.569133: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:50:49.569155: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:50:49.569173: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:50:52.410483: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0112 val_mae=0.0037 kWh val_bias=-0.0007 kWh (-1.4%) combined=0.0022 kWh ema_combined=0.0029 kWh
2026-08-18 14:51:07.085792: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0096 val_mae=0.0037 kWh val_bias=-0.0013 kWh (-2.7%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-18 14:51:22.520751: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0102 val_mae=0.0038 kWh val_bias=-0.0006 kWh (-1.2%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-18 14:51:37.082222: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0104 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-18 14:51:52.450225: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0084 val_mae=0.0032 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 14:52:08.566335: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0032 kWh val_bias=-0.0010 kWh (-2.0%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-18 14:52:22.836357: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0070 val_mae=0.0039 kWh val_bias=-0.0019 kWh (-3.9%) combined=0.0025 kWh ema_combined=0.0022 kWh
2026-08-18 14:52:36.759537: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0087 val_mae=0.0031 kWh val_bias=-0.0006 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 14:52:50.415696: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0075 val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-18 14:53:03.993060: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:53:03.993621: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:53:03.993798: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:53:03.994623: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:53:03.994785: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:53:03.994883: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:53:03.994981: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:53:04.473215: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0081 val_mae=0.0031 kWh val_bias=+0.0012 kWh (+2.5%) combined=0.0028 kWh ema_combined=0.0024 kWh
2026-08-18 14:53:20.564896: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0064 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-2.1%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-18 14:53:34.530658: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0066 val_mae=0.0027 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 14:53:49.317664: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0060 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-18 14:54:03.357711: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0062 val_mae=0.0027 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-18 14:54:19.355794: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0053 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-1.4%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 14:54:33.592465: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-18 14:54:48.747989: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=-0.0010 kWh (-2.0%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-18 14:55:00.424317: --------------- PredBat - update at 2026-08-18 14:55:00+01:00 with clock skew 0 minutes, minutes now 895
2026-08-18 14:55:00.425271: Saved current settings to /config/predbat_config.json
2026-08-18 14:55:00.425410: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 14:55:00.425491: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 14:55:00.425587: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 14:55:00.467421: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 14:55:00.467608: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 14:55:00.467872: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 14:55:00.468716: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 14:55:00.468907: Predbat mode is set to Control charge & discharge
2026-08-18 14:55:00.766807: Found 21602 load_today datapoints going back 28 days
2026-08-18 14:55:00.768184: Using load_power data to fill gaps in load_today data
2026-08-18 14:55:01.972748: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 14:55:01.972949: Zero load period starting at 2026-08-17T10:54:00+0100 (1681 minutes) for 189 minutes with base value 206.8
2026-08-18 14:55:01.973920: Processing 721 30-minute periods for power integration
2026-08-18 14:55:02.182750: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 14:55:02.182883: Car charging hold False, threshold 6.0kWh
2026-08-18 14:55:02.182946: Current data so far today: load 9.2kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 14:55:02.207014: Car 0 using Octopus Intelligent is unplugged
2026-08-18 14:55:02.207196: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 14:55:02.208214: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:55:02.208422: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 14:55:02.208610: Standing charge is set to 46.63p
2026-08-18 14:55:02.407860: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:55:02.408339: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:55:02.408682: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 14:55:02.410283: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 14:55:02.410471: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 14:55:02.410705: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 14:55:02.421795: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 14:55:02.423774: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 14:55:02.517835: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 14:55:02.518148: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 14:55:02.519953: High export rate found rates in range 99p to -99p
2026-08-18 14:55:02.623052: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 14:55:02.623212: Car 0 on Octopus Intelligent, no active plan
2026-08-18 14:55:02.666092: Battery level now 7.2kWh, -1hr ago 7.84kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 2.47p, rate_forward 6.87p
2026-08-18 14:55:02.666505: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 14:55:02.781675: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 14:55:02.781991: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 14:55:02.896778: Using weighted-bucket historical load forecast over 14 days
2026-08-18 14:55:02.931166: Today's load divergence 97.74%, in-day adjustment 95.89%, damping 0.95x, yesterday 92.68% today 97.85% blend 37.85%
2026-08-18 14:55:02.931261: Today's predicted so far 9.45kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 9.45kWh forecast extra.
2026-08-18 14:55:02.931294: Today's actual load so far 9.09kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 14:55:02.970448: Inverter 0: Type SK Sunsynk
2026-08-18 14:55:02.970545: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:55:02.970723: Reserve min: 7%, battery_min: 7%
2026-08-18 14:55:02.970795: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:55:02.971055: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 2165W, current battery voltage 51.2V, grid power -54W, load power 2218W, PV Power 0W
2026-08-18 14:55:02.971198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:55:02.971282: Inverter 0 scheduled charge enable is False
2026-08-18 14:55:02.971317: Inverter 0 charge windows currently []
2026-08-18 14:55:02.971344: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:55:02.971541: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:55:02.971636: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:55:02.971719: Inverter 0 scheduled discharge enable is False
2026-08-18 14:55:02.971930: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:55:02.971975: Inverter 0 discharge windows currently []
2026-08-18 14:55:02.972028: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:55:02.972100: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:55:02.972132: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:55:03.042639: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 14:55:03.042835: Plan was last updated on 2026-08-18 14:45:00+01:00 and is now 10.0 minutes old
2026-08-18 14:55:03.043108: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 14:55:03.043153: Best export window [  ]
2026-08-18 14:55:03.044166: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:55:03.048150: Load divergence over 8.0 hours mean 449.9W, min 324.0W, max 1255.8W, std dev 106.04W, divergence 11.79%
2026-08-18 14:55:03.068160: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:55:03.068412: LoadML is_calculating True
2026-08-18 14:55:03.068454: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 14:55:03.116648: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 623.93p, metric_keep 126.06kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.42kWh, PV 0.0kWh
2026-08-18 14:55:03.375995: Battery has 8.58 hours left - now at 7.2kWh
2026-08-18 14:55:03.471767: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 653.79p, metric_keep 127.54kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.48kWh, PV 0.0kWh
2026-08-18 14:55:03.666073: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 366.28p, metric_keep 6.14kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.48kWh, PV 0.0kWh
2026-08-18 14:55:03.879481: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 343.33p, metric_keep 1.63kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.42kWh, PV 0.0kWh
2026-08-18 14:55:03.879595: Saving plan best values to HA entities
2026-08-18 14:55:04.140691: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 14:55:04.146799: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:55:04.153071: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.45kWh, house 0.0kWh, export 0.0kWh, metric 343.33p, metric10 366.28p
2026-08-18 14:55:04.246228: Marginal costs baseline metric (no standing charge): 296.7002
2026-08-18 14:55:04.599688: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 14:55:04.802627: Rate array import [{'start': 895, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 895, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:55:04.803759: - Your estimated bill for today is £1.66 and tomorrow is £1.94
2026-08-18 14:55:04.803820: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:55:04.803845: - The battery is currently at 45% and is in eco mode for the next 8 hours.
2026-08-18 14:55:04.803871: - For the next 48 hours there will be no solar generation.
2026-08-18 14:55:04.803890: - You have enough battery to reach the next charge.
2026-08-18 14:55:04.803940: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:55:04.803961: 
2026-08-18 14:55:04.851978: Plan calculation took 1.81 seconds
2026-08-18 14:55:04.854817: No high rate period found
2026-08-18 14:55:04.916365: Import threshold used for optimisation was 8.0p
2026-08-18 14:55:05.036072: Low import rate windows [0: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 1: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 2: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 3: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 4: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 5: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 6: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 7: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 8: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 9: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 10: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 11: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 12: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 13: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 14: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 15: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 26: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 27: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 28: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 29: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 30: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 31: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 32: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 33: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 34: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 35: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 36: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 37: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 38: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 39: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 40: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 41: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 42: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 43: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 44: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 45: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 46: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 47: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 48: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 49: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 50: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 51: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 52: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 53: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 54: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 55: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 56: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 57: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 58: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 59: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 60: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 61: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 62: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 63: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 64: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 65: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 66: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 67: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 68: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 69: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 70: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 71: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 72: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 73: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 74: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 75: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 76: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 77: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 78: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 79: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 80: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 81: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 82: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 83: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 84: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 85: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 86: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 87: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 88: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 89: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 90: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 91: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 92: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 93: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 94: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75]
2026-08-18 14:55:05.057380: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-18 14:55:05.057577: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:55:05.057662: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:55:05.057888: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:55:05.057978: No export window planned
2026-08-18 14:55:05.058129: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:55:05.058176: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:55:05.058346: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:55:05.058534: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:55:05.058597: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:55:05.058670: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:55:05.058795: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.058869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.058927: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.058988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059038: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059084: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:05.059496: Inverter 0 count register writes 0
2026-08-18 14:55:05.091040: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 14:55:05.091218: Recompute is saving previous plan...
2026-08-18 14:55:05.095020: Best charge window [ 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0% ]
2026-08-18 14:55:05.095111: Best export window [  ]
2026-08-18 14:55:05.096160: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 14:55:05.100459: Load divergence over 8.0 hours mean 449.9W, min 324.0W, max 1255.8W, std dev 106.04W, divergence 11.79%
2026-08-18 14:55:05.123076: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 14:55:05.123284: LoadML is_calculating True
2026-08-18 14:55:05.123369: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 14:55:05.133804: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 14:55:05.135099: Optimise levels pass started at 2026-08-18 14:55:05
2026-08-18 14:55:05.135227: Optimise all windows, total charge 94 export 1
2026-08-18 14:55:07.599131: >> Region optimisation pass width 960 gives best_metric 386.33p, best_cost 438.3p, best_cycle 51.16kWh, best_import 37.15kWh
2026-08-18 14:55:08.046011: >> Region optimisation pass width 480 gives best_metric 386.33p, best_cost 438.3p, best_cycle 51.16kWh, best_import 37.15kWh
2026-08-18 14:55:08.999148: >> Region optimisation pass width 240 gives best_metric 386.33p, best_cost 438.3p, best_cycle 51.16kWh, best_import 37.15kWh
2026-08-18 14:55:12.660776: >> Region optimisation pass width 120 gives best_metric 382.23p, best_cost 407.89p, best_cycle 52.92kWh, best_import 33.35kWh
2026-08-18 14:55:12.664659: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 64
2026-08-18 14:55:12.664848: Optimise levels pass ended at 2026-08-18 14:55:12, duration 7.5 seconds tried 217 combinations
2026-08-18 14:55:12.664948: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 382.23p, best_keep 1.26kWh, best_cycle 52.92kWh, best_carbon 0kg, best_import 33.35kWh
2026-08-18 14:55:12.715589: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 14:55:12.897212: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-18 14:55:40.389650: Tweak plan optimisation started metric 283.55p, cost 292.67p
2026-08-18 14:55:40.943311: Tweak optimisation finished metric 283.55p, cost 292.67p, metric_keep 1.26kWh, cycle 31.97kWh, carbon 0kg, import 18.95kWh, changed 8 window(s)
2026-08-18 14:55:41.019052: Swap charge optimisation started metric 283.55p, cost 292.67p, min_improvement_swap 0.1p
2026-08-18 14:55:51.459350: Swap charge optimisation finished metric 283.55p, cost 292.67p
2026-08-18 14:55:51.626903: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 281.31p -> 281.16p, plan now metric 284.04p, cost 290.65p, cycle 32.23kWh, import 18.69kWh
2026-08-18 14:55:51.639559: Raw charge windows [ 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:55:51.640207: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:55:51.640543: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:55:51.640849: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 14:55:51.701783: Previous plan best metric is 283.55 (cost 292.67) and new plan best metric is 283.55 (cost 292.67)
2026-08-18 14:55:51.702027: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 14:55:51.702163: Plan valid is now true after recompute was False
2026-08-18 14:55:51.744107: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 622.41p, metric_keep 125.81kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.23kWh, PV 0.0kWh
2026-08-18 14:55:51.908233: Battery has 8.58 hours left - now at 7.2kWh
2026-08-18 14:55:51.983390: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 652.19p, metric_keep 127.29kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.28kWh, PV 0.0kWh
2026-08-18 14:55:52.178119: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 359.12p, metric_keep 6.12kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.28kWh, PV 0.0kWh
2026-08-18 14:55:52.318843: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 335.14p, metric_keep 1.63kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.23kWh, PV 0.0kWh
2026-08-18 14:55:52.318933: Saving plan best values to HA entities
2026-08-18 14:55:52.553689: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 14:55:52.575251: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 14:55:52.583250: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.0kWh, export 0.0kWh, metric 335.14p, metric10 359.12p
2026-08-18 14:55:52.688552: Marginal costs baseline metric (no standing charge): 288.5048
2026-08-18 14:55:53.325964: Marginal energy costs matrix computed: min=8.0 max=35.88
2026-08-18 14:55:53.458458: Rate array import [{'start': 895, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 895, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 14:55:53.459627: - Your estimated bill for today is £1.66 and tomorrow is £1.94
2026-08-18 14:55:53.459825: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 14:55:53.459950: - The battery is currently at 45% and is in eco mode for the next 8 hours.
2026-08-18 14:55:53.460071: - For the next 48 hours there will be no solar generation.
2026-08-18 14:55:53.460163: - You have enough battery to reach the next charge.
2026-08-18 14:55:53.460271: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 14:55:53.460363: 
2026-08-18 14:55:53.525447: Plan calculation took 48.43 seconds
2026-08-18 14:55:53.525694: Inverter 0: Type SK Sunsynk
2026-08-18 14:55:53.525738: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 14:55:53.525909: Reserve min: 7%, battery_min: 7%
2026-08-18 14:55:53.525978: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 14:55:53.526233: Inverter 0 SoC: 7.18kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 2131W, current battery voltage 51.2V, grid power -54W, load power 2187W, PV Power 0W
2026-08-18 14:55:53.526384: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:55:53.526472: Inverter 0 scheduled charge enable is False
2026-08-18 14:55:53.526510: Inverter 0 charge windows currently []
2026-08-18 14:55:53.526552: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 14:55:53.526663: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:55:53.526721: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:55:53.526759: Inverter 0 scheduled discharge enable is False
2026-08-18 14:55:53.526883: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:55:53.526921: Inverter 0 discharge windows currently []
2026-08-18 14:55:53.526944: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:55:53.526965: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:55:53.526991: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:55:53.668039: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-18 14:55:53.668208: Inverter 0 disabled charge window while waiting for schedule (now 08-18 14:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 14:55:53.668288: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:55:53.668504: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:55:53.668612: No export window planned
2026-08-18 14:55:53.668734: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 14:55:53.668780: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 14:55:53.668949: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 14:55:53.669122: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 14:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 14:55:53.669279: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 14:55:53.669416: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 14:55:53.669634: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.669755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.669893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670125: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.670953: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.671056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.671150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 14:55:53.671217: Inverter 0 count register writes 0
2026-08-18 14:55:53.762410: Total inverter register writes now 867
2026-08-18 14:55:53.876210: Info: Completed run status Demand
2026-08-18 14:55:53.898140: Info: record_status Demand
2026-08-18 14:55:53.907004: Saved current settings to /config/predbat_config.json
2026-08-18 14:55:53.907209: Compare, best tariff: current metric 129.87p
2026-08-18 14:55:56.936727: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 14:56:13.769625: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-18 14:56:26.788161: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 14:56:26.948242: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 14:56:30.043609: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 14:56:34.094232: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:56:34.094518: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:56:34.095057: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:56:34.095305: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:56:34.095357: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:56:34.095399: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:56:34.095425: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:56:43.108657: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 14:56:57.371378: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 14:56:57.377706: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.3%)
2026-08-18 14:56:57.377902: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.3%)
2026-08-18 14:56:58.550280: ML Predictor: AR rollout over holdout: ar_mae=0.0030 kWh ar_bias=+0.0001 kWh (+0.3%) [drift vs teacher-forced: +0.0007 kWh]
2026-08-18 14:56:58.555279: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0022 kWh
2026-08-18 14:56:58.555448: ML Predictor: Curriculum final pass 5/5: full dataset (60.0 days)
2026-08-18 14:56:58.555569: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 14:56:59.149690: ML Predictor: Creating dataset with 1440 hours of training data, 48 hours validation
2026-08-18 14:57:04.254932: ML Predictor: Created 16997 training samples, 576 validation samples
2026-08-18 14:57:04.310813: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0485) load(mean=0.0597 std=0.0482) pv(mean=0.0000 std=0.0100) temp(mean=19.7071 std=4.5643) import_rate(mean=16.5383 std=8.3988) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5293)
2026-08-18 14:57:04.411691: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 14:57:04.424165: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 14:57:04.447793: ML Predictor: Baseline (pre-finetune) val_mae=0.0025 kWh val_bias=-0.0004 kWh
2026-08-18 14:57:17.725952: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0036 kWh val_bias=-0.0011 kWh (-2.2%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 14:57:34.040880: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0098 val_mae=0.0038 kWh val_bias=-0.0011 kWh (-2.3%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-18 14:57:49.004888: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0118 val_mae=0.0038 kWh val_bias=-0.0024 kWh (-5.0%) combined=0.0032 kWh ema_combined=0.0023 kWh
2026-08-18 14:58:03.241927: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0108 val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.6%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-18 14:58:17.014575: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0119 val_mae=0.0037 kWh val_bias=+0.0009 kWh (+1.9%) combined=0.0028 kWh ema_combined=0.0024 kWh
2026-08-18 14:58:32.566131: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0106 val_mae=0.0035 kWh val_bias=-0.0012 kWh (-2.5%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-18 14:58:34.266892: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 14:58:34.267249: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 14:58:34.267309: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 14:58:34.267513: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 14:58:34.267595: Note: Inverter does not support discharge freeze - disabled
2026-08-18 14:58:34.267640: Note: Inverter does not support charge freeze - disabled
2026-08-18 14:58:34.267682: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 14:58:45.330917: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0094 val_mae=0.0031 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 14:58:58.627263: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-18 14:59:13.049517: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0097 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 14:59:26.303792: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0092 val_mae=0.0031 kWh val_bias=+0.0010 kWh (+2.1%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-18 14:59:26.304081: ML Predictor: Early stopping at epoch 10
2026-08-18 14:59:26.305037: ML Predictor: Restored best weights from epoch with val_mae=0.0025 kWh val_bias=-0.0004 kWh (-0.7%)
2026-08-18 14:59:26.305539: ML Predictor: Training complete, final val_mae=0.0025 kWh val_bias=-0.0004 kWh (-0.7%)
2026-08-18 14:59:29.510064: ML Predictor: AR rollout over holdout: ar_mae=0.0032 kWh ar_bias=-0.0001 kWh (-0.2%) [drift vs teacher-forced: +0.0007 kWh]
2026-08-18 14:59:29.516477: ML Predictor: Curriculum training complete, final val_mae=0.0025 kWh
2026-08-18 14:59:29.528627: ML Component: Training successful, val_mae=0.0025 kWh
2026-08-18 14:59:29.686173: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 14:59:29.690715: ML Component: Generating predictions load data age 60.0 days, 17286 data points
2026-08-18 14:59:29.861816: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.057 max_dow {0: 0.08250277803424333, 1: 0.0922861109920674, 2: 0.10978749959506096, 3: 0.10331875034738332, 4: 0.1381031253574416, 5: 0.10191944486482275, 6: 0.10384444441977475}
2026-08-18 14:59:30.426869: ML Component: Generated 576 predictions (total 29.10 kWh over 48h)
2026-08-18 14:59:30.466092: ML Component: Prediction cycle completed
2026-08-18 14:59:30.594712: ML Component: Saved 17286 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 15:00:00.569218: --------------- PredBat - update at 2026-08-18 15:00:00+01:00 with clock skew 0 minutes, minutes now 900
2026-08-18 15:00:00.570055: Saved current settings to /config/predbat_config.json
2026-08-18 15:00:00.570193: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 15:00:00.570277: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:00:00.570410: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:00:00.588453: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:00:00.588619: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:00:00.588825: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:00:00.589315: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:00:00.589427: Predbat mode is set to Control charge & discharge
2026-08-18 15:00:00.827466: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:00:00.827608: Using load_power data to fill gaps in load_today data
2026-08-18 15:00:01.549932: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:00:01.550231: Zero load period starting at 2026-08-17T10:54:00+0100 (1686 minutes) for 189 minutes with base value 206.775
2026-08-18 15:00:01.552482: Processing 721 30-minute periods for power integration
2026-08-18 15:00:01.785717: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:00:01.785863: Car charging hold False, threshold 6.0kWh
2026-08-18 15:00:01.785988: Current data so far today: load 9.25kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:00:01.805595: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:00:01.805762: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:00:01.806380: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:00:01.806631: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:00:01.806698: Standing charge is set to 46.63p
2026-08-18 15:00:01.923251: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:00:01.923453: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:00:01.923628: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:00:01.924656: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:00:01.924759: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:00:01.924862: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:00:01.929315: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:00:01.929660: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:00:01.975035: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:00:01.976161: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:00:01.977568: High export rate found rates in range 99p to -99p
2026-08-18 15:00:02.093704: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:00:02.093983: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:00:02.116473: Battery level now 7.2kWh, -1hr ago 7.76kWh, at midnight 6.84kWh, battery value change in the last hour -3.85p, change today 2.47p, rate_forward 6.87p
2026-08-18 15:00:02.116873: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:00:02.177037: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 15:00:02.177244: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:00:02.268501: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:00:02.302797: Today's load divergence 97.75%, in-day adjustment 95.92%, damping 0.95x, yesterday 92.68% today 97.86% blend 37.5%
2026-08-18 15:00:02.303688: Today's predicted so far 9.57kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 9.57kWh forecast extra.
2026-08-18 15:00:02.303971: Today's actual load so far 9.22kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 15:00:02.338753: Inverter 0: Type SK Sunsynk
2026-08-18 15:00:02.338842: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:00:02.339017: Reserve min: 7%, battery_min: 7%
2026-08-18 15:00:02.339085: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:00:02.339338: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 534W, current battery voltage 51.2V, grid power -56W, load power 585W, PV Power 0W
2026-08-18 15:00:02.339501: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:00:02.339612: Inverter 0 scheduled charge enable is False
2026-08-18 15:00:02.339647: Inverter 0 charge windows currently []
2026-08-18 15:00:02.339673: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:00:02.339793: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:00:02.339828: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:00:02.339864: Inverter 0 scheduled discharge enable is False
2026-08-18 15:00:02.340029: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:00:02.340072: Inverter 0 discharge windows currently []
2026-08-18 15:00:02.340094: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:00:02.340113: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:00:02.340130: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:00:02.399772: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:00:02.399870: Plan was last updated on 2026-08-18 14:55:00+01:00 and is now 5.0 minutes old
2026-08-18 15:00:02.400093: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:00:02.400138: Best export window [  ]
2026-08-18 15:00:02.400932: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:00:02.404008: Load divergence over 8.0 hours mean 451.24W, min 335.4W, max 1247.4W, std dev 101.84W, divergence 11.28%
2026-08-18 15:00:02.424955: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:00:02.425071: LoadML is_calculating False
2026-08-18 15:00:02.425138: Creating pool of 12 processes to match your CPU count
2026-08-18 15:00:02.562835: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 626.06p, metric_keep 126.49kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.33kWh, PV 0.0kWh
2026-08-18 15:00:02.699002: Battery has 8.33 hours left - now at 7.04kWh
2026-08-18 15:00:02.736487: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 655.82p, metric_keep 128.0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.38kWh, PV 0.0kWh
2026-08-18 15:00:02.824843: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 365.6p, metric_keep 6.69kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.38kWh, PV 0.0kWh
2026-08-18 15:00:02.908814: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 342.46p, metric_keep 2.16kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.33kWh, PV 0.0kWh
2026-08-18 15:00:02.908920: Saving plan best values to HA entities
2026-08-18 15:00:03.093896: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:00:03.100050: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:00:03.105726: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.09kWh, export 0.0kWh, metric 342.46p, metric10 365.6p
2026-08-18 15:00:03.179094: Marginal costs baseline metric (no standing charge): 295.8218
2026-08-18 15:00:03.413600: Marginal energy costs matrix computed: min=8.0 max=35.89
2026-08-18 15:00:03.495774: Rate array import [{'start': 900, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 900, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:00:03.496641: - Your estimated bill for today is £1.68 and tomorrow is £1.94
2026-08-18 15:00:03.496704: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:00:03.496736: - The battery is currently at 44% and is in eco mode for the next 8 hours.
2026-08-18 15:00:03.496752: - For the next 48 hours there will be no solar generation.
2026-08-18 15:00:03.496773: - You have enough battery to reach the next charge.
2026-08-18 15:00:03.496806: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:00:03.496836: 
2026-08-18 15:00:03.552830: Plan calculation took 1.15 seconds
2026-08-18 15:00:03.556374: No high rate period found
2026-08-18 15:00:03.604009: Import threshold used for optimisation was 8.0p
2026-08-18 15:00:03.658265: Low import rate windows [0: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 1: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 2: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 3: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 4: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 5: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 6: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 7: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 8: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 9: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 10: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 11: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 12: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 13: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 14: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 26: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 27: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 28: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 29: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 30: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 31: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 32: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 33: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 34: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 35: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 36: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 37: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 38: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 39: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 40: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 41: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 42: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 43: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 44: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 45: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 46: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 47: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 48: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 49: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 50: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 51: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 52: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 53: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 54: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 55: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 56: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 57: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 58: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 59: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 60: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 61: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 62: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 63: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 64: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 65: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 66: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 67: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 68: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 69: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 70: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 71: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 72: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 73: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 74: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 75: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 76: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 77: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 78: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 79: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 80: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 81: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 82: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 83: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 84: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 85: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 86: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 87: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 88: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 89: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 90: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 91: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 92: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 93: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75]
2026-08-18 15:00:03.663780: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 44%, target 100%
2026-08-18 15:00:03.663920: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:00:03.664016: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:00:03.664220: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:00:03.664304: No export window planned
2026-08-18 15:00:03.664407: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:00:03.664430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:00:03.664535: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:00:03.664696: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:00:03.664748: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:00:03.664807: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:00:03.664893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.664921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.664953: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.664999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665051: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:00:03.665289: Inverter 0 count register writes 0
2026-08-18 15:00:03.681149: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 15:00:03.687066: Total inverter register writes now 867
2026-08-18 15:00:03.722705: Info: Completed run status Demand
2026-08-18 15:00:03.730430: Info: record_status Demand
2026-08-18 15:00:03.738457: Saved current settings to /config/predbat_config.json
2026-08-18 15:00:03.738814: Compare, best tariff: current metric 129.87p
2026-08-18 15:00:33.845853: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:00:33.846083: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:00:33.846131: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:00:33.846294: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:00:33.846337: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:00:33.846360: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:00:33.846380: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:00:57.509544: Info: HAHistory: Pruning history data started.
2026-08-18 15:00:57.512443: Info: HAHistory: Pruning history data completed.
2026-08-18 15:02:34.077623: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:02:34.078410: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:02:34.080757: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:02:34.080956: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:02:34.081049: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:02:34.081084: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:02:34.081104: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:04:34.335068: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:04:34.335319: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:04:34.335376: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:04:34.335534: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:04:34.335574: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:04:34.335631: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:04:34.335653: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:05:00.441099: --------------- PredBat - update at 2026-08-18 15:05:00+01:00 with clock skew 0 minutes, minutes now 905
2026-08-18 15:05:00.441889: Saved current settings to /config/predbat_config.json
2026-08-18 15:05:00.442046: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 15:05:00.442124: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:05:00.442210: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:05:00.461088: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:05:00.461238: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:05:00.461466: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:05:00.462056: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:05:00.462181: Predbat mode is set to Control charge & discharge
2026-08-18 15:05:00.685955: Found 21602 load_today datapoints going back 27 days
2026-08-18 15:05:00.686127: Using load_power data to fill gaps in load_today data
2026-08-18 15:05:01.483560: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:05:01.483717: Zero load period starting at 2026-08-17T10:54:00+0100 (1691 minutes) for 189 minutes with base value 206.75
2026-08-18 15:05:01.484794: Processing 721 30-minute periods for power integration
2026-08-18 15:05:01.643462: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:05:01.643609: Car charging hold False, threshold 6.0kWh
2026-08-18 15:05:01.643674: Current data so far today: load 9.3kWh, import 10.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:05:01.660934: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:05:01.661360: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:05:01.662829: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:05:01.662937: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:05:01.663016: Standing charge is set to 46.63p
2026-08-18 15:05:01.745814: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:05:01.746055: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:05:01.746240: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:05:01.747319: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:05:01.747423: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:05:01.747541: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:05:01.752814: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:05:01.753220: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:05:01.796604: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:05:01.796710: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:05:01.797980: High export rate found rates in range 99p to -99p
2026-08-18 15:05:01.934383: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:05:01.934525: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:05:01.950335: Battery level now 7.04kWh, -1hr ago 7.68kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 1.37p, rate_forward 6.87p
2026-08-18 15:05:01.950860: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:05:02.011224: Today's energy total net 10.4kWh, import 10.4kWh, export 0.0kWh, cost 141.1p, import 94.47p, export 0.0p, carbon 0.0kg
2026-08-18 15:05:02.011377: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:05:02.083799: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:05:02.111966: Today's load divergence 97.68%, in-day adjustment 95.9%, damping 0.95x, yesterday 92.68% today 97.8% blend 37.15%
2026-08-18 15:05:02.112044: Today's predicted so far 9.66kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 9.66kWh forecast extra.
2026-08-18 15:05:02.112071: Today's actual load so far 9.3kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 15:05:02.141956: Inverter 0: Type SK Sunsynk
2026-08-18 15:05:02.142046: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:05:02.142294: Reserve min: 7%, battery_min: 7%
2026-08-18 15:05:02.142415: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:05:02.142778: Inverter 0 SoC: 6.93kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power 494W, current battery voltage 51.2V, grid power -52W, load power 543W, PV Power 0W
2026-08-18 15:05:02.142988: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:05:02.143114: Inverter 0 scheduled charge enable is False
2026-08-18 15:05:02.143170: Inverter 0 charge windows currently []
2026-08-18 15:05:02.143221: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:05:02.143391: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:05:02.143434: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:05:02.143475: Inverter 0 scheduled discharge enable is False
2026-08-18 15:05:02.143689: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:05:02.143734: Inverter 0 discharge windows currently []
2026-08-18 15:05:02.143758: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:05:02.143781: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:05:02.143803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:05:02.214612: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:05:02.214697: Plan was last updated on 2026-08-18 14:55:00+01:00 and is now 10.0 minutes old
2026-08-18 15:05:02.214880: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:05:02.214941: Best export window [  ]
2026-08-18 15:05:02.215613: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:05:02.218385: Load divergence over 8.0 hours mean 452.8W, min 330.0W, max 1248.0W, std dev 104.94W, divergence 11.59%
2026-08-18 15:05:02.233768: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:05:02.233866: LoadML is_calculating False
2026-08-18 15:05:02.233915: Creating pool of 12 processes to match your CPU count
2026-08-18 15:05:02.336340: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 628.46p, metric_keep 126.92kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.42kWh, PV 0.0kWh
2026-08-18 15:05:02.447306: Battery has 8.25 hours left - now at 6.93kWh
2026-08-18 15:05:02.495546: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 658.15p, metric_keep 128.43kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.48kWh, PV 0.0kWh
2026-08-18 15:05:02.604627: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 370.72p, metric_keep 7.02kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.48kWh, PV 0.0kWh
2026-08-18 15:05:02.704014: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 348.24p, metric_keep 2.47kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.42kWh, PV 0.0kWh
2026-08-18 15:05:02.704099: Saving plan best values to HA entities
2026-08-18 15:05:02.888270: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:05:02.894353: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:05:02.900228: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.14kWh, export 0.0kWh, metric 348.24p, metric10 370.72p
2026-08-18 15:05:02.979478: Marginal costs baseline metric (no standing charge): 301.6083
2026-08-18 15:05:03.254134: Marginal energy costs matrix computed: min=8.0 max=36.41
2026-08-18 15:05:03.320442: Rate array import [{'start': 905, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 905, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:05:03.321224: - Your estimated bill for today is £1.69 and tomorrow is £1.94
2026-08-18 15:05:03.321281: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:05:03.321323: - The battery is currently at 43% and is in eco mode for the next 8 hours.
2026-08-18 15:05:03.321365: - For the next 48 hours there will be no solar generation.
2026-08-18 15:05:03.321399: - You have enough battery to reach the next charge.
2026-08-18 15:05:03.321430: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:05:03.321473: 
2026-08-18 15:05:03.376406: Plan calculation took 1.16 seconds
2026-08-18 15:05:03.380247: No high rate period found
2026-08-18 15:05:03.430128: Import threshold used for optimisation was 8.0p
2026-08-18 15:05:03.477392: Low import rate windows [0: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 1: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 2: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 3: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 4: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 5: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 6: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 7: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 8: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 9: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 10: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 11: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 12: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 13: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 14: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 26: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 27: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 28: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 29: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 30: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 31: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 32: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 33: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 34: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 35: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 36: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 37: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 38: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 39: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 40: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 41: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 42: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 43: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 44: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 45: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 46: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 47: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 48: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 49: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 50: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 51: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 52: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 53: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 54: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 55: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 56: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 57: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 58: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 59: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 60: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 61: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 62: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 63: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 64: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 65: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 66: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 67: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 68: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 69: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 70: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 71: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 72: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 73: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 74: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 75: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 76: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 77: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 78: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 79: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 80: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 81: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 82: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 83: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 84: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 85: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 86: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 87: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 88: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 89: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 90: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 91: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 92: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 93: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 94: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75]
2026-08-18 15:05:03.483209: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 43%, target 100%
2026-08-18 15:05:03.483339: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:05:03.483430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:05:03.483780: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:05:03.483966: No export window planned
2026-08-18 15:05:03.484182: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:05:03.484235: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:05:03.484436: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:05:03.484672: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:05:03.484744: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:05:03.484861: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:05:03.485005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485104: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485159: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485625: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:03.485815: Inverter 0 count register writes 0
2026-08-18 15:05:03.502315: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 15:05:03.502527: Recompute is saving previous plan...
2026-08-18 15:05:03.505712: Best charge window [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0% ]
2026-08-18 15:05:03.505805: Best export window [  ]
2026-08-18 15:05:03.506701: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:05:03.510871: Load divergence over 8.0 hours mean 452.8W, min 330.0W, max 1248.0W, std dev 104.94W, divergence 11.59%
2026-08-18 15:05:03.528333: Calculating data from yesterday for savings calculation
2026-08-18 15:05:03.542289: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 15:05:03.589641: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 15:05:03.605638: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 15:05:03.627413: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 15:05:03.665421: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 15:05:03.742349: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 15:05:03.742498: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 15:05:03.752662: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:05:03.752878: LoadML is_calculating False
2026-08-18 15:05:03.753656: Creating pool of 12 processes to match your CPU count
2026-08-18 15:05:03.839084: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 15:05:03.840872: Optimise levels pass started at 2026-08-18 15:05:03
2026-08-18 15:05:03.840940: Optimise all windows, total charge 94 export 1
2026-08-18 15:05:04.271319: >> Region optimisation pass width 960 gives best_metric 392.8p, best_cost 441.0p, best_cycle 50.73kWh, best_import 37.04kWh
2026-08-18 15:05:04.489562: >> Region optimisation pass width 480 gives best_metric 392.8p, best_cost 441.0p, best_cycle 50.73kWh, best_import 37.04kWh
2026-08-18 15:05:04.885229: >> Region optimisation pass width 240 gives best_metric 392.8p, best_cost 441.0p, best_cycle 50.73kWh, best_import 37.04kWh
2026-08-18 15:05:06.159093: >> Region optimisation pass width 120 gives best_metric 392.21p, best_cost 438.96p, best_cycle 50.99kWh, best_import 36.78kWh
2026-08-18 15:05:06.159724: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 63
2026-08-18 15:05:06.159847: Optimise levels pass ended at 2026-08-18 15:05:06, duration 2.3 seconds tried 211 combinations
2026-08-18 15:05:06.159991: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 392.21p, best_keep 2.11kWh, best_cycle 50.99kWh, best_carbon 0kg, best_import 36.78kWh
2026-08-18 15:05:06.187169: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 15:05:12.828120: Tweak plan optimisation started metric 288.6p, cost 297.54p
2026-08-18 15:05:13.153612: Tweak optimisation finished metric 288.6p, cost 297.54p, metric_keep 1.54kWh, cycle 31.7kWh, carbon 0kg, import 19.1kWh, changed 8 window(s)
2026-08-18 15:05:13.173339: Swap charge optimisation started metric 288.6p, cost 297.54p, min_improvement_swap 0.1p
2026-08-18 15:05:18.973315: Swap charge optimisation finished metric 288.6p, cost 297.54p
2026-08-18 15:05:19.110843: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 286.38p -> 286.14p, plan now metric 289.88p, cost 293.35p, cycle 31.71kWh, import 18.58kWh
2026-08-18 15:05:19.120662: Raw charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:05:19.121094: Unclipped charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:05:19.121278: Unfiltered charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:05:19.121415: Filtered charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:05:19.150013: Previous plan best metric is 289.18 (cost 297.54) and new plan best metric is 288.6 (cost 297.54)
2026-08-18 15:05:19.150154: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 15:05:19.150256: Plan valid is now true after recompute was False
2026-08-18 15:05:19.173366: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 626.87p, metric_keep 126.66kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.22kWh, PV 0.0kWh
2026-08-18 15:05:19.265456: Battery has 8.25 hours left - now at 6.93kWh
2026-08-18 15:05:19.310832: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 656.49p, metric_keep 128.18kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.27kWh, PV 0.0kWh
2026-08-18 15:05:19.401843: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 363.51p, metric_keep 7.01kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.27kWh, PV 0.0kWh
2026-08-18 15:05:19.477172: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 339.99p, metric_keep 2.47kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.22kWh, PV 0.0kWh
2026-08-18 15:05:19.477606: Saving plan best values to HA entities
2026-08-18 15:05:19.615726: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:05:19.622418: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:05:19.629779: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.14kWh, export 0.0kWh, metric 339.99p, metric10 363.51p
2026-08-18 15:05:19.701739: Marginal costs baseline metric (no standing charge): 293.3536
2026-08-18 15:05:19.926015: Marginal energy costs matrix computed: min=8.0 max=36.41
2026-08-18 15:05:20.001977: Rate array import [{'start': 905, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 905, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:05:20.002706: - Your estimated bill for today is £1.69 and tomorrow is £1.94
2026-08-18 15:05:20.002766: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:05:20.002820: - The battery is currently at 43% and is in eco mode for the next 8 hours.
2026-08-18 15:05:20.002851: - For the next 48 hours there will be no solar generation.
2026-08-18 15:05:20.002883: - You have enough battery to reach the next charge.
2026-08-18 15:05:20.002900: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:05:20.002918: 
2026-08-18 15:05:20.052011: Plan calculation took 16.55 seconds
2026-08-18 15:05:20.052341: Inverter 0: Type SK Sunsynk
2026-08-18 15:05:20.052385: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:05:20.052673: Reserve min: 7%, battery_min: 7%
2026-08-18 15:05:20.052765: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:05:20.053094: Inverter 0 SoC: 6.93kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power 494W, current battery voltage 51.2V, grid power -52W, load power 543W, PV Power 0W
2026-08-18 15:05:20.053313: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:05:20.053412: Inverter 0 scheduled charge enable is False
2026-08-18 15:05:20.053448: Inverter 0 charge windows currently []
2026-08-18 15:05:20.053478: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:05:20.053605: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:05:20.053648: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:05:20.053684: Inverter 0 scheduled discharge enable is False
2026-08-18 15:05:20.053807: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:05:20.053843: Inverter 0 discharge windows currently []
2026-08-18 15:05:20.053866: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:05:20.053884: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:05:20.053901: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:05:20.103351: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 43%, target 100%
2026-08-18 15:05:20.103477: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:05:20.103536: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:05:20.103701: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:05:20.103771: No export window planned
2026-08-18 15:05:20.103860: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:05:20.103890: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:05:20.104024: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:05:20.104158: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:05:20.104202: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:05:20.104255: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:05:20.104332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104391: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104472: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104496: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:05:20.104712: Inverter 0 count register writes 0
2026-08-18 15:05:20.123263: Total inverter register writes now 867
2026-08-18 15:05:20.159184: Info: Completed run status Demand
2026-08-18 15:05:20.165701: Info: record_status Demand
2026-08-18 15:05:20.172537: Saved current settings to /config/predbat_config.json
2026-08-18 15:05:20.172853: Compare, best tariff: current metric 129.87p
2026-08-18 15:06:04.292671: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:06:04.292964: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:06:04.293018: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:06:04.293218: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:06:04.293264: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:06:04.293291: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:06:04.293335: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:08:04.509207: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:08:04.509430: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:08:04.509471: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:08:04.509620: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:08:04.509660: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:08:04.509682: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:08:04.509701: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:10:00.722728: --------------- PredBat - update at 2026-08-18 15:10:00+01:00 with clock skew 0 minutes, minutes now 910
2026-08-18 15:10:00.723725: Saved current settings to /config/predbat_config.json
2026-08-18 15:10:00.723889: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 15:10:00.724074: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:10:00.724167: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:10:00.755276: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:10:00.755418: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:10:00.755649: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:10:00.756257: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:10:00.757086: Predbat mode is set to Control charge & discharge
2026-08-18 15:10:00.949950: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:10:00.950147: Using load_power data to fill gaps in load_today data
2026-08-18 15:10:01.881179: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:10:01.881329: Zero load period starting at 2026-08-17T10:54:00+0100 (1696 minutes) for 189 minutes with base value 206.725
2026-08-18 15:10:01.882341: Processing 721 30-minute periods for power integration
2026-08-18 15:10:02.046102: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:10:02.046201: Car charging hold False, threshold 6.0kWh
2026-08-18 15:10:02.046238: Current data so far today: load 9.5kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:10:02.061267: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:10:02.061359: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:10:02.062048: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:10:02.062129: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:10:02.062192: Standing charge is set to 46.63p
2026-08-18 15:10:02.152176: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:10:02.152372: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:10:02.152509: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:10:02.153356: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:10:02.153442: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:10:02.153527: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:10:02.157849: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:10:02.158161: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:10:02.192364: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:10:02.192457: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:10:02.193568: High export rate found rates in range 99p to -99p
2026-08-18 15:10:02.279177: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:10:02.279286: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:10:02.288990: Battery level now 6.93kWh, -1hr ago 7.65kWh, at midnight 6.84kWh, battery value change in the last hour -4.95p, change today 0.6p, rate_forward 6.87p
2026-08-18 15:10:02.289301: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.85kWh, net cost 1.55p, import 1.55p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:10:02.338689: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:10:02.338821: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:10:02.414670: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:10:02.442926: Today's load divergence 98.2%, in-day adjustment 96.23%, damping 0.95x, yesterday 92.68% today 98.29% blend 36.81%
2026-08-18 15:10:02.443011: Today's predicted so far 9.69kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 9.69kWh forecast extra.
2026-08-18 15:10:02.443050: Today's actual load so far 9.41kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 15:10:02.474182: Inverter 0: Type SK Sunsynk
2026-08-18 15:10:02.474255: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:10:02.474397: Reserve min: 7%, battery_min: 7%
2026-08-18 15:10:02.474446: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:10:02.474663: Inverter 0 SoC: 6.88kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power 461W, current battery voltage 51.2V, grid power -55W, load power 517W, PV Power 0W
2026-08-18 15:10:02.474785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:10:02.474855: Inverter 0 scheduled charge enable is False
2026-08-18 15:10:02.474884: Inverter 0 charge windows currently []
2026-08-18 15:10:02.474905: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:10:02.474990: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:10:02.475018: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:10:02.475047: Inverter 0 scheduled discharge enable is False
2026-08-18 15:10:02.475144: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:10:02.475174: Inverter 0 discharge windows currently []
2026-08-18 15:10:02.475192: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:10:02.475207: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:10:02.475221: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:10:02.535502: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:10:02.535628: Plan was last updated on 2026-08-18 15:05:00+01:00 and is now 5.0 minutes old
2026-08-18 15:10:02.535855: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:10:02.535940: Best export window [  ]
2026-08-18 15:10:02.536744: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:10:02.539574: Load divergence over 8.0 hours mean 455.88W, min 345.0W, max 1120.2W, std dev 91.08W, divergence 9.99%
2026-08-18 15:10:02.557066: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:10:02.557196: LoadML is_calculating False
2026-08-18 15:10:02.557256: Creating pool of 12 processes to match your CPU count
2026-08-18 15:10:02.655865: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 630.95p, metric_keep 126.81kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.47kWh, PV 0.0kWh
2026-08-18 15:10:02.759635: Battery has 8.17 hours left - now at 6.88kWh
2026-08-18 15:10:02.801889: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 660.49p, metric_keep 128.3kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.52kWh, PV 0.0kWh
2026-08-18 15:10:02.865380: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 370.19p, metric_keep 7.01kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.52kWh, PV 0.0kWh
2026-08-18 15:10:02.929137: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 347.49p, metric_keep 2.47kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.47kWh, PV 0.0kWh
2026-08-18 15:10:02.929211: Saving plan best values to HA entities
2026-08-18 15:10:03.132681: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:10:03.137825: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:10:03.142694: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.14kWh, export 0.0kWh, metric 347.49p, metric10 370.19p
2026-08-18 15:10:03.204563: Marginal costs baseline metric (no standing charge): 300.8547
2026-08-18 15:10:03.422623: Marginal energy costs matrix computed: min=8.0 max=36.42
2026-08-18 15:10:03.479022: Rate array import [{'start': 910, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 910, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:10:03.479652: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 15:10:03.479698: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:10:03.479732: - The battery is currently at 43% and is in eco mode for the next 8 hours.
2026-08-18 15:10:03.479759: - For the next 48 hours there will be no solar generation.
2026-08-18 15:10:03.479800: - You have enough battery to reach the next charge.
2026-08-18 15:10:03.479818: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:10:03.479836: 
2026-08-18 15:10:03.526333: Plan calculation took 0.99 seconds
2026-08-18 15:10:03.530008: No high rate period found
2026-08-18 15:10:03.577207: Import threshold used for optimisation was 8.0p
2026-08-18 15:10:03.633263: Low import rate windows [0: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 1: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 2: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 3: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 4: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 5: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 6: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 7: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 8: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 9: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 10: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 11: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 12: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 13: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 14: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 26: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 27: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 28: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 29: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 30: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 31: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 32: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 33: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 34: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 35: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 36: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 37: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 38: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 39: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 40: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 41: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 42: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 43: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 44: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 45: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 46: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 47: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 48: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 49: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 50: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 51: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 52: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 53: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 54: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 55: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 56: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 57: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 58: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 59: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 60: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 61: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 62: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 63: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 64: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 65: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 66: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 67: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 68: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 69: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 70: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 71: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 72: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 73: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 74: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 75: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 76: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 77: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 78: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 79: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 80: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 81: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 82: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 83: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 84: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 85: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 86: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 87: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 88: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 89: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 90: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 91: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 92: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 93: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 94: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75]
2026-08-18 15:10:03.640366: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 43%, target 100%
2026-08-18 15:10:03.640535: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:10:03.640674: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:10:03.641051: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:10:03.641188: No export window planned
2026-08-18 15:10:03.641380: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:10:03.641425: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:10:03.641658: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:10:03.641886: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:10:03.641960: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:10:03.642068: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:10:03.642203: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642392: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642455: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642514: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642907: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642949: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.642999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:10:03.643039: Inverter 0 count register writes 0
2026-08-18 15:10:03.660542: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 15:10:03.666472: Total inverter register writes now 867
2026-08-18 15:10:03.699537: Info: Completed run status Demand
2026-08-18 15:10:03.706769: Info: record_status Demand
2026-08-18 15:10:03.714088: Saved current settings to /config/predbat_config.json
2026-08-18 15:10:03.714432: Compare, best tariff: current metric 129.87p
2026-08-18 15:10:33.824055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:10:33.824353: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:10:33.824409: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:10:33.824596: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:10:33.824660: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:10:33.824690: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:10:33.824733: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:12:34.062188: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:12:34.062471: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:12:34.062564: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:12:34.062783: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:12:34.062829: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:12:34.062860: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:12:34.062896: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:14:34.295530: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:14:34.295965: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:14:34.296057: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:14:34.296299: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:14:34.296361: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:14:34.296383: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:14:34.296402: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:15:00.403487: --------------- PredBat - update at 2026-08-18 15:15:00+01:00 with clock skew 0 minutes, minutes now 915
2026-08-18 15:15:00.404888: Saved current settings to /config/predbat_config.json
2026-08-18 15:15:00.405089: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 15:15:00.405200: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:15:00.405284: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:15:00.448547: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:15:00.448731: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:15:00.448911: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:15:00.449412: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:15:00.449528: Predbat mode is set to Control charge & discharge
2026-08-18 15:15:00.694086: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:15:00.694962: Using load_power data to fill gaps in load_today data
2026-08-18 15:15:01.568578: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:15:01.568773: Zero load period starting at 2026-08-17T10:54:00+0100 (1701 minutes) for 189 minutes with base value 206.7
2026-08-18 15:15:01.569984: Processing 721 30-minute periods for power integration
2026-08-18 15:15:01.753512: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:15:01.753653: Car charging hold False, threshold 6.0kWh
2026-08-18 15:15:01.753709: Current data so far today: load 9.6kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:15:01.770463: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:15:01.770565: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:15:01.771462: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:15:01.771552: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:15:01.771648: Standing charge is set to 46.63p
2026-08-18 15:15:01.861592: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:15:01.861891: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:15:01.862080: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:15:01.863221: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:15:01.863328: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:15:01.863446: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:15:01.868936: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:15:01.869366: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:15:01.913992: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:15:01.914108: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:15:01.915443: High export rate found rates in range 99p to -99p
2026-08-18 15:15:02.016575: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:15:02.016715: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:15:02.029105: Battery level now 6.88kWh, -1hr ago 7.52kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today 0.27p, rate_forward 6.87p
2026-08-18 15:15:02.029467: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 1.41p, import 1.41p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:15:02.100254: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:15:02.100381: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:15:02.222936: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:15:02.257999: Today's load divergence 99.03%, in-day adjustment 96.75%, damping 0.95x, yesterday 92.68% today 99.08% blend 36.46%
2026-08-18 15:15:02.258086: Today's predicted so far 9.71kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 9.71kWh forecast extra.
2026-08-18 15:15:02.258179: Today's actual load so far 9.56kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 15:15:02.310274: Inverter 0: Type SK Sunsynk
2026-08-18 15:15:02.310358: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:15:02.310534: Reserve min: 7%, battery_min: 7%
2026-08-18 15:15:02.310860: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:15:02.311149: Inverter 0 SoC: 6.79kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 514W, current battery voltage 51.2V, grid power -58W, load power 567W, PV Power 0W
2026-08-18 15:15:02.311301: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:15:02.311385: Inverter 0 scheduled charge enable is False
2026-08-18 15:15:02.311420: Inverter 0 charge windows currently []
2026-08-18 15:15:02.311446: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:15:02.311551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:15:02.311586: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:15:02.311621: Inverter 0 scheduled discharge enable is False
2026-08-18 15:15:02.311773: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:15:02.311809: Inverter 0 discharge windows currently []
2026-08-18 15:15:02.311832: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:15:02.311851: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:15:02.311868: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:15:02.374476: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:15:02.374596: Plan was last updated on 2026-08-18 15:05:00+01:00 and is now 10.0 minutes old
2026-08-18 15:15:02.374876: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:15:02.374924: Best export window [  ]
2026-08-18 15:15:02.375774: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:15:02.378998: Load divergence over 8.0 hours mean 459.02W, min 331.8W, max 988.2W, std dev 91.15W, divergence 9.93%
2026-08-18 15:15:02.396559: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:15:02.396640: LoadML is_calculating False
2026-08-18 15:15:02.396689: Creating pool of 12 processes to match your CPU count
2026-08-18 15:15:02.510358: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.78p, metric_keep 127.28kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.66kWh, PV 0.0kWh
2026-08-18 15:15:02.665213: Battery has 8.0 hours left - now at 6.79kWh
2026-08-18 15:15:02.715269: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 663.32p, metric_keep 128.74kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.71kWh, PV 0.0kWh
2026-08-18 15:15:02.794030: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 375.79p, metric_keep 7.35kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.71kWh, PV 0.0kWh
2026-08-18 15:15:02.877748: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 353.56p, metric_keep 2.83kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.66kWh, PV 0.0kWh
2026-08-18 15:15:02.877828: Saving plan best values to HA entities
2026-08-18 15:15:03.032911: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:15:03.038455: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 15:15:03.043855: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.48kWh, house 0.2kWh, export 0.0kWh, metric 353.56p, metric10 375.79p
2026-08-18 15:15:03.119242: Marginal costs baseline metric (no standing charge): 306.9239
2026-08-18 15:15:03.395844: Marginal energy costs matrix computed: min=8.0 max=36.96
2026-08-18 15:15:03.467441: Rate array import [{'start': 915, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 915, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:15:03.468138: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:15:03.468187: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:15:03.468210: - The battery is currently at 42% and is in eco mode for the next 8 hours.
2026-08-18 15:15:03.468229: - For the next 48 hours there will be no solar generation.
2026-08-18 15:15:03.468255: - You will run out of battery in 8 hours.
2026-08-18 15:15:03.468273: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:15:03.468295: 
2026-08-18 15:15:03.519438: Plan calculation took 1.14 seconds
2026-08-18 15:15:03.523007: No high rate period found
2026-08-18 15:15:03.571296: Import threshold used for optimisation was 8.0p
2026-08-18 15:15:03.621261: Low import rate windows [0: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 1: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 2: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 3: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 4: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 5: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 6: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 7: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 8: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 9: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 10: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 11: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 12: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 13: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 14: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 26: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 27: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 28: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 29: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 30: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 31: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 32: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 33: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 34: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 35: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 36: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 37: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 38: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 39: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 40: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 41: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 42: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 43: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 44: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 45: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 46: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 47: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 48: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 49: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 50: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 51: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 52: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 53: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 54: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 55: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 56: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 57: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 58: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 59: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 60: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 61: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 62: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 63: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 64: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 65: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 66: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 67: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 68: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 69: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 70: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 71: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 72: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 73: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 74: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 75: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 76: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 77: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 78: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 79: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 80: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 81: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 82: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 83: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 84: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 85: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 86: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 87: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 88: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 89: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 90: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 91: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 92: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 93: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 94: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75]
2026-08-18 15:15:03.626929: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:15:03.627052: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:15:03.627144: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:15:03.627390: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:15:03.627489: No export window planned
2026-08-18 15:15:03.627617: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:15:03.627689: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:15:03.627836: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:15:03.628051: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:15:03.628118: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:15:03.628189: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:15:03.628284: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628351: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628400: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:03.628725: Inverter 0 count register writes 0
2026-08-18 15:15:03.643652: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 15:15:03.643863: Recompute is saving previous plan...
2026-08-18 15:15:03.647134: Best charge window [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0% ]
2026-08-18 15:15:03.647205: Best export window [  ]
2026-08-18 15:15:03.648002: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:15:03.651131: Load divergence over 8.0 hours mean 459.02W, min 331.8W, max 988.2W, std dev 91.15W, divergence 9.93%
2026-08-18 15:15:03.668177: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:15:03.668272: LoadML is_calculating False
2026-08-18 15:15:03.668326: Creating pool of 12 processes to match your CPU count
2026-08-18 15:15:03.747575: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 15:15:03.749462: Optimise levels pass started at 2026-08-18 15:15:03
2026-08-18 15:15:03.749527: Optimise all windows, total charge 94 export 1
2026-08-18 15:15:04.132987: >> Region optimisation pass width 960 gives best_metric 399.37p, best_cost 448.41p, best_cycle 50.99kWh, best_import 37.36kWh
2026-08-18 15:15:04.325088: >> Region optimisation pass width 480 gives best_metric 399.37p, best_cost 448.41p, best_cycle 50.99kWh, best_import 37.36kWh
2026-08-18 15:15:04.669545: >> Region optimisation pass width 240 gives best_metric 399.37p, best_cost 448.41p, best_cycle 50.99kWh, best_import 37.36kWh
2026-08-18 15:15:05.614066: >> Region optimisation pass width 120 gives best_metric 399.21p, best_cost 446.41p, best_cycle 51.25kWh, best_import 37.11kWh
2026-08-18 15:15:05.614484: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 63
2026-08-18 15:15:05.614615: Optimise levels pass ended at 2026-08-18 15:15:05, duration 1.9 seconds tried 211 combinations
2026-08-18 15:15:05.614754: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 399.21p, best_keep 2.48kWh, best_cycle 51.25kWh, best_carbon 0kg, best_import 37.11kWh
2026-08-18 15:15:05.636564: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 15:15:12.043969: Tweak plan optimisation started metric 293.61p, cost 302.82p
2026-08-18 15:15:12.373494: Tweak optimisation finished metric 293.61p, cost 302.82p, metric_keep 1.29kWh, cycle 31.57kWh, carbon 0kg, import 19.16kWh, changed 8 window(s)
2026-08-18 15:15:12.393927: Swap charge optimisation started metric 293.61p, cost 302.82p, min_improvement_swap 0.1p
2026-08-18 15:15:18.585305: Swap charge optimisation finished metric 293.61p, cost 302.82p
2026-08-18 15:15:18.714002: Pruned 1 dead plan slot(s) in 14 trial(s), nominal metric 291.41p -> 291.26p, plan now metric 294.04p, cost 300.81p, cycle 31.83kWh, import 18.91kWh
2026-08-18 15:15:18.723620: Raw charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:15:18.724134: Unclipped charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:15:18.724351: Unfiltered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:15:18.724513: Filtered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:15:18.755482: Previous plan best metric is 294.8 (cost 302.81) and new plan best metric is 293.61 (cost 302.82)
2026-08-18 15:15:18.755679: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 15:15:18.755799: Plan valid is now true after recompute was False
2026-08-18 15:15:18.778688: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.17p, metric_keep 127.03kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.46kWh, PV 0.0kWh
2026-08-18 15:15:18.868098: Battery has 8.0 hours left - now at 6.79kWh
2026-08-18 15:15:18.917658: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 661.63p, metric_keep 128.48kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.5kWh, PV 0.0kWh
2026-08-18 15:15:19.000657: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.55p, metric_keep 7.33kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.5kWh, PV 0.0kWh
2026-08-18 15:15:19.077340: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 345.28p, metric_keep 2.83kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.46kWh, PV 0.0kWh
2026-08-18 15:15:19.077429: Saving plan best values to HA entities
2026-08-18 15:15:19.227093: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:15:19.232105: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 15:15:19.237167: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.45kWh, house 0.2kWh, export 0.0kWh, metric 345.28p, metric10 368.55p
2026-08-18 15:15:19.313870: Marginal costs baseline metric (no standing charge): 298.6485
2026-08-18 15:15:19.569785: Marginal energy costs matrix computed: min=8.0 max=36.96
2026-08-18 15:15:19.661051: Rate array import [{'start': 915, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 915, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:15:19.661711: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:15:19.661754: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:15:19.661777: - The battery is currently at 42% and is in eco mode for the next 8 hours.
2026-08-18 15:15:19.661795: - For the next 48 hours there will be no solar generation.
2026-08-18 15:15:19.661817: - You will run out of battery in 8 hours.
2026-08-18 15:15:19.661835: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:15:19.661853: 
2026-08-18 15:15:19.713968: Plan calculation took 16.07 seconds
2026-08-18 15:15:19.714287: Inverter 0: Type SK Sunsynk
2026-08-18 15:15:19.714331: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:15:19.714550: Reserve min: 7%, battery_min: 7%
2026-08-18 15:15:19.714622: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:15:19.714968: Inverter 0 SoC: 6.79kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 514W, current battery voltage 51.2V, grid power -58W, load power 567W, PV Power 0W
2026-08-18 15:15:19.715199: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:15:19.715312: Inverter 0 scheduled charge enable is False
2026-08-18 15:15:19.715349: Inverter 0 charge windows currently []
2026-08-18 15:15:19.715394: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:15:19.715543: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:15:19.715593: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:15:19.715656: Inverter 0 scheduled discharge enable is False
2026-08-18 15:15:19.715821: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:15:19.715869: Inverter 0 discharge windows currently []
2026-08-18 15:15:19.715893: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:15:19.715952: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:15:19.715987: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:15:19.759942: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:15:19.760098: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:15:19.760177: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:15:19.760385: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:15:19.760468: No export window planned
2026-08-18 15:15:19.760602: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:15:19.760652: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:15:19.760814: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:15:19.760997: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:15:19.761055: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:15:19.761136: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:15:19.761248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761422: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761496: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:15:19.761858: Inverter 0 count register writes 0
2026-08-18 15:15:19.780227: Total inverter register writes now 867
2026-08-18 15:15:19.812293: Info: Completed run status Demand
2026-08-18 15:15:19.817598: Info: record_status Demand
2026-08-18 15:15:19.822942: Saved current settings to /config/predbat_config.json
2026-08-18 15:15:19.823202: Compare, best tariff: current metric 129.87p
2026-08-18 15:16:03.933999: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:16:03.934303: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:16:03.934362: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:16:03.934518: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:16:03.934557: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:16:03.934579: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:16:03.934597: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:18:04.173356: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:18:04.173581: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:18:04.173658: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:18:04.173883: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:18:04.173933: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:18:04.173961: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:18:04.174002: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:20:00.386975: --------------- PredBat - update at 2026-08-18 15:20:00+01:00 with clock skew 0 minutes, minutes now 920
2026-08-18 15:20:00.387683: Saved current settings to /config/predbat_config.json
2026-08-18 15:20:00.387791: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 15:20:00.387952: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:20:00.388043: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:20:00.407065: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:20:00.407176: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:20:00.407330: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:20:00.407831: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:20:00.407996: Predbat mode is set to Control charge & discharge
2026-08-18 15:20:00.591441: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:20:00.591567: Using load_power data to fill gaps in load_today data
2026-08-18 15:20:01.388179: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:20:01.388386: Zero load period starting at 2026-08-17T10:54:00+0100 (1706 minutes) for 189 minutes with base value 206.675
2026-08-18 15:20:01.389449: Processing 721 30-minute periods for power integration
2026-08-18 15:20:01.533698: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:20:01.534068: Car charging hold False, threshold 6.0kWh
2026-08-18 15:20:01.534117: Current data so far today: load 9.55kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:20:01.547427: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:20:01.547629: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:20:01.548424: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:20:01.548495: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:20:01.548538: Standing charge is set to 46.63p
2026-08-18 15:20:01.632900: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:20:01.633202: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:20:01.633472: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:20:01.634662: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:20:01.634805: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:20:01.634981: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:20:01.640959: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:20:01.641377: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:20:01.686365: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:20:01.686480: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:20:01.688029: High export rate found rates in range 99p to -99p
2026-08-18 15:20:01.789004: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:20:01.789119: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:20:01.800080: Battery level now 6.79kWh, -1hr ago 7.52kWh, at midnight 6.84kWh, battery value change in the last hour -5.0p, change today -0.33p, rate_forward 6.87p
2026-08-18 15:20:01.800439: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 1.27p, import 1.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:20:01.852502: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:20:01.852630: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:20:01.942137: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:20:01.975978: Today's load divergence 98.54%, in-day adjustment 96.47%, damping 0.95x, yesterday 92.68% today 98.62% blend 36.11%
2026-08-18 15:20:01.976064: Today's predicted so far 9.74kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 9.74kWh forecast extra.
2026-08-18 15:20:01.976096: Today's actual load so far 9.51kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 15:20:02.007770: Inverter 0: Type SK Sunsynk
2026-08-18 15:20:02.007848: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:20:02.008084: Reserve min: 7%, battery_min: 7%
2026-08-18 15:20:02.008166: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:20:02.008424: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 463W, current battery voltage 51.2V, grid power -55W, load power 517W, PV Power 0W
2026-08-18 15:20:02.008572: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:20:02.008697: Inverter 0 scheduled charge enable is False
2026-08-18 15:20:02.008729: Inverter 0 charge windows currently []
2026-08-18 15:20:02.008760: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:20:02.008870: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:20:02.008905: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:20:02.008941: Inverter 0 scheduled discharge enable is False
2026-08-18 15:20:02.009067: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:20:02.009103: Inverter 0 discharge windows currently []
2026-08-18 15:20:02.009125: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:20:02.009148: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:20:02.009165: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:20:02.071989: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:20:02.072132: Plan was last updated on 2026-08-18 15:15:00+01:00 and is now 5.0 minutes old
2026-08-18 15:20:02.072367: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:20:02.072411: Best export window [  ]
2026-08-18 15:20:02.073292: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:20:02.076540: Load divergence over 8.0 hours mean 460.61W, min 332.4W, max 1084.2W, std dev 95.72W, divergence 10.39%
2026-08-18 15:20:02.095076: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:20:02.095172: LoadML is_calculating False
2026-08-18 15:20:02.095229: Creating pool of 12 processes to match your CPU count
2026-08-18 15:20:02.231311: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 632.81p, metric_keep 127.16kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.43kWh, PV 0.0kWh
2026-08-18 15:20:02.364179: Battery has 7.92 hours left - now at 6.72kWh
2026-08-18 15:20:02.410517: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 662.24p, metric_keep 128.6kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.47kWh, PV 0.0kWh
2026-08-18 15:20:02.490722: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 371.88p, metric_keep 7.3kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.47kWh, PV 0.0kWh
2026-08-18 15:20:02.567638: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 349.4p, metric_keep 2.82kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.43kWh, PV 0.0kWh
2026-08-18 15:20:02.567736: Saving plan best values to HA entities
2026-08-18 15:20:02.761065: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:20:02.766474: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:20:02.771761: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.2kWh, export 0.0kWh, metric 349.4p, metric10 371.88p
2026-08-18 15:20:02.849018: Marginal costs baseline metric (no standing charge): 302.77
2026-08-18 15:20:03.123610: Marginal energy costs matrix computed: min=8.0 max=37.48
2026-08-18 15:20:03.193596: Rate array import [{'start': 920, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 920, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:20:03.194279: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:20:03.194340: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:20:03.194363: - The battery is currently at 42% and is in eco mode for the next 8 hours.
2026-08-18 15:20:03.194382: - For the next 48 hours there will be no solar generation.
2026-08-18 15:20:03.194404: - You will run out of battery in 7  hours.
2026-08-18 15:20:03.194422: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:20:03.194446: 
2026-08-18 15:20:03.245182: Plan calculation took 1.17 seconds
2026-08-18 15:20:03.248810: No high rate period found
2026-08-18 15:20:03.311473: Import threshold used for optimisation was 8.0p
2026-08-18 15:20:03.374520: Low import rate windows [0: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 1: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 2: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 3: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 4: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 5: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 6: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 7: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 8: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 9: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 10: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 11: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 12: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 13: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 14: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 26: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 27: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 28: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 29: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 30: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 31: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 32: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 33: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 34: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 35: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 36: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 37: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 38: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 39: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 40: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 41: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 42: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 43: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 44: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 45: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 46: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 47: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 48: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 49: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 50: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 51: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 52: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 53: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 54: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 55: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 56: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 57: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 58: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 59: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 60: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 61: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 62: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 63: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 64: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 65: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 66: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 67: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 68: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 69: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 70: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 71: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 72: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 73: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 74: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 75: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 76: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 77: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 78: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 79: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 80: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 81: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 82: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 83: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 84: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 85: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 86: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 87: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 88: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 89: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 90: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 91: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 92: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 93: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 94: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75]
2026-08-18 15:20:03.381499: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:20:03.381637: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:20:03.381767: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:20:03.382037: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:20:03.382180: No export window planned
2026-08-18 15:20:03.382374: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:20:03.382418: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:20:03.382563: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:20:03.382769: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:20:03.382846: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:20:03.382937: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:20:03.383045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383085: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383116: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383173: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383196: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:20:03.383557: Inverter 0 count register writes 0
2026-08-18 15:20:03.399063: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 15:20:03.404218: Total inverter register writes now 867
2026-08-18 15:20:03.437350: Info: Completed run status Demand
2026-08-18 15:20:03.445181: Info: record_status Demand
2026-08-18 15:20:03.450833: Saved current settings to /config/predbat_config.json
2026-08-18 15:20:03.451084: Compare, best tariff: current metric 129.87p
2026-08-18 15:20:34.552192: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:20:34.552414: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:20:34.552453: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:20:34.552588: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:20:34.552630: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:20:34.552670: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:20:34.552689: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:22:48.805160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:22:48.805376: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:22:48.805443: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:22:48.805580: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:22:48.805675: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:22:48.805700: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:22:48.805728: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:23:31.896186: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 15:23:32.760260: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:23:32.760433: Zero load period starting at 2026-08-17T10:54:00+0100 (1706 minutes) for 189 minutes with base value 396.65
2026-08-18 15:23:32.761488: Processing 1345 30-minute periods for power integration
2026-08-18 15:23:32.846469: ML Component: Car charging hold False, car energy reported load False
2026-08-18 15:23:32.930289: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:23:33.013920: ML Temperature data points: 49481
2026-08-18 15:23:33.296284: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 15:23:33.333409: ML Component: Data fetch completed, load data age 60.0 days, 17295 data points
2026-08-18 15:23:33.335438: ML Component: No training needed, model age is 0.34 hours
2026-08-18 15:23:33.335527: ML Component: Generating predictions load data age 60.0 days, 17295 data points
2026-08-18 15:23:33.456986: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0362 max_dow {0: 0.087236111173696, 1: 0.0929083333182666, 2: 0.10695937459506094, 3: 0.10022500038649887, 4: 0.13687812535744162, 5: 0.09935833360569346, 6: 0.10263055489617919}
2026-08-18 15:23:33.936712: ML Component: Generated 576 predictions (total 29.08 kWh over 48h)
2026-08-18 15:23:33.979462: ML Component: Prediction cycle completed
2026-08-18 15:23:34.099075: ML Component: Saved 17295 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 15:24:49.040334: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:24:49.040576: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:24:49.040642: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:24:49.040784: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:24:49.040823: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:24:49.040844: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:24:49.040862: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:25:00.125947: --------------- PredBat - update at 2026-08-18 15:25:00+01:00 with clock skew 0 minutes, minutes now 925
2026-08-18 15:25:00.126606: Saved current settings to /config/predbat_config.json
2026-08-18 15:25:00.126743: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 15:25:00.126819: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:25:00.126914: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:25:00.145308: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:25:00.145468: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:25:00.145728: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:25:00.146354: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:25:00.146510: Predbat mode is set to Control charge & discharge
2026-08-18 15:25:00.320333: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:25:00.320455: Using load_power data to fill gaps in load_today data
2026-08-18 15:25:01.137757: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:25:01.137938: Zero load period starting at 2026-08-17T10:54:00+0100 (1711 minutes) for 189 minutes with base value 206.65
2026-08-18 15:25:01.139382: Processing 721 30-minute periods for power integration
2026-08-18 15:25:01.343050: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:25:01.343170: Car charging hold False, threshold 6.0kWh
2026-08-18 15:25:01.343212: Current data so far today: load 9.6kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:25:01.359849: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:25:01.359962: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:25:01.360765: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:25:01.360847: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:25:01.360905: Standing charge is set to 46.63p
2026-08-18 15:25:01.444467: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:25:01.445311: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:25:01.445485: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:25:01.446462: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:25:01.446619: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:25:01.446734: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:25:01.452369: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:25:01.452729: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:25:01.490185: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:25:01.490289: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:25:01.491404: High export rate found rates in range 99p to -99p
2026-08-18 15:25:01.577920: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:25:01.578032: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:25:01.588383: Battery level now 6.72kWh, -1hr ago 7.37kWh, at midnight 6.84kWh, battery value change in the last hour -4.45p, change today -0.82p, rate_forward 6.87p
2026-08-18 15:25:01.588767: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.12p, import 1.12p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:25:01.635553: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:25:01.635732: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:25:01.733577: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:25:01.774235: Today's load divergence 98.72%, in-day adjustment 96.6%, damping 0.95x, yesterday 92.68% today 98.78% blend 35.76%
2026-08-18 15:25:01.777122: Today's predicted so far 9.76kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 9.76kWh forecast extra.
2026-08-18 15:25:01.777238: Today's actual load so far 9.56kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 15:25:01.833012: Inverter 0: Type SK Sunsynk
2026-08-18 15:25:01.833119: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:25:01.833324: Reserve min: 7%, battery_min: 7%
2026-08-18 15:25:01.833401: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:25:01.833739: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 475W, current battery voltage 51.2V, grid power -54W, load power 528W, PV Power 0W
2026-08-18 15:25:01.833999: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:25:01.834168: Inverter 0 scheduled charge enable is False
2026-08-18 15:25:01.834352: Inverter 0 charge windows currently []
2026-08-18 15:25:01.834399: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:25:01.834614: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:25:01.834663: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:25:01.834702: Inverter 0 scheduled discharge enable is False
2026-08-18 15:25:01.834847: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:25:01.834889: Inverter 0 discharge windows currently []
2026-08-18 15:25:01.834922: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:25:01.835850: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:25:01.839295: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:25:01.919347: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:25:01.919446: Plan was last updated on 2026-08-18 15:15:00+01:00 and is now 10.0 minutes old
2026-08-18 15:25:01.919709: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:25:01.919785: Best export window [  ]
2026-08-18 15:25:01.920641: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:25:01.923100: Load divergence over 8.0 hours mean 462.18W, min 337.2W, max 1255.8W, std dev 108.88W, divergence 11.78%
2026-08-18 15:25:01.940754: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:25:01.940854: LoadML is_calculating False
2026-08-18 15:25:01.940905: Creating pool of 12 processes to match your CPU count
2026-08-18 15:25:02.046372: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.05p, metric_keep 127.04kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.55kWh, PV 0.0kWh
2026-08-18 15:25:02.155532: Battery has 7.92 hours left - now at 6.72kWh
2026-08-18 15:25:02.204986: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 662.5p, metric_keep 128.46kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.6kWh, PV 0.0kWh
2026-08-18 15:25:02.270335: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 374.99p, metric_keep 7.05kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.6kWh, PV 0.0kWh
2026-08-18 15:25:02.342722: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 352.45p, metric_keep 2.61kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.55kWh, PV 0.0kWh
2026-08-18 15:25:02.342799: Saving plan best values to HA entities
2026-08-18 15:25:02.529163: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:25:02.534210: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:25:02.539260: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.46kWh, house 0.17kWh, export 0.0kWh, metric 352.45p, metric10 374.99p
2026-08-18 15:25:02.622343: Marginal costs baseline metric (no standing charge): 305.8141
2026-08-18 15:25:02.904174: Marginal energy costs matrix computed: min=8.0 max=37.91
2026-08-18 15:25:02.989771: Rate array import [{'start': 925, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 925, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:25:02.990448: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:25:02.990491: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:25:02.990513: - The battery is currently at 42% and is in eco mode for the next 8 hours.
2026-08-18 15:25:02.990532: - For the next 48 hours there will be no solar generation.
2026-08-18 15:25:02.990549: - You have enough battery to reach the next charge.
2026-08-18 15:25:02.990592: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:25:02.990614: 
2026-08-18 15:25:03.045069: Plan calculation took 1.13 seconds
2026-08-18 15:25:03.047994: No high rate period found
2026-08-18 15:25:03.089526: Import threshold used for optimisation was 8.0p
2026-08-18 15:25:03.131937: Low import rate windows [0: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 1: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 2: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 3: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 4: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 5: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 6: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 7: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 8: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 9: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 10: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 11: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 12: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 13: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 14: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 26: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 27: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 28: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 29: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 30: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 31: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 32: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 33: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 34: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 35: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 36: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 37: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 38: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 39: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 40: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 41: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 42: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 43: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 44: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 45: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 46: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 47: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 48: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 49: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 50: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 51: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 52: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 53: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 54: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 55: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 56: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 57: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 58: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 59: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 60: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 61: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 62: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 63: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 64: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 65: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 66: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 67: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 68: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 69: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 70: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 71: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 72: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 73: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 74: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 75: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 76: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 77: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 78: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 79: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 80: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 81: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 82: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 83: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 84: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 85: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 86: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 87: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 88: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 89: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 90: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 91: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 92: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 93: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 94: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75]
2026-08-18 15:25:03.137241: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:25:03.137400: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:25:03.137534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:25:03.137863: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:25:03.137962: No export window planned
2026-08-18 15:25:03.138080: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:25:03.138113: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:25:03.138233: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:25:03.138463: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:25:03.138541: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:25:03.138624: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:25:03.138749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.138793: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.138823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.138853: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.138885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.138925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.138971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:03.139230: Inverter 0 count register writes 0
2026-08-18 15:25:03.152118: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 15:25:03.152241: Recompute is saving previous plan...
2026-08-18 15:25:03.154748: Best charge window [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0% ]
2026-08-18 15:25:03.154808: Best export window [  ]
2026-08-18 15:25:03.155485: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:25:03.158218: Load divergence over 8.0 hours mean 462.18W, min 337.2W, max 1255.8W, std dev 108.88W, divergence 11.78%
2026-08-18 15:25:03.172644: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:25:03.175766: LoadML is_calculating False
2026-08-18 15:25:03.175876: Creating pool of 12 processes to match your CPU count
2026-08-18 15:25:03.296856: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 15:25:03.301179: Optimise levels pass started at 2026-08-18 15:25:03
2026-08-18 15:25:03.302974: Optimise all windows, total charge 94 export 1
2026-08-18 15:25:03.743228: >> Region optimisation pass width 960 gives best_metric 398.81p, best_cost 447.42p, best_cycle 51.04kWh, best_import 37.33kWh
2026-08-18 15:25:03.962823: >> Region optimisation pass width 480 gives best_metric 398.81p, best_cost 447.42p, best_cycle 51.04kWh, best_import 37.33kWh
2026-08-18 15:25:04.329820: >> Region optimisation pass width 240 gives best_metric 398.81p, best_cost 447.42p, best_cycle 51.04kWh, best_import 37.33kWh
2026-08-18 15:25:05.233343: >> Region optimisation pass width 120 gives best_metric 398.66p, best_cost 445.4p, best_cycle 51.31kWh, best_import 37.07kWh
2026-08-18 15:25:05.233780: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 63
2026-08-18 15:25:05.233846: Optimise levels pass ended at 2026-08-18 15:25:05, duration 1.9 seconds tried 211 combinations
2026-08-18 15:25:05.233915: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 398.66p, best_keep 2.24kWh, best_cycle 51.31kWh, best_carbon 0kg, best_import 37.07kWh
2026-08-18 15:25:05.250249: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 15:25:11.760311: Tweak plan optimisation started metric 292.7p, cost 301.78p
2026-08-18 15:25:12.102937: Tweak optimisation finished metric 292.7p, cost 301.78p, metric_keep 1.35kWh, cycle 31.51kWh, carbon 0kg, import 19.12kWh, changed 8 window(s)
2026-08-18 15:25:12.123373: Swap charge optimisation started metric 292.7p, cost 301.78p, min_improvement_swap 0.1p
2026-08-18 15:25:18.680773: Swap charge optimisation finished metric 292.7p, cost 301.78p
2026-08-18 15:25:18.842741: Pruned 2 dead plan slot(s) in 15 trial(s), nominal metric 290.52p -> 290.36p, plan now metric 293.18p, cost 299.77p, cycle 31.77kWh, import 18.87kWh
2026-08-18 15:25:18.852472: Raw charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:25:18.853130: Unclipped charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:25:18.853542: Unfiltered charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:25:18.853832: Filtered charge windows [ 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 41%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:25:18.884835: Previous plan best metric is 293.59 (cost 301.78) and new plan best metric is 292.7 (cost 301.78)
2026-08-18 15:25:18.885065: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 15:25:18.885195: Plan valid is now true after recompute was False
2026-08-18 15:25:18.911076: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 631.52p, metric_keep 126.79kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.36kWh, PV 0.0kWh
2026-08-18 15:25:19.006318: Battery has 7.92 hours left - now at 6.72kWh
2026-08-18 15:25:19.048985: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 660.9p, metric_keep 128.2kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.4kWh, PV 0.0kWh
2026-08-18 15:25:19.123395: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 367.83p, metric_keep 7.04kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.4kWh, PV 0.0kWh
2026-08-18 15:25:19.213614: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 344.25p, metric_keep 2.61kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.36kWh, PV 0.0kWh
2026-08-18 15:25:19.213694: Saving plan best values to HA entities
2026-08-18 15:25:19.366229: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:25:19.371299: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:25:19.376415: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.17kWh, export 0.0kWh, metric 344.25p, metric10 367.83p
2026-08-18 15:25:19.451800: Marginal costs baseline metric (no standing charge): 297.6187
2026-08-18 15:25:19.753208: Marginal energy costs matrix computed: min=8.0 max=37.91
2026-08-18 15:25:19.864123: Rate array import [{'start': 925, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 925, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:25:19.864892: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:25:19.864938: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:25:19.864962: - The battery is currently at 42% and is in eco mode for the next 8 hours.
2026-08-18 15:25:19.864981: - For the next 48 hours there will be no solar generation.
2026-08-18 15:25:19.864998: - You have enough battery to reach the next charge.
2026-08-18 15:25:19.865014: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:25:19.865031: 
2026-08-18 15:25:19.916828: Plan calculation took 16.76 seconds
2026-08-18 15:25:19.917144: Inverter 0: Type SK Sunsynk
2026-08-18 15:25:19.917189: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:25:19.917395: Reserve min: 7%, battery_min: 7%
2026-08-18 15:25:19.917471: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:25:19.917815: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 473W, current battery voltage 51.2V, grid power -53W, load power 526W, PV Power 0W
2026-08-18 15:25:19.918042: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:25:19.918139: Inverter 0 scheduled charge enable is False
2026-08-18 15:25:19.918195: Inverter 0 charge windows currently []
2026-08-18 15:25:19.918227: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:25:19.918335: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:25:19.918374: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:25:19.918411: Inverter 0 scheduled discharge enable is False
2026-08-18 15:25:19.918536: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:25:19.918597: Inverter 0 discharge windows currently []
2026-08-18 15:25:19.918622: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:25:19.918646: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:25:19.918663: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:25:19.986379: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:25:19.986525: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:25:19.986610: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:25:19.986794: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:25:19.986874: No export window planned
2026-08-18 15:25:19.987072: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:25:19.987317: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:25:19.987505: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:25:19.987701: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:25:19.987761: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:25:19.987826: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:25:19.987989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988222: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:25:19.988526: Inverter 0 count register writes 0
2026-08-18 15:25:20.009175: Total inverter register writes now 867
2026-08-18 15:25:20.037940: Info: Completed run status Demand
2026-08-18 15:25:20.043847: Info: record_status Demand
2026-08-18 15:25:20.049338: Saved current settings to /config/predbat_config.json
2026-08-18 15:25:20.049641: Compare, best tariff: current metric 129.87p
2026-08-18 15:26:04.167230: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:26:04.167453: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:26:04.167495: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:26:04.167647: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:26:04.167687: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:26:04.167709: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:26:04.167726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:28:04.400543: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:28:04.400789: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:28:04.400831: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:28:04.400963: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:28:04.401001: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:28:04.401023: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:28:04.401040: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:30:00.615628: --------------- PredBat - update at 2026-08-18 15:30:00+01:00 with clock skew 0 minutes, minutes now 930
2026-08-18 15:30:00.616385: Saved current settings to /config/predbat_config.json
2026-08-18 15:30:00.876550: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:30:00.876693: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:30:00.896847: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:30:00.896971: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:30:00.897198: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:30:00.897771: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:30:00.897928: Predbat mode is set to Control charge & discharge
2026-08-18 15:30:01.119176: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:30:01.119305: Using load_power data to fill gaps in load_today data
2026-08-18 15:30:02.051362: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:30:02.051665: Zero load period starting at 2026-08-17T10:54:00+0100 (1716 minutes) for 189 minutes with base value 206.625
2026-08-18 15:30:02.053646: Processing 721 30-minute periods for power integration
2026-08-18 15:30:02.235543: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:30:02.235644: Car charging hold False, threshold 6.0kWh
2026-08-18 15:30:02.235695: Current data so far today: load 9.65kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:30:02.251105: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:30:02.251198: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:30:02.251852: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:30:02.251958: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:30:02.252015: Standing charge is set to 46.63p
2026-08-18 15:30:02.342849: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:30:02.343083: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:30:02.343274: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:30:02.344434: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:30:02.344563: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:30:02.344678: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:30:02.349854: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:30:02.350267: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:30:02.405245: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:30:02.405362: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:30:02.406664: High export rate found rates in range 99p to -99p
2026-08-18 15:30:02.512550: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:30:02.515044: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:30:02.539809: Battery level now 6.72kWh, -1hr ago 7.37kWh, at midnight 6.84kWh, battery value change in the last hour -4.45p, change today -0.82p, rate_forward 6.87p
2026-08-18 15:30:02.540814: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.99p, import 0.99p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:30:02.625653: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:30:02.625823: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:30:02.715727: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:30:02.750220: Today's load divergence 98.44%, in-day adjustment 96.45%, damping 0.95x, yesterday 92.68% today 98.51% blend 35.42%
2026-08-18 15:30:02.750308: Today's predicted so far 9.88kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 9.88kWh forecast extra.
2026-08-18 15:30:02.750339: Today's actual load so far 9.63kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 15:30:02.783819: Inverter 0: Type SK Sunsynk
2026-08-18 15:30:02.783934: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:30:02.784111: Reserve min: 7%, battery_min: 7%
2026-08-18 15:30:02.784179: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:30:02.784429: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 528W, current battery voltage 51.2V, grid power -57W, load power 585W, PV Power 0W
2026-08-18 15:30:02.784593: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:30:02.784698: Inverter 0 scheduled charge enable is False
2026-08-18 15:30:02.784727: Inverter 0 charge windows currently []
2026-08-18 15:30:02.784754: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:30:02.784859: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:30:02.784895: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:30:02.784929: Inverter 0 scheduled discharge enable is False
2026-08-18 15:30:02.785051: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:30:02.785086: Inverter 0 discharge windows currently []
2026-08-18 15:30:02.785109: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:30:02.785128: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:30:02.785150: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:30:02.844053: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:30:02.844152: Plan was last updated on 2026-08-18 15:25:00+01:00 and is now 5.0 minutes old
2026-08-18 15:30:02.844353: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:30:02.844393: Best export window [  ]
2026-08-18 15:30:02.845193: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:30:02.848415: Load divergence over 8.0 hours mean 460.74W, min 335.4W, max 1247.4W, std dev 105.71W, divergence 11.47%
2026-08-18 15:30:02.866984: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:30:02.867092: LoadML is_calculating False
2026-08-18 15:30:02.867150: Creating pool of 12 processes to match your CPU count
2026-08-18 15:30:02.980033: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 630.11p, metric_keep 126.58kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 15:30:03.097960: Battery has 7.83 hours left - now at 6.72kWh
2026-08-18 15:30:03.142042: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 659.41p, metric_keep 128.02kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.49kWh, PV 0.0kWh
2026-08-18 15:30:03.218903: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 369.19p, metric_keep 6.71kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.49kWh, PV 0.0kWh
2026-08-18 15:30:03.288248: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 346.5p, metric_keep 2.26kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 15:30:03.288318: Saving plan best values to HA entities
2026-08-18 15:30:03.442380: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:30:03.447542: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:30:03.452689: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.11kWh, export 0.0kWh, metric 346.5p, metric10 369.19p
2026-08-18 15:30:03.539813: Marginal costs baseline metric (no standing charge): 299.8667
2026-08-18 15:30:03.811846: Marginal energy costs matrix computed: min=8.0 max=38.32
2026-08-18 15:30:03.878834: Rate array import [{'start': 930, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 930, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:30:03.879539: - Your estimated bill for today is £1.72 and tomorrow is £1.94
2026-08-18 15:30:03.879601: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:30:03.879624: - The battery is currently at 42% and is in eco mode for the next 8 hours.
2026-08-18 15:30:03.879643: - For the next 48 hours there will be no solar generation.
2026-08-18 15:30:03.879663: - You have enough battery to reach the next charge.
2026-08-18 15:30:03.879680: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-18 15:30:03.879698: 
2026-08-18 15:30:03.937691: Plan calculation took 1.09 seconds
2026-08-18 15:30:03.940708: No high rate period found
2026-08-18 15:30:03.988221: Import threshold used for optimisation was 8.0p
2026-08-18 15:30:04.052085: Low import rate windows [0: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 1: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 2: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 3: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 4: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 5: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 6: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 7: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 8: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 9: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 10: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 11: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 12: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 13: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 26: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 27: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 28: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 29: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 30: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 31: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 32: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 33: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 34: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 35: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 36: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 37: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 38: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 39: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 40: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 41: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 42: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 43: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 44: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 45: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 46: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 47: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 48: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 49: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 50: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 51: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 52: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 53: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 54: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 55: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 56: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 57: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 58: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 59: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 60: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 61: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 62: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 63: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 64: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 65: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 66: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 67: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 68: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 69: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 70: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 71: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 72: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 73: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 74: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 75: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 76: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 77: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 78: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 79: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 80: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 81: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 82: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 83: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 84: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 85: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 86: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 87: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 88: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 89: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 90: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 91: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 92: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 93: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75]
2026-08-18 15:30:04.058910: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:30:04.059049: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:30:04.059157: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:30:04.059408: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:30:04.059531: No export window planned
2026-08-18 15:30:04.059672: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:30:04.059708: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:30:04.059847: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:30:04.060105: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:30:04.060178: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:30:04.060248: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:30:04.060347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060444: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:30:04.060825: Inverter 0 count register writes 0
2026-08-18 15:30:04.078705: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 15:30:04.084563: Total inverter register writes now 867
2026-08-18 15:30:04.119981: Info: Completed run status Demand
2026-08-18 15:30:04.126987: Info: record_status Demand
2026-08-18 15:30:04.134177: Saved current settings to /config/predbat_config.json
2026-08-18 15:30:04.134548: Compare, best tariff: current metric 129.87p
2026-08-18 15:30:34.245279: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:30:34.245523: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:30:34.245594: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:30:34.245750: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:30:34.245792: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:30:34.245814: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:30:34.245836: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:32:34.473612: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:32:34.473846: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:32:34.473889: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:32:34.474028: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:32:34.474067: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:32:34.474089: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:32:34.474108: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:34:48.709092: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:34:48.709321: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:34:48.709363: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:34:48.709576: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:34:48.709639: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:34:48.709666: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:34:48.709685: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:35:00.805254: --------------- PredBat - update at 2026-08-18 15:35:00+01:00 with clock skew 0 minutes, minutes now 935
2026-08-18 15:35:00.806019: Saved current settings to /config/predbat_config.json
2026-08-18 15:35:00.806189: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 15:35:00.806277: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:35:00.806401: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:35:00.828614: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:35:00.828787: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:35:00.829031: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:35:00.829625: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:35:00.829811: Predbat mode is set to Control charge & discharge
2026-08-18 15:35:01.029501: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:35:01.029646: Using load_power data to fill gaps in load_today data
2026-08-18 15:35:01.884136: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:35:01.884310: Zero load period starting at 2026-08-17T10:54:00+0100 (1721 minutes) for 189 minutes with base value 206.6
2026-08-18 15:35:01.885593: Processing 721 30-minute periods for power integration
2026-08-18 15:35:02.065742: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:35:02.065856: Car charging hold False, threshold 6.0kWh
2026-08-18 15:35:02.065898: Current data so far today: load 9.7kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:35:02.083342: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:35:02.083444: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:35:02.084387: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:35:02.084538: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:35:02.084635: Standing charge is set to 46.63p
2026-08-18 15:35:02.182571: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:35:02.182811: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:35:02.183004: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:35:02.184788: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:35:02.184911: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:35:02.185024: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:35:02.190525: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:35:02.190920: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:35:02.234209: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:35:02.234311: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:35:02.235701: High export rate found rates in range 99p to -99p
2026-08-18 15:35:02.335808: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:35:02.335941: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:35:02.347538: Battery level now 6.72kWh, -1hr ago 7.36kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -0.82p, rate_forward 6.87p
2026-08-18 15:35:02.348106: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:35:02.396923: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:35:02.397037: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:35:02.493825: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:35:02.532320: Today's load divergence 98.27%, in-day adjustment 96.37%, damping 0.95x, yesterday 92.68% today 98.36% blend 35.07%
2026-08-18 15:35:02.532466: Today's predicted so far 9.96kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 9.96kWh forecast extra.
2026-08-18 15:35:02.532549: Today's actual load so far 9.69kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 15:35:02.583807: Inverter 0: Type SK Sunsynk
2026-08-18 15:35:02.584568: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:35:02.584795: Reserve min: 7%, battery_min: 7%
2026-08-18 15:35:02.584877: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:35:02.585134: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 537W, current battery voltage 51.2V, grid power -62W, load power 587W, PV Power 0W
2026-08-18 15:35:02.585294: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:35:02.585669: Inverter 0 scheduled charge enable is False
2026-08-18 15:35:02.586556: Inverter 0 charge windows currently []
2026-08-18 15:35:02.586642: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:35:02.586775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:35:02.586820: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:35:02.586862: Inverter 0 scheduled discharge enable is False
2026-08-18 15:35:02.586992: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:35:02.587061: Inverter 0 discharge windows currently []
2026-08-18 15:35:02.587087: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:35:02.587208: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:35:02.587240: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:35:02.656712: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:35:02.656829: Plan was last updated on 2026-08-18 15:25:00+01:00 and is now 10.0 minutes old
2026-08-18 15:35:02.657081: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:35:02.657128: Best export window [  ]
2026-08-18 15:35:02.657972: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:35:02.661165: Load divergence over 8.0 hours mean 458.35W, min 330.0W, max 1248.0W, std dev 107.25W, divergence 11.7%
2026-08-18 15:35:02.679869: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:35:02.679992: LoadML is_calculating False
2026-08-18 15:35:02.680068: Creating pool of 12 processes to match your CPU count
2026-08-18 15:35:02.796465: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 629.1p, metric_keep 126.42kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.55kWh, PV 0.0kWh
2026-08-18 15:35:02.902521: Battery has 7.83 hours left - now at 6.72kWh
2026-08-18 15:35:02.939168: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 658.34p, metric_keep 127.84kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.59kWh, PV 0.0kWh
2026-08-18 15:35:03.000506: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 370.91p, metric_keep 6.43kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.59kWh, PV 0.0kWh
2026-08-18 15:35:03.066627: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 348.88p, metric_keep 1.97kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.55kWh, PV 0.0kWh
2026-08-18 15:35:03.066710: Saving plan best values to HA entities
2026-08-18 15:35:03.235581: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:35:03.242118: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:35:03.248082: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.06kWh, export 0.0kWh, metric 348.88p, metric10 370.91p
2026-08-18 15:35:03.330869: Marginal costs baseline metric (no standing charge): 302.2481
2026-08-18 15:35:03.593136: Marginal energy costs matrix computed: min=8.0 max=38.75
2026-08-18 15:35:03.661284: Rate array import [{'start': 935, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 935, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:35:03.661999: - Your estimated bill for today is £1.70 and tomorrow is £1.94
2026-08-18 15:35:03.662056: - Import rates are very expensive (33.8p - 46.4p) for the next 7  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:35:03.662089: - The battery is currently at 42% and is in eco mode for the next 7  hours.
2026-08-18 15:35:03.662108: - For the next 48 hours there will be no solar generation.
2026-08-18 15:35:03.662125: - You have enough battery to reach the next charge.
2026-08-18 15:35:03.662146: - Your next charge slot will be in 7  hours where import rates will be cheap (8.0p).
2026-08-18 15:35:03.662164: 
2026-08-18 15:35:03.714684: Plan calculation took 1.06 seconds
2026-08-18 15:35:03.718170: No high rate period found
2026-08-18 15:35:03.767188: Import threshold used for optimisation was 8.0p
2026-08-18 15:35:03.815750: Low import rate windows [0: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 1: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 2: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 3: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 4: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 5: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 6: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 7: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 8: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 9: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 10: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 11: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 12: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 13: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 26: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 27: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 28: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 29: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 30: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 31: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 32: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 33: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 34: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 35: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 36: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 37: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 38: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 39: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 40: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 41: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 42: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 43: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 44: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 45: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 46: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 47: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 48: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 49: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 50: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 51: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 52: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 53: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 54: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 55: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 56: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 57: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 58: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 59: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 60: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 61: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 62: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 63: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 64: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 65: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 66: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 67: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 68: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 69: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 70: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 71: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 72: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 73: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 74: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 75: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 76: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 77: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 78: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 79: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 80: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 81: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 82: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 83: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 84: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 85: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 86: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 87: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 88: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 89: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 90: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 91: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 92: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 93: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 94: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75]
2026-08-18 15:35:03.821511: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-18 15:35:03.821638: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:35:03.821751: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:35:03.821991: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:35:03.822089: No export window planned
2026-08-18 15:35:03.822208: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:35:03.822243: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:35:03.822380: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:35:03.822568: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:35:03.822631: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:35:03.822700: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:35:03.822793: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.822833: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.822864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.822891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.822915: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.822945: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.822994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:03.823247: Inverter 0 count register writes 0
2026-08-18 15:35:03.836947: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 15:35:03.837101: Recompute is saving previous plan...
2026-08-18 15:35:03.840172: Best charge window [ 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0% ]
2026-08-18 15:35:03.840248: Best export window [  ]
2026-08-18 15:35:03.841086: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:35:03.844269: Load divergence over 8.0 hours mean 458.35W, min 330.0W, max 1248.0W, std dev 107.25W, divergence 11.7%
2026-08-18 15:35:03.861680: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:35:03.861769: LoadML is_calculating False
2026-08-18 15:35:03.861828: Creating pool of 12 processes to match your CPU count
2026-08-18 15:35:03.941151: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 15:35:03.942643: Optimise levels pass started at 2026-08-18 15:35:03
2026-08-18 15:35:03.942700: Optimise all windows, total charge 94 export 1
2026-08-18 15:35:04.346259: >> Region optimisation pass width 960 gives best_metric 395.21p, best_cost 441.64p, best_cycle 50.86kWh, best_import 36.96kWh
2026-08-18 15:35:04.616642: >> Region optimisation pass width 480 gives best_metric 395.21p, best_cost 441.64p, best_cycle 50.86kWh, best_import 36.96kWh
2026-08-18 15:35:04.963347: >> Region optimisation pass width 240 gives best_metric 395.21p, best_cost 441.64p, best_cycle 50.86kWh, best_import 36.96kWh
2026-08-18 15:35:05.939206: >> Region optimisation pass width 120 gives best_metric 395.21p, best_cost 441.64p, best_cycle 50.86kWh, best_import 36.96kWh
2026-08-18 15:35:05.939729: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 62
2026-08-18 15:35:05.939803: Optimise levels pass ended at 2026-08-18 15:35:05, duration 2.0 seconds tried 188 combinations
2026-08-18 15:35:05.939890: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 395.21p, best_keep 1.62kWh, best_cycle 50.86kWh, best_carbon 0kg, best_import 36.96kWh
2026-08-18 15:35:05.961599: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 15:35:12.548778: Tweak plan optimisation started metric 289.01p, cost 298.33p
2026-08-18 15:35:12.857999: Tweak optimisation finished metric 289.01p, cost 298.33p, metric_keep 1.24kWh, cycle 31.49kWh, carbon 0kg, import 19.02kWh, changed 8 window(s)
2026-08-18 15:35:12.877600: Swap charge optimisation started metric 289.01p, cost 298.33p, min_improvement_swap 0.1p
2026-08-18 15:35:19.217298: Swap charge optimisation finished metric 289.01p, cost 298.33p
2026-08-18 15:35:19.363671: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 286.87p -> 286.64p, plan now metric 290.29p, cost 294.14p, cycle 31.49kWh, import 18.5kWh
2026-08-18 15:35:19.375416: Raw charge windows [ 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:35:19.375988: Unclipped charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:35:19.376225: Unfiltered charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:35:19.376397: Filtered charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:35:19.413292: Previous plan best metric is 289.25 (cost 298.18) and new plan best metric is 289.01 (cost 298.33)
2026-08-18 15:35:19.413541: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 15:35:19.413696: Plan valid is now true after recompute was False
2026-08-18 15:35:19.444921: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 627.51p, metric_keep 126.17kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.35kWh, PV 0.0kWh
2026-08-18 15:35:19.548547: Battery has 7.83 hours left - now at 6.72kWh
2026-08-18 15:35:19.590549: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 656.68p, metric_keep 127.58kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.38kWh, PV 0.0kWh
2026-08-18 15:35:19.667053: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 363.69p, metric_keep 6.41kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.38kWh, PV 0.0kWh
2026-08-18 15:35:19.740761: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 340.63p, metric_keep 1.97kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.35kWh, PV 0.0kWh
2026-08-18 15:35:19.740843: Saving plan best values to HA entities
2026-08-18 15:35:19.886885: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:35:19.892128: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:35:19.897247: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.06kWh, export 0.0kWh, metric 340.63p, metric10 363.69p
2026-08-18 15:35:19.963409: Marginal costs baseline metric (no standing charge): 293.9935
2026-08-18 15:35:20.288639: Marginal energy costs matrix computed: min=8.0 max=38.75
2026-08-18 15:35:20.380550: Rate array import [{'start': 935, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 935, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:35:20.381185: - Your estimated bill for today is £1.70 and tomorrow is £1.94
2026-08-18 15:35:20.381228: - Import rates are very expensive (33.8p - 46.4p) for the next 7  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:35:20.381249: - The battery is currently at 42% and is in eco mode for the next 7  hours.
2026-08-18 15:35:20.381267: - For the next 48 hours there will be no solar generation.
2026-08-18 15:35:20.381284: - You have enough battery to reach the next charge.
2026-08-18 15:35:20.381309: - Your next charge slot will be in 7  hours where import rates will be cheap (8.0p).
2026-08-18 15:35:20.381327: 
2026-08-18 15:35:20.430449: Plan calculation took 16.59 seconds
2026-08-18 15:35:20.430781: Inverter 0: Type SK Sunsynk
2026-08-18 15:35:20.430826: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:35:20.431030: Reserve min: 7%, battery_min: 7%
2026-08-18 15:35:20.431106: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:35:20.431416: Inverter 0 SoC: 6.61kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power 469W, current battery voltage 51.2V, grid power -53W, load power 512W, PV Power 0W
2026-08-18 15:35:20.431644: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:35:20.431745: Inverter 0 scheduled charge enable is False
2026-08-18 15:35:20.431781: Inverter 0 charge windows currently []
2026-08-18 15:35:20.431812: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:35:20.432024: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:35:20.432082: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:35:20.432123: Inverter 0 scheduled discharge enable is False
2026-08-18 15:35:20.432258: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:35:20.432296: Inverter 0 discharge windows currently []
2026-08-18 15:35:20.432319: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:35:20.432338: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:35:20.432371: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:35:20.487822: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-18 15:35:20.488032: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:35:20.488108: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:35:20.488292: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:35:20.488373: No export window planned
2026-08-18 15:35:20.488500: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:35:20.488538: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:35:20.488673: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:35:20.488852: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:35:20.488907: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:35:20.488970: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:35:20.489058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489155: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489185: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489210: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:35:20.489545: Inverter 0 count register writes 0
2026-08-18 15:35:20.508971: Total inverter register writes now 867
2026-08-18 15:35:20.538420: Info: Completed run status Demand
2026-08-18 15:35:20.544181: Info: record_status Demand
2026-08-18 15:35:20.550324: Saved current settings to /config/predbat_config.json
2026-08-18 15:35:20.550610: Compare, best tariff: current metric 129.87p
2026-08-18 15:36:03.660140: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:36:03.660358: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:36:03.660400: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:36:03.660551: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:36:03.660591: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:36:03.660614: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:36:03.660633: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:38:03.896262: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:38:03.896512: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:38:03.896551: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:38:03.896724: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:38:03.896775: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:38:03.896833: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:38:03.896865: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:40:00.134321: --------------- PredBat - update at 2026-08-18 15:40:00+01:00 with clock skew 0 minutes, minutes now 940
2026-08-18 15:40:00.135276: Saved current settings to /config/predbat_config.json
2026-08-18 15:40:00.135430: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 15:40:00.135580: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:40:00.135688: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:40:00.157616: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:40:00.157743: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:40:00.157907: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:40:00.158681: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:40:00.158884: Predbat mode is set to Control charge & discharge
2026-08-18 15:40:00.396223: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:40:00.397566: Using load_power data to fill gaps in load_today data
2026-08-18 15:40:01.298486: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:40:01.298656: Zero load period starting at 2026-08-17T10:54:00+0100 (1726 minutes) for 189 minutes with base value 206.575
2026-08-18 15:40:01.300033: Processing 721 30-minute periods for power integration
2026-08-18 15:40:01.460379: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:40:01.460498: Car charging hold False, threshold 6.0kWh
2026-08-18 15:40:01.460536: Current data so far today: load 9.75kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:40:01.474138: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:40:01.474212: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:40:01.474896: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:40:01.474969: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:40:01.475015: Standing charge is set to 46.63p
2026-08-18 15:40:01.563739: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:40:01.564130: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:40:01.564388: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:40:01.565452: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:40:01.565574: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:40:01.565683: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:40:01.570973: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:40:01.571951: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:40:01.611001: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:40:01.611104: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:40:01.612226: High export rate found rates in range 99p to -99p
2026-08-18 15:40:01.704947: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:40:01.705060: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:40:01.716007: Battery level now 6.72kWh, -1hr ago 7.36kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -0.82p, rate_forward 6.87p
2026-08-18 15:40:01.716358: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.7p, import 0.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:40:01.770874: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:40:01.771000: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:40:01.859378: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:40:01.893620: Today's load divergence 98.25%, in-day adjustment 96.37%, damping 0.95x, yesterday 92.68% today 98.34% blend 34.72%
2026-08-18 15:40:01.893692: Today's predicted so far 9.97kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 9.97kWh forecast extra.
2026-08-18 15:40:01.893723: Today's actual load so far 9.7kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 15:40:01.925776: Inverter 0: Type SK Sunsynk
2026-08-18 15:40:01.925844: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:40:01.926007: Reserve min: 7%, battery_min: 7%
2026-08-18 15:40:01.926067: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:40:01.926306: Inverter 0 SoC: 6.61kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power 840W, current battery voltage 51.2V, grid power -50W, load power 888W, PV Power 0W
2026-08-18 15:40:01.926455: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:40:01.926559: Inverter 0 scheduled charge enable is False
2026-08-18 15:40:01.926588: Inverter 0 charge windows currently []
2026-08-18 15:40:01.926614: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:40:01.926724: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:40:01.926759: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:40:01.926795: Inverter 0 scheduled discharge enable is False
2026-08-18 15:40:01.926913: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:40:01.926941: Inverter 0 discharge windows currently []
2026-08-18 15:40:01.926977: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:40:01.926999: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:40:01.927016: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:40:01.985490: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:40:01.985604: Plan was last updated on 2026-08-18 15:35:00+01:00 and is now 5.0 minutes old
2026-08-18 15:40:01.985877: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:40:01.985928: Best export window [  ]
2026-08-18 15:40:01.987049: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:40:01.990521: Load divergence over 8.0 hours mean 461.32W, min 345.0W, max 1120.2W, std dev 102.33W, divergence 11.09%
2026-08-18 15:40:02.009279: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:40:02.009361: LoadML is_calculating False
2026-08-18 15:40:02.009418: Creating pool of 12 processes to match your CPU count
2026-08-18 15:40:02.117211: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 630.15p, metric_keep 126.66kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 15:40:02.224136: Battery has 7.67 hours left - now at 6.61kWh
2026-08-18 15:40:02.267641: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 659.27p, metric_keep 128.08kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.48kWh, PV 0.0kWh
2026-08-18 15:40:02.339727: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 368.97p, metric_keep 6.78kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.48kWh, PV 0.0kWh
2026-08-18 15:40:02.418196: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 346.7p, metric_keep 2.32kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 15:40:02.418281: Saving plan best values to HA entities
2026-08-18 15:40:02.569382: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:40:02.575481: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:40:02.581116: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.12kWh, export 0.0kWh, metric 346.7p, metric10 368.97p
2026-08-18 15:40:02.656485: Marginal costs baseline metric (no standing charge): 300.0633
2026-08-18 15:40:02.923611: Marginal energy costs matrix computed: min=8.0 max=39.34
2026-08-18 15:40:03.024003: Rate array import [{'start': 940, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 940, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:40:03.024855: - Your estimated bill for today is £1.72 and tomorrow is £1.94
2026-08-18 15:40:03.024903: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:40:03.024927: - The battery is currently at 41% and is in eco mode for the next 7 and three quarters hours.
2026-08-18 15:40:03.024946: - For the next 48 hours there will be no solar generation.
2026-08-18 15:40:03.024964: - You have enough battery to reach the next charge.
2026-08-18 15:40:03.024987: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 15:40:03.025004: 
2026-08-18 15:40:03.075610: Plan calculation took 1.09 seconds
2026-08-18 15:40:03.079057: No high rate period found
2026-08-18 15:40:03.120677: Import threshold used for optimisation was 8.0p
2026-08-18 15:40:03.167973: Low import rate windows [0: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 1: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 2: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 3: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 4: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 5: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 6: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 7: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 8: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 9: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 10: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 11: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 12: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 13: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 26: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 27: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 28: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 29: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 30: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 31: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 32: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 33: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 34: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 35: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 36: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 37: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 38: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 39: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 40: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 41: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 42: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 43: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 44: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 45: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 46: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 47: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 48: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 49: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 50: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 51: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 52: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 53: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 54: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 55: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 56: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 57: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 58: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 59: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 60: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 61: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 62: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 63: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 64: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 65: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 66: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 67: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 68: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 69: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 70: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 71: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 72: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 73: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 74: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 75: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 76: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 77: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 78: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 79: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 80: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 81: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 82: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 83: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 84: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 85: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 86: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 87: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 88: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 89: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 90: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 91: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 92: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 93: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 94: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75]
2026-08-18 15:40:03.173419: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-18 15:40:03.173558: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:40:03.173671: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:40:03.173979: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:40:03.174082: No export window planned
2026-08-18 15:40:03.174261: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:40:03.174315: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:40:03.174456: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:40:03.174673: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:40:03.174733: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:40:03.174803: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:40:03.174902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.174942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.174973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175036: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175286: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:40:03.175336: Inverter 0 count register writes 0
2026-08-18 15:40:03.190199: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 15:40:03.195182: Total inverter register writes now 867
2026-08-18 15:40:03.226202: Info: Completed run status Demand
2026-08-18 15:40:03.231665: Info: record_status Demand
2026-08-18 15:40:03.237675: Saved current settings to /config/predbat_config.json
2026-08-18 15:40:03.237942: Compare, best tariff: current metric 129.87p
2026-08-18 15:40:34.376097: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:40:34.376316: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:40:34.376385: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:40:34.376557: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:40:34.376600: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:40:34.376622: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:40:34.376641: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:42:34.588585: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:42:34.588822: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:42:34.588864: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:42:34.588992: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:42:34.589029: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:42:34.589050: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:42:34.589068: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:44:48.833519: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:44:48.833794: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:44:48.833837: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:44:48.833977: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:44:48.834014: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:44:48.834036: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:44:48.834054: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:45:00.918341: --------------- PredBat - update at 2026-08-18 15:45:00+01:00 with clock skew 0 minutes, minutes now 945
2026-08-18 15:45:00.919044: Saved current settings to /config/predbat_config.json
2026-08-18 15:45:00.919160: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 15:45:00.919221: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:45:00.919298: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:45:00.937408: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:45:00.937539: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:45:00.937747: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:45:00.938277: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:45:00.938434: Predbat mode is set to Control charge & discharge
2026-08-18 15:45:01.112795: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:45:01.113169: Using load_power data to fill gaps in load_today data
2026-08-18 15:45:01.975424: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:45:01.975611: Zero load period starting at 2026-08-17T10:54:00+0100 (1731 minutes) for 189 minutes with base value 206.55
2026-08-18 15:45:01.976889: Processing 721 30-minute periods for power integration
2026-08-18 15:45:02.158988: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:45:02.159109: Car charging hold False, threshold 6.0kWh
2026-08-18 15:45:02.159152: Current data so far today: load 9.8kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:45:02.175406: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:45:02.175505: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:45:02.176302: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:45:02.176399: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:45:02.176477: Standing charge is set to 46.63p
2026-08-18 15:45:02.264199: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:45:02.264432: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:45:02.264647: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:45:02.265700: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:45:02.265805: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:45:02.265908: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:45:02.271078: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:45:02.271507: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:45:02.316092: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:45:02.316202: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:45:02.317487: High export rate found rates in range 99p to -99p
2026-08-18 15:45:02.417897: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:45:02.418013: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:45:02.455829: Battery level now 6.61kWh, -1hr ago 7.2kWh, at midnight 6.84kWh, battery value change in the last hour -4.07p, change today -1.59p, rate_forward 6.87p
2026-08-18 15:45:02.456270: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.56p, import 0.56p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:45:02.509487: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:45:02.509613: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:45:02.602641: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:45:02.648327: Today's load divergence 98.51%, in-day adjustment 96.55%, damping 0.95x, yesterday 92.68% today 98.58% blend 34.38%
2026-08-18 15:45:02.648418: Today's predicted so far 9.98kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 9.98kWh forecast extra.
2026-08-18 15:45:02.648451: Today's actual load so far 9.74kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 15:45:02.678585: Inverter 0: Type SK Sunsynk
2026-08-18 15:45:02.678673: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:45:02.678877: Reserve min: 7%, battery_min: 7%
2026-08-18 15:45:02.678991: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:45:02.679268: Inverter 0 SoC: 6.56kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power 784W, current battery voltage 51.2V, grid power -54W, load power 833W, PV Power 0W
2026-08-18 15:45:02.679580: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:45:02.679672: Inverter 0 scheduled charge enable is False
2026-08-18 15:45:02.679708: Inverter 0 charge windows currently []
2026-08-18 15:45:02.679756: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:45:02.679981: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:45:02.680048: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:45:02.680092: Inverter 0 scheduled discharge enable is False
2026-08-18 15:45:02.680224: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:45:02.680286: Inverter 0 discharge windows currently []
2026-08-18 15:45:02.680327: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:45:02.680375: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:45:02.680411: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:45:02.737676: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:45:02.737779: Plan was last updated on 2026-08-18 15:35:00+01:00 and is now 10.0 minutes old
2026-08-18 15:45:02.737987: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:45:02.738027: Best export window [  ]
2026-08-18 15:45:02.738879: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:45:02.742376: Load divergence over 8.0 hours mean 464.83W, min 331.8W, max 988.2W, std dev 107.54W, divergence 11.57%
2026-08-18 15:45:02.761712: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:45:02.761803: LoadML is_calculating False
2026-08-18 15:45:02.761883: Creating pool of 12 processes to match your CPU count
2026-08-18 15:45:02.881415: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 631.62p, metric_keep 126.88kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.58kWh, PV 0.0kWh
2026-08-18 15:45:03.016923: Battery has 7.58 hours left - now at 6.56kWh
2026-08-18 15:45:03.060986: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 660.74p, metric_keep 128.29kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.61kWh, PV 0.0kWh
2026-08-18 15:45:03.138198: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 373.22p, metric_keep 6.9kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.61kWh, PV 0.0kWh
2026-08-18 15:45:03.219067: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 351.4p, metric_keep 2.42kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.58kWh, PV 0.0kWh
2026-08-18 15:45:03.219134: Saving plan best values to HA entities
2026-08-18 15:45:03.354985: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:45:03.359437: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 15:45:03.363728: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.48kWh, house 0.13kWh, export 0.0kWh, metric 351.4p, metric10 373.22p
2026-08-18 15:45:03.429118: Marginal costs baseline metric (no standing charge): 304.769
2026-08-18 15:45:03.696212: Marginal energy costs matrix computed: min=8.0 max=39.85
2026-08-18 15:45:03.763007: Rate array import [{'start': 945, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 945, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:45:03.763579: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 15:45:03.763616: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:45:03.763636: - The battery is currently at 41% and is in eco mode for the next 7 and three quarters hours.
2026-08-18 15:45:03.763651: - For the next 48 hours there will be no solar generation.
2026-08-18 15:45:03.763665: - You have enough battery to reach the next charge.
2026-08-18 15:45:03.763691: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 15:45:03.763749: 
2026-08-18 15:45:03.815342: Plan calculation took 1.08 seconds
2026-08-18 15:45:03.818262: No high rate period found
2026-08-18 15:45:03.858624: Import threshold used for optimisation was 8.0p
2026-08-18 15:45:03.903095: Low import rate windows [0: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 1: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 2: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 3: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 4: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 5: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 6: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 7: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 8: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 9: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 10: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 11: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 12: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 13: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 26: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 27: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 28: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 29: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 30: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 31: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 32: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 33: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 34: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 35: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 36: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 37: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 38: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 39: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 40: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 41: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 42: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 43: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 44: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 45: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 46: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 47: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 48: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 49: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 50: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 51: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 52: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 53: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 54: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 55: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 56: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 57: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 58: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 59: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 60: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 61: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 62: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 63: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 64: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 65: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 66: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 67: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 68: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 69: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 70: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 71: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 72: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 73: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 74: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 75: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 76: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 77: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 78: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 79: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 80: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 81: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 82: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 83: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 84: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 85: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 86: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 87: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 88: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 89: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 90: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 91: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 92: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 93: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 94: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75]
2026-08-18 15:45:03.908899: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-18 15:45:03.909022: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:45:03.909131: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:45:03.909384: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:45:03.909499: No export window planned
2026-08-18 15:45:03.909633: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:45:03.909667: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:45:03.909880: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:45:03.910082: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:45:03.910144: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:45:03.910248: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:45:03.910395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910519: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910550: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910574: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910739: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:03.910864: Inverter 0 count register writes 0
2026-08-18 15:45:03.927978: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 15:45:03.928142: Recompute is saving previous plan...
2026-08-18 15:45:03.931436: Best charge window [ 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0% ]
2026-08-18 15:45:03.931545: Best export window [  ]
2026-08-18 15:45:03.932498: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:45:03.935625: Load divergence over 8.0 hours mean 464.83W, min 331.8W, max 988.2W, std dev 107.54W, divergence 11.57%
2026-08-18 15:45:03.952925: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:45:03.953036: LoadML is_calculating False
2026-08-18 15:45:03.953129: Creating pool of 12 processes to match your CPU count
2026-08-18 15:45:04.049120: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 15:45:04.051018: Optimise levels pass started at 2026-08-18 15:45:04
2026-08-18 15:45:04.051086: Optimise all windows, total charge 94 export 1
2026-08-18 15:45:04.425283: >> Region optimisation pass width 960 gives best_metric 398.82p, best_cost 446.25p, best_cycle 51.06kWh, best_import 37.3kWh
2026-08-18 15:45:04.612389: >> Region optimisation pass width 480 gives best_metric 398.82p, best_cost 446.25p, best_cycle 51.06kWh, best_import 37.3kWh
2026-08-18 15:45:04.918435: >> Region optimisation pass width 240 gives best_metric 398.82p, best_cost 446.25p, best_cycle 51.06kWh, best_import 37.3kWh
2026-08-18 15:45:05.776856: >> Region optimisation pass width 120 gives best_metric 398.82p, best_cost 446.25p, best_cycle 51.06kWh, best_import 37.3kWh
2026-08-18 15:45:05.777063: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 62
2026-08-18 15:45:05.777123: Optimise levels pass ended at 2026-08-18 15:45:05, duration 1.7 seconds tried 188 combinations
2026-08-18 15:45:05.777183: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 398.82p, best_keep 2.08kWh, best_cycle 51.06kWh, best_carbon 0kg, best_import 37.3kWh
2026-08-18 15:45:05.793940: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 15:45:11.913555: Tweak plan optimisation started metric 291.57p, cost 300.96p
2026-08-18 15:45:12.242437: Tweak optimisation finished metric 291.57p, cost 300.96p, metric_keep 1.22kWh, cycle 31.32kWh, carbon 0kg, import 19.1kWh, changed 8 window(s)
2026-08-18 15:45:12.262001: Swap charge optimisation started metric 291.57p, cost 300.96p, min_improvement_swap 0.1p
2026-08-18 15:45:18.447573: Swap charge optimisation finished metric 291.57p, cost 300.96p
2026-08-18 15:45:18.592532: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 289.48p -> 289.32p, plan now metric 292.0p, cost 298.95p, cycle 31.58kWh, import 18.84kWh
2026-08-18 15:45:18.609595: Raw charge windows [ 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:45:18.610515: Unclipped charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:45:18.610909: Unfiltered charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:45:18.611221: Filtered charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:45:18.670830: Previous plan best metric is 292.17 (cost 300.65) and new plan best metric is 291.57 (cost 300.96)
2026-08-18 15:45:18.671071: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 15:45:18.671227: Plan valid is now true after recompute was False
2026-08-18 15:45:18.702981: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 630.02p, metric_keep 126.63kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.38kWh, PV 0.0kWh
2026-08-18 15:45:18.808414: Battery has 7.58 hours left - now at 6.56kWh
2026-08-18 15:45:18.850531: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 659.06p, metric_keep 128.03kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.4kWh, PV 0.0kWh
2026-08-18 15:45:18.921157: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 365.98p, metric_keep 6.88kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.4kWh, PV 0.0kWh
2026-08-18 15:45:18.993887: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 343.13p, metric_keep 2.42kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.38kWh, PV 0.0kWh
2026-08-18 15:45:18.993961: Saving plan best values to HA entities
2026-08-18 15:45:19.134625: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:45:19.139626: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 15:45:19.143965: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.45kWh, house 0.13kWh, export 0.0kWh, metric 343.13p, metric10 365.98p
2026-08-18 15:45:19.206320: Marginal costs baseline metric (no standing charge): 296.4936
2026-08-18 15:45:19.418033: Marginal energy costs matrix computed: min=8.0 max=39.85
2026-08-18 15:45:19.481376: Rate array import [{'start': 945, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 945, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:45:19.482047: - Your estimated bill for today is £1.73 and tomorrow is £1.94
2026-08-18 15:45:19.482105: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:45:19.482128: - The battery is currently at 41% and is in eco mode for the next 7 and three quarters hours.
2026-08-18 15:45:19.482144: - For the next 48 hours there will be no solar generation.
2026-08-18 15:45:19.482159: - You have enough battery to reach the next charge.
2026-08-18 15:45:19.482173: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 15:45:19.482188: 
2026-08-18 15:45:19.535030: Plan calculation took 15.61 seconds
2026-08-18 15:45:19.535345: Inverter 0: Type SK Sunsynk
2026-08-18 15:45:19.535391: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:45:19.535649: Reserve min: 7%, battery_min: 7%
2026-08-18 15:45:19.535728: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:45:19.536074: Inverter 0 SoC: 6.56kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power 793W, current battery voltage 51.2V, grid power -54W, load power 844W, PV Power 0W
2026-08-18 15:45:19.536293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:45:19.536399: Inverter 0 scheduled charge enable is False
2026-08-18 15:45:19.536440: Inverter 0 charge windows currently []
2026-08-18 15:45:19.536487: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:45:19.536623: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:45:19.536661: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:45:19.536703: Inverter 0 scheduled discharge enable is False
2026-08-18 15:45:19.536850: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:45:19.536885: Inverter 0 discharge windows currently []
2026-08-18 15:45:19.536904: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:45:19.536919: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:45:19.536936: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:45:19.582740: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-18 15:45:19.582883: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:45:19.582955: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:45:19.583152: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:45:19.583238: No export window planned
2026-08-18 15:45:19.583366: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:45:19.583402: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:45:19.583576: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:45:19.583755: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:45:19.583818: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:45:19.583892: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:45:19.584044: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584146: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584172: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584215: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584255: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584414: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:45:19.584640: Inverter 0 count register writes 0
2026-08-18 15:45:19.601586: Total inverter register writes now 867
2026-08-18 15:45:19.628395: Info: Completed run status Demand
2026-08-18 15:45:19.633610: Info: record_status Demand
2026-08-18 15:45:19.638890: Saved current settings to /config/predbat_config.json
2026-08-18 15:45:19.639107: Compare, best tariff: current metric 129.87p
2026-08-18 15:46:03.757693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:46:03.757953: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:46:03.757998: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:46:03.758159: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:46:03.758209: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:46:03.758242: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:46:03.758267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:48:03.966009: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:48:03.966332: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:48:03.966401: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:48:03.966616: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:48:03.966663: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:48:03.966686: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:48:03.966704: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:50:00.193165: --------------- PredBat - update at 2026-08-18 15:50:00+01:00 with clock skew 0 minutes, minutes now 950
2026-08-18 15:50:00.194559: Saved current settings to /config/predbat_config.json
2026-08-18 15:50:00.194701: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 15:50:00.194778: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:50:00.194848: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:50:00.216537: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:50:00.216692: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:50:00.216957: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:50:00.217512: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:50:00.217700: Predbat mode is set to Control charge & discharge
2026-08-18 15:50:00.446243: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:50:00.446380: Using load_power data to fill gaps in load_today data
2026-08-18 15:50:01.343016: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:50:01.343207: Zero load period starting at 2026-08-17T10:54:00+0100 (1736 minutes) for 189 minutes with base value 206.525
2026-08-18 15:50:01.344962: Processing 721 30-minute periods for power integration
2026-08-18 15:50:01.566420: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:50:01.566561: Car charging hold False, threshold 6.0kWh
2026-08-18 15:50:01.566606: Current data so far today: load 9.85kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:50:01.585197: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:50:01.585294: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:50:01.586179: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:50:01.586292: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:50:01.586369: Standing charge is set to 46.63p
2026-08-18 15:50:01.677133: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:50:01.677363: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:50:01.677570: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:50:01.678964: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:50:01.679081: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:50:01.679194: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:50:01.685656: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:50:01.686508: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:50:01.731442: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:50:01.731572: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:50:01.733313: High export rate found rates in range 99p to -99p
2026-08-18 15:50:01.849280: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:50:01.849402: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:50:01.865474: Battery level now 6.56kWh, -1hr ago 7.2kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -1.92p, rate_forward 6.87p
2026-08-18 15:50:01.865896: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.42p, import 0.42p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:50:01.922087: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:50:01.922210: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:50:02.011794: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:50:02.051150: Today's load divergence 98.63%, in-day adjustment 96.65%, damping 0.95x, yesterday 92.68% today 98.7% blend 34.03%
2026-08-18 15:50:02.051240: Today's predicted so far 10.0kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 10.0kWh forecast extra.
2026-08-18 15:50:02.051272: Today's actual load so far 9.79kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 15:50:02.084019: Inverter 0: Type SK Sunsynk
2026-08-18 15:50:02.084094: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:50:02.084260: Reserve min: 7%, battery_min: 7%
2026-08-18 15:50:02.084328: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:50:02.084599: Inverter 0 SoC: 6.56kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power 799W, current battery voltage 51.2V, grid power -54W, load power 851W, PV Power 0W
2026-08-18 15:50:02.084748: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:50:02.084829: Inverter 0 scheduled charge enable is False
2026-08-18 15:50:02.084857: Inverter 0 charge windows currently []
2026-08-18 15:50:02.084882: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:50:02.084985: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:50:02.085020: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:50:02.085055: Inverter 0 scheduled discharge enable is False
2026-08-18 15:50:02.085177: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:50:02.085213: Inverter 0 discharge windows currently []
2026-08-18 15:50:02.085235: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:50:02.085261: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:50:02.085278: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:50:02.140390: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:50:02.140504: Plan was last updated on 2026-08-18 15:45:00+01:00 and is now 5.0 minutes old
2026-08-18 15:50:02.140706: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:50:02.140746: Best export window [  ]
2026-08-18 15:50:02.141497: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:50:02.145384: Load divergence over 8.0 hours mean 469.48W, min 332.4W, max 1084.2W, std dev 119.6W, divergence 12.74%
2026-08-18 15:50:02.170366: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:50:02.170510: LoadML is_calculating False
2026-08-18 15:50:02.170588: Creating pool of 12 processes to match your CPU count
2026-08-18 15:50:02.292501: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 629.05p, metric_keep 126.47kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.47kWh, PV 0.0kWh
2026-08-18 15:50:02.427692: Battery has 7.58 hours left - now at 6.56kWh
2026-08-18 15:50:02.477193: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 658.07p, metric_keep 127.85kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.5kWh, PV 0.0kWh
2026-08-18 15:50:02.563187: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 367.71p, metric_keep 6.55kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.5kWh, PV 0.0kWh
2026-08-18 15:50:02.655359: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 345.65p, metric_keep 2.12kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.47kWh, PV 0.0kWh
2026-08-18 15:50:02.655442: Saving plan best values to HA entities
2026-08-18 15:50:02.900706: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:50:02.912807: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 15:50:02.921204: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.08kWh, export 0.0kWh, metric 345.65p, metric10 367.71p
2026-08-18 15:50:02.987606: Marginal costs baseline metric (no standing charge): 299.0127
2026-08-18 15:50:03.204799: Marginal energy costs matrix computed: min=8.0 max=40.28
2026-08-18 15:50:03.270779: Rate array import [{'start': 950, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 950, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:50:03.271486: - Your estimated bill for today is £1.72 and tomorrow is £1.94
2026-08-18 15:50:03.271529: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:50:03.271552: - The battery is currently at 41% and is in eco mode for the next 7 and three quarters hours.
2026-08-18 15:50:03.271571: - For the next 48 hours there will be no solar generation.
2026-08-18 15:50:03.271588: - You have enough battery to reach the next charge.
2026-08-18 15:50:03.271604: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 15:50:03.271622: 
2026-08-18 15:50:03.327550: Plan calculation took 1.19 seconds
2026-08-18 15:50:03.331722: No high rate period found
2026-08-18 15:50:03.379141: Import threshold used for optimisation was 8.0p
2026-08-18 15:50:03.428358: Low import rate windows [0: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 1: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 2: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 3: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 4: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 5: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 6: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 7: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 8: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 9: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 10: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 11: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 12: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 13: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 26: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 27: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 28: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 29: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 30: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 31: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 32: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 33: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 34: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 35: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 36: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 37: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 38: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 39: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 40: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 41: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 42: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 43: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 44: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 45: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 46: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 47: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 48: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 49: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 50: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 51: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 52: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 53: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 54: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 55: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 56: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 57: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 58: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 59: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 60: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 61: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 62: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 63: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 64: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 65: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 66: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 67: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 68: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 69: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 70: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 71: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 72: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 73: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 74: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 75: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 76: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 77: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 78: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 79: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 80: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 81: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 82: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 83: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 84: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 85: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 86: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 87: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 88: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 89: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 90: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 91: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 92: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 93: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 94: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75]
2026-08-18 15:50:03.433589: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-18 15:50:03.433708: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:50:03.433799: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:50:03.434039: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:50:03.434139: No export window planned
2026-08-18 15:50:03.434267: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:50:03.434302: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:50:03.434438: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:50:03.434634: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:50:03.434695: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:50:03.434764: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:50:03.434862: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.434901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.434932: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.434957: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.434987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435012: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435061: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435291: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:50:03.435313: Inverter 0 count register writes 0
2026-08-18 15:50:03.450339: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 15:50:03.455242: Total inverter register writes now 867
2026-08-18 15:50:03.487645: Info: Completed run status Demand
2026-08-18 15:50:03.493661: Info: record_status Demand
2026-08-18 15:50:03.500126: Saved current settings to /config/predbat_config.json
2026-08-18 15:50:03.500495: Compare, best tariff: current metric 129.87p
2026-08-18 15:50:34.599805: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:50:34.600194: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:50:34.600278: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:50:34.600520: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:50:34.600572: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:50:34.600605: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:50:34.600632: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:52:48.870868: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:52:48.871179: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:52:48.871238: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:52:48.871440: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:52:48.871512: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:52:48.871552: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:52:48.871574: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:53:35.710057: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 15:53:36.775034: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:53:36.775263: Zero load period starting at 2026-08-17T10:54:00+0100 (1736 minutes) for 189 minutes with base value 396.375
2026-08-18 15:53:36.776376: Processing 1345 30-minute periods for power integration
2026-08-18 15:53:36.860222: ML Component: Car charging hold False, car energy reported load False
2026-08-18 15:53:36.940788: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:53:37.031080: ML Temperature data points: 49451
2026-08-18 15:53:37.296126: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 15:53:37.332477: ML Component: Data fetch completed, load data age 60.0 days, 17301 data points
2026-08-18 15:53:37.332733: ML Component: No training needed, model age is 0.84 hours
2026-08-18 15:53:37.332918: ML Component: Generating predictions load data age 60.0 days, 17301 data points
2026-08-18 15:53:37.451143: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0619 max_dow {0: 0.087236111173696, 1: 0.0929083333182666, 2: 0.10695937459506094, 3: 0.10022500038649887, 4: 0.13687812535744162, 5: 0.09935833360569346, 6: 0.10263055489617919}
2026-08-18 15:53:37.960086: ML Component: Generated 576 predictions (total 29.07 kWh over 48h)
2026-08-18 15:53:38.002517: ML Component: Prediction cycle completed
2026-08-18 15:53:38.108799: ML Component: Saved 17301 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 15:54:49.539021: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:54:49.539343: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:54:49.539412: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:54:49.539659: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:54:49.539706: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:54:49.539734: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:54:49.539758: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:55:00.644205: --------------- PredBat - update at 2026-08-18 15:55:00+01:00 with clock skew 0 minutes, minutes now 955
2026-08-18 15:55:00.644819: Saved current settings to /config/predbat_config.json
2026-08-18 15:55:00.644941: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 15:55:00.645014: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 15:55:00.645078: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 15:55:00.664135: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 15:55:00.664252: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 15:55:00.664411: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 15:55:00.664904: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 15:55:00.665022: Predbat mode is set to Control charge & discharge
2026-08-18 15:55:00.840703: Found 21602 load_today datapoints going back 28 days
2026-08-18 15:55:00.840821: Using load_power data to fill gaps in load_today data
2026-08-18 15:55:01.796675: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 15:55:01.796934: Zero load period starting at 2026-08-17T10:54:00+0100 (1741 minutes) for 189 minutes with base value 206.5
2026-08-18 15:55:01.799048: Processing 721 30-minute periods for power integration
2026-08-18 15:55:02.033643: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 15:55:02.033765: Car charging hold False, threshold 6.0kWh
2026-08-18 15:55:02.033813: Current data so far today: load 9.9kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 15:55:02.052147: Car 0 using Octopus Intelligent is unplugged
2026-08-18 15:55:02.052577: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 15:55:02.053493: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:55:02.053604: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 15:55:02.053661: Standing charge is set to 46.63p
2026-08-18 15:55:02.164253: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:55:02.164575: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:55:02.164796: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 15:55:02.165985: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 15:55:02.166084: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 15:55:02.166221: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 15:55:02.171887: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 15:55:02.172972: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 15:55:02.221114: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 15:55:02.221219: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 15:55:02.222366: High export rate found rates in range 99p to -99p
2026-08-18 15:55:02.317007: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 15:55:02.317132: Car 0 on Octopus Intelligent, no active plan
2026-08-18 15:55:02.330289: Battery level now 6.56kWh, -1hr ago 7.2kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -1.92p, rate_forward 6.87p
2026-08-18 15:55:02.330676: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.28p, import 0.28p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 15:55:02.393446: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 15:55:02.393650: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 15:55:02.482325: Using weighted-bucket historical load forecast over 14 days
2026-08-18 15:55:02.515842: Today's load divergence 98.82%, in-day adjustment 96.79%, damping 0.95x, yesterday 92.68% today 98.88% blend 33.68%
2026-08-18 15:55:02.515936: Today's predicted so far 10.03kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 10.03kWh forecast extra.
2026-08-18 15:55:02.515973: Today's actual load so far 9.85kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 15:55:02.545535: Inverter 0: Type SK Sunsynk
2026-08-18 15:55:02.545615: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:55:02.545790: Reserve min: 7%, battery_min: 7%
2026-08-18 15:55:02.545872: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:55:02.546135: Inverter 0 SoC: 6.42kW 40%, current charge rate 5000W, current discharge rate 5250W, current battery power 837W, current battery voltage 51.2V, grid power -58W, load power 893W, PV Power 0W
2026-08-18 15:55:02.546300: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:55:02.546389: Inverter 0 scheduled charge enable is False
2026-08-18 15:55:02.546424: Inverter 0 charge windows currently []
2026-08-18 15:55:02.546492: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:55:02.546671: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:55:02.546713: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:55:02.546778: Inverter 0 scheduled discharge enable is False
2026-08-18 15:55:02.546913: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:55:02.546950: Inverter 0 discharge windows currently []
2026-08-18 15:55:02.546974: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:55:02.546997: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:55:02.547015: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:55:02.601272: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 15:55:02.601369: Plan was last updated on 2026-08-18 15:45:00+01:00 and is now 10.0 minutes old
2026-08-18 15:55:02.601692: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 15:55:02.601741: Best export window [  ]
2026-08-18 15:55:02.602812: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:55:02.605803: Load divergence over 8.0 hours mean 474.26W, min 337.2W, max 1255.8W, std dev 134.46W, divergence 14.18%
2026-08-18 15:55:02.621810: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:55:02.621885: LoadML is_calculating False
2026-08-18 15:55:02.621958: Creating pool of 12 processes to match your CPU count
2026-08-18 15:55:02.719550: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.72p, metric_keep 127.15kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.59kWh, PV 0.0kWh
2026-08-18 15:55:02.867786: Battery has 7.42 hours left - now at 6.42kWh
2026-08-18 15:55:02.906585: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 662.76p, metric_keep 128.49kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.62kWh, PV 0.0kWh
2026-08-18 15:55:02.984703: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 375.24p, metric_keep 7.09kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.62kWh, PV 0.0kWh
2026-08-18 15:55:03.057098: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 353.12p, metric_keep 2.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.59kWh, PV 0.0kWh
2026-08-18 15:55:03.057164: Saving plan best values to HA entities
2026-08-18 15:55:03.193530: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:55:03.198309: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:55:03.203263: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.46kWh, house 0.19kWh, export 0.0kWh, metric 353.12p, metric10 375.24p
2026-08-18 15:55:03.354584: Marginal costs baseline metric (no standing charge): 306.4889
2026-08-18 15:55:03.608480: Marginal energy costs matrix computed: min=8.0 max=40.92
2026-08-18 15:55:03.673611: Rate array import [{'start': 955, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 955, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:55:03.674243: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:55:03.674284: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:55:03.674306: - The battery is currently at 40% and is in eco mode for the next 7 and a half hours.
2026-08-18 15:55:03.674331: - For the next 48 hours there will be no solar generation.
2026-08-18 15:55:03.674370: - You have enough battery to reach the next charge.
2026-08-18 15:55:03.674388: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-18 15:55:03.674407: 
2026-08-18 15:55:03.723295: Plan calculation took 1.12 seconds
2026-08-18 15:55:03.726222: No high rate period found
2026-08-18 15:55:03.768715: Import threshold used for optimisation was 8.0p
2026-08-18 15:55:03.816851: Low import rate windows [0: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 1: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 2: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 3: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 4: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 5: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 6: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 7: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 8: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 9: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 10: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 11: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 12: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 13: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 26: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 27: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 28: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 29: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 30: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 31: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 32: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 33: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 34: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 35: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 36: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 37: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 38: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 39: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 40: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 41: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 42: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 43: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 44: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 45: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 46: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 47: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 48: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 49: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 50: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 51: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 52: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 53: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 54: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 55: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 56: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 57: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 58: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 59: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 60: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 61: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 62: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 63: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 64: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 65: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 66: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 67: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 68: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 69: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 70: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 71: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 72: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 73: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 74: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 75: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 76: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 77: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 78: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 79: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 80: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 81: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 82: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 83: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 84: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 85: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 86: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 87: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 88: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 89: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 90: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 91: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 92: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 93: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 94: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75]
2026-08-18 15:55:03.822291: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 40%, target 100%
2026-08-18 15:55:03.822448: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:55:03.822593: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:55:03.822893: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:55:03.822990: No export window planned
2026-08-18 15:55:03.823143: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:55:03.823179: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:55:03.823325: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:55:03.823527: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:55:03.823589: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:55:03.823651: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:55:03.823749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.823789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.823827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.823860: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.823886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.823949: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.823982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:03.824246: Inverter 0 count register writes 0
2026-08-18 15:55:03.839377: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 15:55:03.839576: Recompute is saving previous plan...
2026-08-18 15:55:03.842877: Best charge window [ 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0% ]
2026-08-18 15:55:03.842956: Best export window [  ]
2026-08-18 15:55:03.843867: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 15:55:03.847284: Load divergence over 8.0 hours mean 474.26W, min 337.2W, max 1255.8W, std dev 134.46W, divergence 14.18%
2026-08-18 15:55:03.865946: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 15:55:03.866053: LoadML is_calculating False
2026-08-18 15:55:03.866114: Creating pool of 12 processes to match your CPU count
2026-08-18 15:55:03.955661: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 15:55:03.957551: Optimise levels pass started at 2026-08-18 15:55:03
2026-08-18 15:55:03.957635: Optimise all windows, total charge 94 export 1
2026-08-18 15:55:04.379306: >> Region optimisation pass width 960 gives best_metric 401.66p, best_cost 448.09p, best_cycle 51.05kWh, best_import 37.35kWh
2026-08-18 15:55:04.555231: >> Region optimisation pass width 480 gives best_metric 401.66p, best_cost 448.09p, best_cycle 51.05kWh, best_import 37.35kWh
2026-08-18 15:55:04.877846: >> Region optimisation pass width 240 gives best_metric 401.66p, best_cost 448.09p, best_cycle 51.05kWh, best_import 37.35kWh
2026-08-18 15:55:05.788485: >> Region optimisation pass width 120 gives best_metric 401.66p, best_cost 448.09p, best_cycle 51.05kWh, best_import 37.35kWh
2026-08-18 15:55:05.789093: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 62
2026-08-18 15:55:05.789193: Optimise levels pass ended at 2026-08-18 15:55:05, duration 1.8 seconds tried 188 combinations
2026-08-18 15:55:05.789278: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 401.66p, best_keep 2.35kWh, best_cycle 51.05kWh, best_carbon 0kg, best_import 37.35kWh
2026-08-18 15:55:05.816701: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 15:55:12.526478: Tweak plan optimisation started metric 293.48p, cost 302.87p
2026-08-18 15:55:12.880093: Tweak optimisation finished metric 293.48p, cost 302.87p, metric_keep 1.16kWh, cycle 31.18kWh, carbon 0kg, import 19.14kWh, changed 8 window(s)
2026-08-18 15:55:12.897120: Swap charge optimisation started metric 293.48p, cost 302.87p, min_improvement_swap 0.1p
2026-08-18 15:55:19.122500: Swap charge optimisation finished metric 293.48p, cost 302.87p
2026-08-18 15:55:19.260667: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 291.42p -> 291.27p, plan now metric 293.96p, cost 300.85p, cycle 31.44kWh, import 18.89kWh
2026-08-18 15:55:19.272499: Raw charge windows [ 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:55:19.273054: Unclipped charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:55:19.273333: Unfiltered charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:55:19.273624: Filtered charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 15:55:19.309144: Previous plan best metric is 294.31 (cost 302.46) and new plan best metric is 293.48 (cost 302.87)
2026-08-18 15:55:19.309450: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 15:55:19.309656: Plan valid is now true after recompute was False
2026-08-18 15:55:19.343152: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.19p, metric_keep 126.9kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.4kWh, PV 0.0kWh
2026-08-18 15:55:19.496644: Battery has 7.42 hours left - now at 6.42kWh
2026-08-18 15:55:19.540675: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 661.15p, metric_keep 128.24kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.42kWh, PV 0.0kWh
2026-08-18 15:55:19.621095: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.09p, metric_keep 7.07kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.42kWh, PV 0.0kWh
2026-08-18 15:55:19.701721: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 344.93p, metric_keep 2.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.4kWh, PV 0.0kWh
2026-08-18 15:55:19.701807: Saving plan best values to HA entities
2026-08-18 15:55:19.855245: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 15:55:19.860375: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 15:55:19.865590: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.43kWh, house 0.19kWh, export 0.0kWh, metric 344.93p, metric10 368.09p
2026-08-18 15:55:19.940520: Marginal costs baseline metric (no standing charge): 298.2935
2026-08-18 15:55:20.210408: Marginal energy costs matrix computed: min=8.0 max=40.92
2026-08-18 15:55:20.280864: Rate array import [{'start': 955, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 955, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 15:55:20.281592: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 15:55:20.281640: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 15:55:20.281664: - The battery is currently at 40% and is in eco mode for the next 7 and a half hours.
2026-08-18 15:55:20.281692: - For the next 48 hours there will be no solar generation.
2026-08-18 15:55:20.281732: - You have enough battery to reach the next charge.
2026-08-18 15:55:20.281764: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-18 15:55:20.281809: 
2026-08-18 15:55:20.336769: Plan calculation took 16.50 seconds
2026-08-18 15:55:20.337113: Inverter 0: Type SK Sunsynk
2026-08-18 15:55:20.337159: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 15:55:20.337364: Reserve min: 7%, battery_min: 7%
2026-08-18 15:55:20.337443: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 15:55:20.337792: Inverter 0 SoC: 6.4kW 40%, current charge rate 5000W, current discharge rate 5250W, current battery power 834W, current battery voltage 51.2V, grid power -53W, load power 886W, PV Power 0W
2026-08-18 15:55:20.338011: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:55:20.338109: Inverter 0 scheduled charge enable is False
2026-08-18 15:55:20.338144: Inverter 0 charge windows currently []
2026-08-18 15:55:20.338175: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 15:55:20.338286: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:55:20.338323: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:55:20.338360: Inverter 0 scheduled discharge enable is False
2026-08-18 15:55:20.338500: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:55:20.338541: Inverter 0 discharge windows currently []
2026-08-18 15:55:20.338564: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:55:20.338583: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:55:20.338600: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:55:20.395302: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 40%, target 100%
2026-08-18 15:55:20.395501: Inverter 0 disabled charge window while waiting for schedule (now 08-18 15:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 15:55:20.395577: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:55:20.395751: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:55:20.395833: No export window planned
2026-08-18 15:55:20.395992: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 15:55:20.396037: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 15:55:20.396179: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 15:55:20.396345: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 15:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 15:55:20.396398: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 15:55:20.396479: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 15:55:20.396579: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396614: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396653: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396758: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.396972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.397004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.397029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.397059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.397084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 15:55:20.397104: Inverter 0 count register writes 0
2026-08-18 15:55:20.417902: Total inverter register writes now 867
2026-08-18 15:55:20.458423: Info: Completed run status Demand
2026-08-18 15:55:20.464890: Info: record_status Demand
2026-08-18 15:55:20.472664: Saved current settings to /config/predbat_config.json
2026-08-18 15:55:20.472889: Compare, best tariff: current metric 129.87p
2026-08-18 15:56:04.591844: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:56:04.592142: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:56:04.592190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:56:04.592362: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:56:04.592426: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:56:04.592494: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:56:04.592529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 15:56:30.808223: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 15:56:30.984408: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 15:58:18.943037: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 15:58:18.943235: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 15:58:18.943268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 15:58:18.943374: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 15:58:18.943405: Note: Inverter does not support discharge freeze - disabled
2026-08-18 15:58:18.943422: Note: Inverter does not support charge freeze - disabled
2026-08-18 15:58:18.943437: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:00:00.131884: --------------- PredBat - update at 2026-08-18 16:00:00+01:00 with clock skew 0 minutes, minutes now 960
2026-08-18 16:00:00.132893: Saved current settings to /config/predbat_config.json
2026-08-18 16:00:00.133057: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 16:00:00.133166: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:00:00.133304: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:00:00.158861: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:00:00.159010: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:00:00.159346: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:00:00.159985: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:00:00.160131: Predbat mode is set to Control charge & discharge
2026-08-18 16:00:00.355404: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:00:00.355554: Using load_power data to fill gaps in load_today data
2026-08-18 16:00:01.119779: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:00:01.120044: Zero load period starting at 2026-08-17T10:54:00+0100 (1746 minutes) for 189 minutes with base value 206.475
2026-08-18 16:00:01.121419: Processing 721 30-minute periods for power integration
2026-08-18 16:00:01.321725: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:00:01.321890: Car charging hold False, threshold 6.0kWh
2026-08-18 16:00:01.321942: Current data so far today: load 10.1kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:00:01.339714: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:00:01.339835: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:00:01.340727: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:00:01.340817: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:00:01.340878: Standing charge is set to 46.63p
2026-08-18 16:00:01.415216: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:00:01.415419: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:00:01.415583: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:00:01.416542: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:00:01.416638: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:00:01.416737: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:00:01.421269: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:00:01.421672: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:00:01.457441: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:00:01.457561: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:00:01.458658: High export rate found rates in range 99p to -99p
2026-08-18 16:00:01.544566: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:00:01.544684: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:00:01.554973: Battery level now 6.42kWh, -1hr ago 7.04kWh, at midnight 6.84kWh, battery value change in the last hour -4.29p, change today -2.91p, rate_forward 6.87p
2026-08-18 16:00:01.555338: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.14p, import 0.14p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:00:01.625946: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:00:01.626128: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:00:01.744609: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:00:01.783972: Today's load divergence 99.42%, in-day adjustment 97.19%, damping 0.95x, yesterday 92.68% today 99.45% blend 33.33%
2026-08-18 16:00:01.784119: Today's predicted so far 10.14kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 10.14kWh forecast extra.
2026-08-18 16:00:01.784184: Today's actual load so far 10.05kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 16:00:01.823871: Inverter 0: Type SK Sunsynk
2026-08-18 16:00:01.824008: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:00:01.824221: Reserve min: 7%, battery_min: 7%
2026-08-18 16:00:01.824297: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:00:01.824723: Inverter 0 SoC: 6.4kW 40%, current charge rate 5000W, current discharge rate 5250W, current battery power 852W, current battery voltage 51.2V, grid power -54W, load power 902W, PV Power 0W
2026-08-18 16:00:01.824985: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:00:01.825121: Inverter 0 scheduled charge enable is False
2026-08-18 16:00:01.825171: Inverter 0 charge windows currently []
2026-08-18 16:00:01.825228: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:00:01.825412: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:00:01.825480: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:00:01.825572: Inverter 0 scheduled discharge enable is False
2026-08-18 16:00:01.825800: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:00:01.825841: Inverter 0 discharge windows currently []
2026-08-18 16:00:01.825865: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:00:01.825886: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:00:01.825905: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:00:01.916097: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:00:01.916202: Plan was last updated on 2026-08-18 15:55:00+01:00 and is now 5.0 minutes old
2026-08-18 16:00:01.916406: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:00:01.916449: Best export window [  ]
2026-08-18 16:00:01.917409: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:00:01.920963: Load divergence over 8.0 hours mean 471.35W, min 323.4W, max 1247.4W, std dev 117.39W, divergence 12.45%
2026-08-18 16:00:01.941432: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:00:01.941575: LoadML is_calculating False
2026-08-18 16:00:01.941638: Creating pool of 12 processes to match your CPU count
2026-08-18 16:00:02.055001: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 632.41p, metric_keep 126.97kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.67kWh, PV 0.0kWh
2026-08-18 16:00:02.188420: Battery has 7.33 hours left - now at 6.4kWh
2026-08-18 16:00:02.273572: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 661.31p, metric_keep 128.33kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.7kWh, PV 0.0kWh
2026-08-18 16:00:02.353356: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 371.09p, metric_keep 7.02kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.7kWh, PV 0.0kWh
2026-08-18 16:00:02.437292: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 348.81p, metric_keep 2.65kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.67kWh, PV 0.0kWh
2026-08-18 16:00:02.437406: Saving plan best values to HA entities
2026-08-18 16:00:02.617504: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:00:02.622149: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:00:02.627833: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.18kWh, export 0.0kWh, metric 348.81p, metric10 371.09p
2026-08-18 16:00:02.709754: Marginal costs baseline metric (no standing charge): 302.172
2026-08-18 16:00:03.058379: Marginal energy costs matrix computed: min=8.0 max=41.38
2026-08-18 16:00:03.219819: Rate array import [{'start': 960, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 960, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:00:03.220801: - Your estimated bill for today is £1.74 and tomorrow is £1.94
2026-08-18 16:00:03.220852: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:00:03.220876: - The battery is currently at 40% and is in eco mode for the next 7 and a half hours.
2026-08-18 16:00:03.220896: - For the next 48 hours there will be no solar generation.
2026-08-18 16:00:03.220914: - You have enough battery to reach the next charge.
2026-08-18 16:00:03.220937: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-18 16:00:03.220955: 
2026-08-18 16:00:03.295655: Plan calculation took 1.38 seconds
2026-08-18 16:00:03.302224: No high rate period found
2026-08-18 16:00:03.378324: Import threshold used for optimisation was 8.0p
2026-08-18 16:00:03.460577: Low import rate windows [0: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 1: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 2: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 3: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 4: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 5: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 6: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 7: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 8: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 9: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 10: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 11: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 12: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 25: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 26: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 27: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 28: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 29: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 30: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 31: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 32: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 33: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 34: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 35: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 36: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 37: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 38: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 39: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 40: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 41: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 42: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 43: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 44: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 45: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 46: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 47: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 48: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 49: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 50: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 51: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 52: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 53: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 54: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 55: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 56: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 57: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 58: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 59: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 60: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 61: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 62: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 63: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 64: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 65: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 66: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 67: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 68: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 69: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 70: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 71: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 72: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 73: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 74: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 75: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 76: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 77: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 78: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 79: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 80: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 81: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 82: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 83: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 84: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 85: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 86: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 87: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 88: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 89: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 90: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 91: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 92: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 93: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75]
2026-08-18 16:00:03.469228: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 40%, target 100%
2026-08-18 16:00:03.469437: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:00:03.469601: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:00:03.470022: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:00:03.470175: No export window planned
2026-08-18 16:00:03.470417: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:00:03.470482: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:00:03.470768: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:00:03.471075: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:00:03.471172: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:00:03.471282: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:00:03.471450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.471552: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.471613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.471702: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.471786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.471847: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.471930: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:00:03.472447: Inverter 0 count register writes 0
2026-08-18 16:00:03.506663: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 16:00:03.517122: Total inverter register writes now 867
2026-08-18 16:00:03.592610: Info: Completed run status Demand
2026-08-18 16:00:03.604028: Info: record_status Demand
2026-08-18 16:00:03.619458: Saved current settings to /config/predbat_config.json
2026-08-18 16:00:03.619770: Compare, best tariff: current metric 129.87p
2026-08-18 16:00:33.725179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:00:33.725427: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:00:33.725475: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:00:33.725646: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:00:33.725689: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:00:33.725712: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:00:33.725730: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:01:15.155085: Info: HAHistory: Pruning history data started.
2026-08-18 16:01:15.158454: Info: HAHistory: Pruning history data completed.
2026-08-18 16:02:33.954213: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:02:33.954434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:02:33.954475: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:02:33.954631: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:02:33.954671: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:02:33.954692: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:02:33.954725: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:04:34.206389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:04:34.206848: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:04:34.206910: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:04:34.207061: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:04:34.207195: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:04:34.207246: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:04:34.207267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:05:00.365391: --------------- PredBat - update at 2026-08-18 16:05:00+01:00 with clock skew 0 minutes, minutes now 965
2026-08-18 16:05:00.366101: Saved current settings to /config/predbat_config.json
2026-08-18 16:05:00.366214: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 16:05:00.366274: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:05:00.366367: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:05:00.387030: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:05:00.387177: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:05:00.387417: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:05:00.388057: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:05:00.388218: Predbat mode is set to Control charge & discharge
2026-08-18 16:05:00.562714: Found 21602 load_today datapoints going back 27 days
2026-08-18 16:05:00.563326: Using load_power data to fill gaps in load_today data
2026-08-18 16:05:01.336522: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:05:01.336717: Zero load period starting at 2026-08-17T10:54:00+0100 (1751 minutes) for 189 minutes with base value 206.45
2026-08-18 16:05:01.338730: Processing 721 30-minute periods for power integration
2026-08-18 16:05:01.574137: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:05:01.574254: Car charging hold False, threshold 6.0kWh
2026-08-18 16:05:01.574298: Current data so far today: load 10.2kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:05:01.591111: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:05:01.591211: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:05:01.592042: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:05:01.592131: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:05:01.592192: Standing charge is set to 46.63p
2026-08-18 16:05:01.683977: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:05:01.684213: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:05:01.684398: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:05:01.685733: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:05:01.685849: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:05:01.685968: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:05:01.691851: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:05:01.692282: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:05:01.739027: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:05:01.739171: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:05:01.740591: High export rate found rates in range 99p to -99p
2026-08-18 16:05:01.851798: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:05:01.851951: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:05:01.863319: Battery level now 6.4kWh, -1hr ago 6.93kWh, at midnight 6.84kWh, battery value change in the last hour -3.63p, change today -3.02p, rate_forward 6.87p
2026-08-18 16:05:01.863787: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:05:01.916203: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:05:01.916335: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:05:02.012279: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:05:02.046729: Today's load divergence 99.45%, in-day adjustment 97.23%, damping 0.95x, yesterday 92.68% today 99.47% blend 32.99%
2026-08-18 16:05:02.046823: Today's predicted so far 10.25kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 10.25kWh forecast extra.
2026-08-18 16:05:02.046855: Today's actual load so far 10.16kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 16:05:02.080227: Inverter 0: Type SK Sunsynk
2026-08-18 16:05:02.080310: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:05:02.080498: Reserve min: 7%, battery_min: 7%
2026-08-18 16:05:02.080616: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:05:02.080904: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 426W, current battery voltage 51.2V, grid power -50W, load power 495W, PV Power 0W
2026-08-18 16:05:02.081058: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:05:02.081144: Inverter 0 scheduled charge enable is False
2026-08-18 16:05:02.081172: Inverter 0 charge windows currently []
2026-08-18 16:05:02.081198: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:05:02.081315: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:05:02.081350: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:05:02.081385: Inverter 0 scheduled discharge enable is False
2026-08-18 16:05:02.081523: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:05:02.081561: Inverter 0 discharge windows currently []
2026-08-18 16:05:02.081584: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:05:02.081603: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:05:02.081620: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:05:02.138082: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:05:02.138175: Plan was last updated on 2026-08-18 15:55:00+01:00 and is now 10.0 minutes old
2026-08-18 16:05:02.138379: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:05:02.138421: Best export window [  ]
2026-08-18 16:05:02.139358: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:05:02.142986: Load divergence over 8.0 hours mean 468.36W, min 330.0W, max 1248.0W, std dev 109.27W, divergence 11.67%
2026-08-18 16:05:02.162430: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:05:02.162571: LoadML is_calculating False
2026-08-18 16:05:02.162636: Creating pool of 12 processes to match your CPU count
2026-08-18 16:05:02.279037: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 636.05p, metric_keep 127.65kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.81kWh, PV 0.0kWh
2026-08-18 16:05:02.403874: Battery has 7.17 hours left - now at 6.24kWh
2026-08-18 16:05:02.448277: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 664.86p, metric_keep 128.96kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.84kWh, PV 0.0kWh
2026-08-18 16:05:02.540607: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 377.43p, metric_keep 7.56kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.84kWh, PV 0.0kWh
2026-08-18 16:05:02.628720: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 355.83p, metric_keep 3.2kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.81kWh, PV 0.0kWh
2026-08-18 16:05:02.628859: Saving plan best values to HA entities
2026-08-18 16:05:02.854106: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:05:02.859963: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:05:02.868356: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.48kWh, house 0.26kWh, export 0.0kWh, metric 355.83p, metric10 377.43p
2026-08-18 16:05:02.953448: Marginal costs baseline metric (no standing charge): 309.2006
2026-08-18 16:05:03.260377: Marginal energy costs matrix computed: min=7.33 max=40.46
2026-08-18 16:05:03.326395: Rate array import [{'start': 965, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 965, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:05:03.327070: - Your estimated bill for today is £1.77 and tomorrow is £1.94
2026-08-18 16:05:03.327114: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:05:03.327138: - The battery is currently at 39% and is in eco mode for the next 7 and a half hours.
2026-08-18 16:05:03.327157: - For the next 48 hours there will be no solar generation.
2026-08-18 16:05:03.327175: - You will run out of battery in 7 and a quarter hours.
2026-08-18 16:05:03.327192: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-18 16:05:03.327215: 
2026-08-18 16:05:03.387209: Plan calculation took 1.25 seconds
2026-08-18 16:05:03.392980: No high rate period found
2026-08-18 16:05:03.450929: Import threshold used for optimisation was 8.0p
2026-08-18 16:05:03.506234: Low import rate windows [0: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 1: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 2: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 3: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 4: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 5: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 6: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 7: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 8: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 9: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 10: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 11: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 12: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 25: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 26: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 27: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 28: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 29: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 30: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 31: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 32: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 33: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 34: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 35: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 36: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 37: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 38: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 39: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 40: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 41: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 42: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 43: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 44: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 45: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 46: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 47: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 48: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 49: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 50: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 51: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 52: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 53: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 54: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 55: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 56: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 57: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 58: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 59: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 60: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 61: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 62: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 63: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 64: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 65: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 66: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 67: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 68: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 69: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 70: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 71: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 72: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 73: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 74: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 75: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 76: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 77: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 78: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 79: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 80: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 81: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 82: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 83: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 84: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 85: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 86: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 87: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 88: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 89: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 90: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 91: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 92: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 93: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 94: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75]
2026-08-18 16:05:03.512928: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-18 16:05:03.513093: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:05:03.513189: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:05:03.513434: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:05:03.513563: No export window planned
2026-08-18 16:05:03.513695: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:05:03.513749: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:05:03.513887: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:05:03.514058: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:05:03.514117: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:05:03.514200: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:05:03.514352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514566: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514777: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:03.514855: Inverter 0 count register writes 0
2026-08-18 16:05:03.530778: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 16:05:03.530940: Recompute is saving previous plan...
2026-08-18 16:05:03.534373: Best charge window [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0% ]
2026-08-18 16:05:03.534457: Best export window [  ]
2026-08-18 16:05:03.535322: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:05:03.538800: Load divergence over 8.0 hours mean 468.36W, min 330.0W, max 1248.0W, std dev 109.27W, divergence 11.67%
2026-08-18 16:05:03.557991: Calculating data from yesterday for savings calculation
2026-08-18 16:05:03.571989: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 16:05:03.622254: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 16:05:03.641395: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 16:05:03.667141: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 16:05:03.707141: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 16:05:03.786118: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 16:05:03.786255: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 16:05:03.796811: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:05:03.796930: LoadML is_calculating False
2026-08-18 16:05:03.796995: Creating pool of 12 processes to match your CPU count
2026-08-18 16:05:03.892702: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 16:05:03.894690: Optimise levels pass started at 2026-08-18 16:05:03
2026-08-18 16:05:03.894768: Optimise all windows, total charge 94 export 1
2026-08-18 16:05:04.356116: >> Region optimisation pass width 960 gives best_metric 405.54p, best_cost 448.59p, best_cycle 50.7kWh, best_import 37.17kWh
2026-08-18 16:05:04.602283: >> Region optimisation pass width 480 gives best_metric 405.54p, best_cost 448.59p, best_cycle 50.7kWh, best_import 37.17kWh
2026-08-18 16:05:04.965597: >> Region optimisation pass width 240 gives best_metric 405.54p, best_cost 448.59p, best_cycle 50.7kWh, best_import 37.17kWh
2026-08-18 16:05:05.942250: >> Region optimisation pass width 120 gives best_metric 405.54p, best_cost 448.59p, best_cycle 50.7kWh, best_import 37.17kWh
2026-08-18 16:05:05.942585: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 61
2026-08-18 16:05:05.942717: Optimise levels pass ended at 2026-08-18 16:05:05, duration 2.0 seconds tried 201 combinations
2026-08-18 16:05:05.942845: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 405.54p, best_keep 2.85kWh, best_cycle 50.7kWh, best_carbon 0kg, best_import 37.17kWh
2026-08-18 16:05:05.966071: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 16:05:12.434725: Tweak plan optimisation started metric 295.85p, cost 305.14p
2026-08-18 16:05:12.753189: Tweak optimisation finished metric 295.85p, cost 305.14p, metric_keep 1.33kWh, cycle 31.03kWh, carbon 0kg, import 19.23kWh, changed 8 window(s)
2026-08-18 16:05:12.774152: Swap charge optimisation started metric 295.85p, cost 305.14p, min_improvement_swap 0.1p
2026-08-18 16:05:19.001399: Swap charge optimisation finished metric 295.85p, cost 305.14p
2026-08-18 16:05:19.155675: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 293.76p -> 293.52p, plan now metric 297.13p, cost 300.95p, cycle 31.04kWh, import 18.71kWh
2026-08-18 16:05:19.165804: Raw charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 38%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:05:19.166305: Unclipped charge windows [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:05:19.166619: Unfiltered charge windows [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:05:19.166927: Filtered charge windows [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 38%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:05:19.199253: Previous plan best metric is 297.37 (cost 305.14) and new plan best metric is 295.85 (cost 305.14)
2026-08-18 16:05:19.199448: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 16:05:19.199609: Plan valid is now true after recompute was False
2026-08-18 16:05:19.230035: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 634.46p, metric_keep 127.4kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.61kWh, PV 0.0kWh
2026-08-18 16:05:19.329549: Battery has 7.17 hours left - now at 6.24kWh
2026-08-18 16:05:19.373266: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 663.2p, metric_keep 128.71kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.63kWh, PV 0.0kWh
2026-08-18 16:05:19.436895: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 370.21p, metric_keep 7.54kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.63kWh, PV 0.0kWh
2026-08-18 16:05:19.510919: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 347.58p, metric_keep 3.2kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.61kWh, PV 0.0kWh
2026-08-18 16:05:19.510997: Saving plan best values to HA entities
2026-08-18 16:05:19.636744: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:05:19.641213: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:05:19.645619: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.45kWh, house 0.26kWh, export 0.0kWh, metric 347.58p, metric10 370.21p
2026-08-18 16:05:19.709228: Marginal costs baseline metric (no standing charge): 300.9459
2026-08-18 16:05:19.992672: Marginal energy costs matrix computed: min=7.33 max=40.46
2026-08-18 16:05:20.063609: Rate array import [{'start': 965, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 965, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:05:20.064210: - Your estimated bill for today is £1.77 and tomorrow is £1.94
2026-08-18 16:05:20.064252: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:05:20.064273: - The battery is currently at 39% and is in eco mode for the next 7 and a half hours.
2026-08-18 16:05:20.064300: - For the next 48 hours there will be no solar generation.
2026-08-18 16:05:20.064345: - You will run out of battery in 7 and a quarter hours.
2026-08-18 16:05:20.064363: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-18 16:05:20.064381: 
2026-08-18 16:05:20.109302: Plan calculation took 16.58 seconds
2026-08-18 16:05:20.109666: Inverter 0: Type SK Sunsynk
2026-08-18 16:05:20.109714: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:05:20.109927: Reserve min: 7%, battery_min: 7%
2026-08-18 16:05:20.110005: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:05:20.110320: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 426W, current battery voltage 51.2V, grid power -50W, load power 495W, PV Power 0W
2026-08-18 16:05:20.110569: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:05:20.110673: Inverter 0 scheduled charge enable is False
2026-08-18 16:05:20.110704: Inverter 0 charge windows currently []
2026-08-18 16:05:20.110733: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:05:20.110851: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:05:20.110890: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:05:20.110927: Inverter 0 scheduled discharge enable is False
2026-08-18 16:05:20.111050: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:05:20.111086: Inverter 0 discharge windows currently []
2026-08-18 16:05:20.111109: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:05:20.111131: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:05:20.111148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:05:20.157790: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-18 16:05:20.157911: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:05:20.157967: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:05:20.158109: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:05:20.158175: No export window planned
2026-08-18 16:05:20.158264: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:05:20.158293: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:05:20.158401: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:05:20.158544: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:05:20.158590: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:05:20.158643: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:05:20.158710: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158787: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158846: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.158990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.159010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.159032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.159051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:05:20.159071: Inverter 0 count register writes 0
2026-08-18 16:05:20.182407: Total inverter register writes now 867
2026-08-18 16:05:20.214133: Info: Completed run status Demand
2026-08-18 16:05:20.221646: Info: record_status Demand
2026-08-18 16:05:20.229390: Saved current settings to /config/predbat_config.json
2026-08-18 16:05:20.229803: Compare, best tariff: current metric 129.87p
2026-08-18 16:06:04.364523: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:06:04.364916: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:06:04.364964: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:06:04.365102: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:06:04.365146: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:06:04.365186: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:06:04.365229: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:08:04.613008: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:08:04.613237: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:08:04.613272: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:08:04.613436: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:08:04.613481: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:08:04.613503: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:08:04.613542: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:10:00.829365: --------------- PredBat - update at 2026-08-18 16:10:00+01:00 with clock skew 0 minutes, minutes now 970
2026-08-18 16:10:00.830139: Saved current settings to /config/predbat_config.json
2026-08-18 16:10:00.830266: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 16:10:00.830364: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:10:00.830450: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:10:00.850023: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:10:00.850170: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:10:00.850398: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:10:00.850914: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:10:00.851031: Predbat mode is set to Control charge & discharge
2026-08-18 16:10:01.043572: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:10:01.043697: Using load_power data to fill gaps in load_today data
2026-08-18 16:10:01.900993: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:10:01.901167: Zero load period starting at 2026-08-17T10:54:00+0100 (1756 minutes) for 189 minutes with base value 206.425
2026-08-18 16:10:01.902414: Processing 721 30-minute periods for power integration
2026-08-18 16:10:02.086542: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:10:02.086669: Car charging hold False, threshold 6.0kWh
2026-08-18 16:10:02.086715: Current data so far today: load 10.15kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:10:02.103341: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:10:02.103434: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:10:02.104218: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:10:02.104304: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:10:02.104361: Standing charge is set to 46.63p
2026-08-18 16:10:02.195334: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:10:02.195581: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:10:02.195779: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:10:02.196861: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:10:02.196968: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:10:02.197076: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:10:02.202460: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:10:02.202857: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:10:02.246313: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:10:02.246444: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:10:02.247755: High export rate found rates in range 99p to -99p
2026-08-18 16:10:02.347868: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:10:02.348035: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:10:02.360127: Battery level now 6.24kWh, -1hr ago 6.88kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -4.12p, rate_forward 6.87p
2026-08-18 16:10:02.360505: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:10:02.416147: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:10:02.416286: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:10:02.505840: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:10:02.540535: Today's load divergence 99.25%, in-day adjustment 97.13%, damping 0.95x, yesterday 92.68% today 99.29% blend 32.64%
2026-08-18 16:10:02.540630: Today's predicted so far 10.24kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 10.24kWh forecast extra.
2026-08-18 16:10:02.540663: Today's actual load so far 10.12kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 16:10:02.573674: Inverter 0: Type SK Sunsynk
2026-08-18 16:10:02.573753: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:10:02.573920: Reserve min: 7%, battery_min: 7%
2026-08-18 16:10:02.573989: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:10:02.574239: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 430W, current battery voltage 51.2V, grid power -54W, load power 487W, PV Power 0W
2026-08-18 16:10:02.574386: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:10:02.574470: Inverter 0 scheduled charge enable is False
2026-08-18 16:10:02.574498: Inverter 0 charge windows currently []
2026-08-18 16:10:02.574538: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:10:02.574659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:10:02.574689: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:10:02.574723: Inverter 0 scheduled discharge enable is False
2026-08-18 16:10:02.574842: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:10:02.574879: Inverter 0 discharge windows currently []
2026-08-18 16:10:02.574902: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:10:02.574922: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:10:02.574940: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:10:02.640658: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:10:02.640759: Plan was last updated on 2026-08-18 16:05:00+01:00 and is now 5.0 minutes old
2026-08-18 16:10:02.640958: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:10:02.640999: Best export window [  ]
2026-08-18 16:10:02.641765: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:10:02.644883: Load divergence over 8.0 hours mean 477.55W, min 345.0W, max 1120.2W, std dev 108.61W, divergence 11.37%
2026-08-18 16:10:02.663344: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:10:02.663426: LoadML is_calculating False
2026-08-18 16:10:02.663482: Creating pool of 12 processes to match your CPU count
2026-08-18 16:10:02.776578: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.78p, metric_keep 127.31kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.61kWh, PV 0.0kWh
2026-08-18 16:10:02.908090: Battery has 7.08 hours left - now at 6.24kWh
2026-08-18 16:10:02.956811: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 662.53p, metric_keep 128.63kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.64kWh, PV 0.0kWh
2026-08-18 16:10:03.045533: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 372.23p, metric_keep 7.33kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.64kWh, PV 0.0kWh
2026-08-18 16:10:03.111585: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 350.32p, metric_keep 2.97kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.61kWh, PV 0.0kWh
2026-08-18 16:10:03.111661: Saving plan best values to HA entities
2026-08-18 16:10:03.261333: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:10:03.267181: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:10:03.274335: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.22kWh, export 0.0kWh, metric 350.32p, metric10 372.23p
2026-08-18 16:10:03.340833: Marginal costs baseline metric (no standing charge): 303.689
2026-08-18 16:10:03.553541: Marginal energy costs matrix computed: min=6.67 max=39.36
2026-08-18 16:10:03.613720: Rate array import [{'start': 970, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 970, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:10:03.614253: - Your estimated bill for today is £1.76 and tomorrow is £1.94
2026-08-18 16:10:03.614288: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:10:03.614306: - The battery is currently at 39% and is in eco mode for the next 7 and a quarter hours.
2026-08-18 16:10:03.614320: - For the next 48 hours there will be no solar generation.
2026-08-18 16:10:03.614335: - You will run out of battery in 7 hours.
2026-08-18 16:10:03.614355: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 16:10:03.614369: 
2026-08-18 16:10:03.663424: Plan calculation took 1.02 seconds
2026-08-18 16:10:03.666310: No high rate period found
2026-08-18 16:10:03.714962: Import threshold used for optimisation was 8.0p
2026-08-18 16:10:03.759612: Low import rate windows [0: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 1: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 2: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 3: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 4: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 5: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 6: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 7: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 8: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 9: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 10: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 11: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 12: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 25: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 26: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 27: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 28: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 29: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 30: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 31: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 32: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 33: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 34: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 35: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 36: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 37: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 38: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 39: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 40: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 41: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 42: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 43: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 44: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 45: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 46: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 47: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 48: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 49: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 50: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 51: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 52: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 53: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 54: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 55: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 56: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 57: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 58: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 59: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 60: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 61: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 62: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 63: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 64: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 65: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 66: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 67: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 68: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 69: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 70: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 71: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 72: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 73: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 74: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 75: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 76: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 77: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 78: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 79: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 80: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 81: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 82: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 83: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 84: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 85: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 86: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 87: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 88: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 89: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 90: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 91: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 92: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 93: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 94: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75]
2026-08-18 16:10:03.764588: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-18 16:10:03.764691: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:10:03.764787: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:10:03.764999: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:10:03.765079: No export window planned
2026-08-18 16:10:03.765178: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:10:03.765207: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:10:03.765315: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:10:03.765459: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:10:03.765539: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:10:03.765614: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:10:03.765690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765716: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765792: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.765998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.766016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.766035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:10:03.766052: Inverter 0 count register writes 0
2026-08-18 16:10:03.779205: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 16:10:03.783583: Total inverter register writes now 867
2026-08-18 16:10:03.810988: Info: Completed run status Demand
2026-08-18 16:10:03.816277: Info: record_status Demand
2026-08-18 16:10:03.821837: Saved current settings to /config/predbat_config.json
2026-08-18 16:10:03.822125: Compare, best tariff: current metric 129.87p
2026-08-18 16:10:33.920976: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:10:33.921262: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:10:33.921323: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:10:33.921544: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:10:33.921594: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:10:33.921633: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:10:33.921672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:12:34.134346: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:12:34.134620: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:12:34.134663: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:12:34.134803: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:12:34.134856: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:12:34.134878: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:12:34.134896: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:14:34.357059: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:14:34.357277: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:14:34.357319: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:14:34.357450: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:14:34.357509: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:14:34.357553: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:14:34.357657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:15:00.459020: --------------- PredBat - update at 2026-08-18 16:15:00+01:00 with clock skew 0 minutes, minutes now 975
2026-08-18 16:15:00.459718: Saved current settings to /config/predbat_config.json
2026-08-18 16:15:00.459834: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 16:15:00.459964: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:15:00.460059: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:15:00.478291: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:15:00.478424: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:15:00.478685: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:15:00.479341: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:15:00.479463: Predbat mode is set to Control charge & discharge
2026-08-18 16:15:00.656864: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:15:00.656986: Using load_power data to fill gaps in load_today data
2026-08-18 16:15:01.510483: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:15:01.510667: Zero load period starting at 2026-08-17T10:54:00+0100 (1761 minutes) for 189 minutes with base value 206.4
2026-08-18 16:15:01.511943: Processing 721 30-minute periods for power integration
2026-08-18 16:15:01.692113: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:15:01.692227: Car charging hold False, threshold 6.0kWh
2026-08-18 16:15:01.692281: Current data so far today: load 10.2kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:15:01.708929: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:15:01.709020: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:15:01.709813: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:15:01.709919: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:15:01.710004: Standing charge is set to 46.63p
2026-08-18 16:15:01.787429: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:15:01.787677: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:15:01.787863: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:15:01.789077: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:15:01.789227: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:15:01.789393: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:15:01.794691: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:15:01.795075: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:15:01.837812: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:15:01.837913: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:15:01.839195: High export rate found rates in range 99p to -99p
2026-08-18 16:15:01.937980: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:15:01.938094: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:15:01.952841: Battery level now 6.24kWh, -1hr ago 6.79kWh, at midnight 6.84kWh, battery value change in the last hour -3.79p, change today -4.12p, rate_forward 6.87p
2026-08-18 16:15:01.953200: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:15:02.009796: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:15:02.009936: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:15:02.102014: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:15:02.137978: Today's load divergence 99.47%, in-day adjustment 97.3%, damping 0.95x, yesterday 92.68% today 99.5% blend 32.29%
2026-08-18 16:15:02.138071: Today's predicted so far 10.24kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 10.24kWh forecast extra.
2026-08-18 16:15:02.138104: Today's actual load so far 10.16kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 16:15:02.173661: Inverter 0: Type SK Sunsynk
2026-08-18 16:15:02.173742: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:15:02.173916: Reserve min: 7%, battery_min: 7%
2026-08-18 16:15:02.173992: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:15:02.174249: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 493W, current battery voltage 51.2V, grid power -55W, load power 549W, PV Power 0W
2026-08-18 16:15:02.174394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:15:02.174477: Inverter 0 scheduled charge enable is False
2026-08-18 16:15:02.174506: Inverter 0 charge windows currently []
2026-08-18 16:15:02.174547: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:15:02.174666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:15:02.174701: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:15:02.174737: Inverter 0 scheduled discharge enable is False
2026-08-18 16:15:02.174861: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:15:02.174897: Inverter 0 discharge windows currently []
2026-08-18 16:15:02.174920: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:15:02.174938: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:15:02.174957: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:15:02.238275: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:15:02.238404: Plan was last updated on 2026-08-18 16:05:00+01:00 and is now 10.0 minutes old
2026-08-18 16:15:02.238730: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:15:02.238787: Best export window [  ]
2026-08-18 16:15:02.239714: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:15:02.243635: Load divergence over 8.0 hours mean 486.74W, min 331.8W, max 988.2W, std dev 118.42W, divergence 12.16%
2026-08-18 16:15:02.266262: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:15:02.266392: LoadML is_calculating False
2026-08-18 16:15:02.266476: Creating pool of 12 processes to match your CPU count
2026-08-18 16:15:02.382380: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.01p, metric_keep 127.31kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.75kWh, PV 0.0kWh
2026-08-18 16:15:02.505261: Battery has 7.0 hours left - now at 6.24kWh
2026-08-18 16:15:02.551837: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 662.76p, metric_keep 128.61kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.78kWh, PV 0.0kWh
2026-08-18 16:15:02.631693: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 375.24p, metric_keep 7.22kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.78kWh, PV 0.0kWh
2026-08-18 16:15:02.712092: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 353.79p, metric_keep 2.85kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.75kWh, PV 0.0kWh
2026-08-18 16:15:02.712175: Saving plan best values to HA entities
2026-08-18 16:15:02.873963: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:15:02.879292: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:15:02.884520: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.48kWh, house 0.2kWh, export 0.0kWh, metric 353.79p, metric10 375.24p
2026-08-18 16:15:02.960587: Marginal costs baseline metric (no standing charge): 307.1578
2026-08-18 16:15:03.237258: Marginal energy costs matrix computed: min=7.94 max=38.35
2026-08-18 16:15:03.304262: Rate array import [{'start': 975, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 975, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:15:03.304926: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 16:15:03.304969: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:15:03.304991: - The battery is currently at 39% and is in eco mode for the next 7 and a quarter hours.
2026-08-18 16:15:03.305010: - For the next 48 hours there will be no solar generation.
2026-08-18 16:15:03.305036: - You will run out of battery in 7 hours.
2026-08-18 16:15:03.305054: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 16:15:03.305070: 
2026-08-18 16:15:03.366740: Plan calculation took 1.13 seconds
2026-08-18 16:15:03.370896: No high rate period found
2026-08-18 16:15:03.427018: Import threshold used for optimisation was 8.0p
2026-08-18 16:15:03.476497: Low import rate windows [0: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 1: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 2: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 3: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 4: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 5: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 6: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 7: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 8: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 9: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 10: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 11: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 12: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 25: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 26: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 27: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 28: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 29: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 30: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 31: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 32: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 33: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 34: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 35: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 36: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 37: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 38: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 39: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 40: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 41: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 42: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 43: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 44: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 45: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 46: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 47: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 48: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 49: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 50: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 51: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 52: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 53: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 54: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 55: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 56: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 57: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 58: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 59: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 60: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 61: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 62: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 63: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 64: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 65: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 66: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 67: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 68: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 69: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 70: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 71: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 72: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 73: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 74: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 75: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 76: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 77: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 78: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 79: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 80: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 81: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 82: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 83: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 84: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 85: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 86: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 87: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 88: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 89: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 90: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 91: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 92: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 93: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 94: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75]
2026-08-18 16:15:03.481027: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-18 16:15:03.481122: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:15:03.481207: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:15:03.481410: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:15:03.481492: No export window planned
2026-08-18 16:15:03.481602: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:15:03.481646: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:15:03.481760: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:15:03.481910: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:15:03.481960: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:15:03.482018: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:15:03.482095: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482126: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482172: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482192: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:03.482440: Inverter 0 count register writes 0
2026-08-18 16:15:03.496188: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 16:15:03.496405: Recompute is saving previous plan...
2026-08-18 16:15:03.501929: Best charge window [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0% ]
2026-08-18 16:15:03.502057: Best export window [  ]
2026-08-18 16:15:03.503045: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:15:03.506189: Load divergence over 8.0 hours mean 486.74W, min 331.8W, max 988.2W, std dev 118.42W, divergence 12.16%
2026-08-18 16:15:03.520818: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:15:03.520893: LoadML is_calculating False
2026-08-18 16:15:03.520944: Creating pool of 12 processes to match your CPU count
2026-08-18 16:15:03.590102: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 16:15:03.591425: Optimise levels pass started at 2026-08-18 16:15:03
2026-08-18 16:15:03.591466: Optimise all windows, total charge 94 export 1
2026-08-18 16:15:03.949408: >> Region optimisation pass width 960 gives best_metric 403.63p, best_cost 448.64p, best_cycle 51.03kWh, best_import 37.37kWh
2026-08-18 16:15:04.167819: >> Region optimisation pass width 480 gives best_metric 403.63p, best_cost 448.64p, best_cycle 51.03kWh, best_import 37.37kWh
2026-08-18 16:15:04.509414: >> Region optimisation pass width 240 gives best_metric 403.63p, best_cost 448.64p, best_cycle 51.03kWh, best_import 37.37kWh
2026-08-18 16:15:05.402632: >> Region optimisation pass width 120 gives best_metric 403.63p, best_cost 448.64p, best_cycle 51.03kWh, best_import 37.37kWh
2026-08-18 16:15:05.403325: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 61
2026-08-18 16:15:05.403401: Optimise levels pass ended at 2026-08-18 16:15:05, duration 1.8 seconds tried 201 combinations
2026-08-18 16:15:05.403524: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 403.63p, best_keep 2.51kWh, best_cycle 51.03kWh, best_carbon 0kg, best_import 37.37kWh
2026-08-18 16:15:05.420662: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 16:15:11.509442: Tweak plan optimisation started metric 293.72p, cost 303.04p
2026-08-18 16:15:11.818618: Tweak optimisation finished metric 293.72p, cost 303.04p, metric_keep 1.29kWh, cycle 31.03kWh, carbon 0kg, import 19.17kWh, changed 8 window(s)
2026-08-18 16:15:11.839037: Swap charge optimisation started metric 293.72p, cost 303.04p, min_improvement_swap 0.1p
2026-08-18 16:15:17.568596: Swap charge optimisation finished metric 293.72p, cost 303.04p
2026-08-18 16:15:17.719639: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 291.64p -> 291.49p, plan now metric 294.15p, cost 301.03p, cycle 31.3kWh, import 18.92kWh
2026-08-18 16:15:17.734002: Raw charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:15:17.734754: Unclipped charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:15:17.735054: Unfiltered charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:15:17.735289: Filtered charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:15:17.772709: Previous plan best metric is 294.94 (cost 303.04) and new plan best metric is 293.72 (cost 303.04)
2026-08-18 16:15:17.772935: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 16:15:17.773095: Plan valid is now true after recompute was False
2026-08-18 16:15:17.805066: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.4p, metric_keep 127.06kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.55kWh, PV 0.0kWh
2026-08-18 16:15:17.905089: Battery has 7.0 hours left - now at 6.24kWh
2026-08-18 16:15:17.956349: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 661.08p, metric_keep 128.36kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.57kWh, PV 0.0kWh
2026-08-18 16:15:18.032270: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.0p, metric_keep 7.21kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.57kWh, PV 0.0kWh
2026-08-18 16:15:18.118129: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 345.52p, metric_keep 2.85kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.55kWh, PV 0.0kWh
2026-08-18 16:15:18.118213: Saving plan best values to HA entities
2026-08-18 16:15:18.241608: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:15:18.246316: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:15:18.251217: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.45kWh, house 0.2kWh, export 0.0kWh, metric 345.52p, metric10 368.0p
2026-08-18 16:15:18.313841: Marginal costs baseline metric (no standing charge): 298.8823
2026-08-18 16:15:18.532159: Marginal energy costs matrix computed: min=7.94 max=38.35
2026-08-18 16:15:18.593753: Rate array import [{'start': 975, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 975, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:15:18.594777: - Your estimated bill for today is £1.75 and tomorrow is £1.94
2026-08-18 16:15:18.594828: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:15:18.594855: - The battery is currently at 39% and is in eco mode for the next 7 and a quarter hours.
2026-08-18 16:15:18.594886: - For the next 48 hours there will be no solar generation.
2026-08-18 16:15:18.594910: - You will run out of battery in 7 hours.
2026-08-18 16:15:18.594942: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 16:15:18.594966: 
2026-08-18 16:15:18.643628: Plan calculation took 15.15 seconds
2026-08-18 16:15:18.643969: Inverter 0: Type SK Sunsynk
2026-08-18 16:15:18.644032: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:15:18.644227: Reserve min: 7%, battery_min: 7%
2026-08-18 16:15:18.644290: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:15:18.644633: Inverter 0 SoC: 6.11kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 490W, current battery voltage 51.2V, grid power -54W, load power 544W, PV Power 0W
2026-08-18 16:15:18.644834: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:15:18.644918: Inverter 0 scheduled charge enable is False
2026-08-18 16:15:18.644942: Inverter 0 charge windows currently []
2026-08-18 16:15:18.644966: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:15:18.645051: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:15:18.645101: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:15:18.645132: Inverter 0 scheduled discharge enable is False
2026-08-18 16:15:18.645236: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:15:18.645266: Inverter 0 discharge windows currently []
2026-08-18 16:15:18.645285: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:15:18.645300: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:15:18.645318: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:15:18.696460: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-18 16:15:18.696621: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:15:18.696687: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:15:18.696868: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:15:18.696949: No export window planned
2026-08-18 16:15:18.697056: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:15:18.697092: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:15:18.697222: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:15:18.697378: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:15:18.697431: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:15:18.697493: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:15:18.697598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697672: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697699: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697725: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697778: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697868: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697893: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.697993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:15:18.698020: Inverter 0 count register writes 0
2026-08-18 16:15:18.717162: Total inverter register writes now 867
2026-08-18 16:15:18.745404: Info: Completed run status Demand
2026-08-18 16:15:18.751862: Info: record_status Demand
2026-08-18 16:15:18.758760: Saved current settings to /config/predbat_config.json
2026-08-18 16:15:18.759020: Compare, best tariff: current metric 129.87p
2026-08-18 16:15:48.853370: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:15:48.853609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:15:48.853679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:15:48.853814: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:15:48.853880: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:15:48.853902: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:15:48.853920: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:17:49.074897: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:17:49.075120: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:17:49.075163: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:17:49.075295: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:17:49.075333: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:17:49.075354: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:17:49.075372: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:19:49.313524: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:19:49.313765: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:19:49.313806: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:19:49.313936: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:19:49.313987: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:19:49.314030: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:19:49.314051: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:20:00.403756: --------------- PredBat - update at 2026-08-18 16:20:00+01:00 with clock skew 0 minutes, minutes now 980
2026-08-18 16:20:00.404443: Saved current settings to /config/predbat_config.json
2026-08-18 16:20:00.404569: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 16:20:00.404637: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:20:00.404743: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:20:00.421363: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:20:00.421485: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:20:00.421700: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:20:00.422231: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:20:00.422387: Predbat mode is set to Control charge & discharge
2026-08-18 16:20:00.591319: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:20:00.591452: Using load_power data to fill gaps in load_today data
2026-08-18 16:20:01.435117: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:20:01.435297: Zero load period starting at 2026-08-17T10:54:00+0100 (1766 minutes) for 189 minutes with base value 206.35
2026-08-18 16:20:01.436584: Processing 721 30-minute periods for power integration
2026-08-18 16:20:01.646131: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:20:01.646244: Car charging hold False, threshold 6.0kWh
2026-08-18 16:20:01.646286: Current data so far today: load 10.25kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:20:01.662468: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:20:01.662570: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:20:01.663260: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:20:01.663340: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:20:01.663397: Standing charge is set to 46.63p
2026-08-18 16:20:01.758881: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:20:01.760304: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:20:01.762783: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:20:01.763865: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:20:01.764052: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:20:01.764176: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:20:01.769525: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:20:01.769901: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:20:01.823958: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:20:01.824121: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:20:01.825475: High export rate found rates in range 99p to -99p
2026-08-18 16:20:01.934487: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:20:01.934666: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:20:01.953160: Battery level now 6.24kWh, -1hr ago 6.72kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -4.12p, rate_forward 6.87p
2026-08-18 16:20:01.953610: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:20:02.021976: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:20:02.022152: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:20:02.095441: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:20:02.124199: Today's load divergence 99.69%, in-day adjustment 97.46%, damping 0.95x, yesterday 92.68% today 99.71% blend 31.94%
2026-08-18 16:20:02.124478: Today's predicted so far 10.25kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 10.25kWh forecast extra.
2026-08-18 16:20:02.124514: Today's actual load so far 10.2kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 16:20:02.160960: Inverter 0: Type SK Sunsynk
2026-08-18 16:20:02.161062: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:20:02.161250: Reserve min: 7%, battery_min: 7%
2026-08-18 16:20:02.161321: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:20:02.161668: Inverter 0 SoC: 6.11kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 499W, current battery voltage 51.2V, grid power -57W, load power 559W, PV Power 0W
2026-08-18 16:20:02.161902: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:20:02.162026: Inverter 0 scheduled charge enable is False
2026-08-18 16:20:02.162067: Inverter 0 charge windows currently []
2026-08-18 16:20:02.162095: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:20:02.162207: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:20:02.162252: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:20:02.162322: Inverter 0 scheduled discharge enable is False
2026-08-18 16:20:02.162533: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:20:02.162610: Inverter 0 discharge windows currently []
2026-08-18 16:20:02.162657: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:20:02.162701: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:20:02.162731: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:20:02.220149: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:20:02.220252: Plan was last updated on 2026-08-18 16:15:00+01:00 and is now 5.0 minutes old
2026-08-18 16:20:02.220449: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:20:02.220489: Best export window [  ]
2026-08-18 16:20:02.221342: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:20:02.224611: Load divergence over 8.0 hours mean 493.03W, min 332.4W, max 1084.2W, std dev 131.12W, divergence 13.3%
2026-08-18 16:20:02.243461: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:20:02.243580: LoadML is_calculating False
2026-08-18 16:20:02.243640: Creating pool of 12 processes to match your CPU count
2026-08-18 16:20:02.367212: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.17p, metric_keep 127.75kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.67kWh, PV 0.0kWh
2026-08-18 16:20:02.500292: Battery has 6.83 hours left - now at 6.11kWh
2026-08-18 16:20:02.541007: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 664.83p, metric_keep 129.02kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.69kWh, PV 0.0kWh
2026-08-18 16:20:02.611714: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 374.47p, metric_keep 7.71kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.69kWh, PV 0.0kWh
2026-08-18 16:20:02.686381: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 352.76p, metric_keep 3.4kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.67kWh, PV 0.0kWh
2026-08-18 16:20:02.686469: Saving plan best values to HA entities
2026-08-18 16:20:02.834237: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:20:02.839254: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:20:02.844324: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.97kWh, house 0.29kWh, export 0.0kWh, metric 352.76p, metric10 374.47p
2026-08-18 16:20:02.916526: Marginal costs baseline metric (no standing charge): 306.1304
2026-08-18 16:20:03.200442: Marginal energy costs matrix computed: min=8.0 max=37.83
2026-08-18 16:20:03.267276: Rate array import [{'start': 980, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 980, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:20:03.267846: - Your estimated bill for today is £1.79 and tomorrow is £1.94
2026-08-18 16:20:03.267882: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:20:03.267932: - The battery is currently at 38% and is in eco mode for the next 7 and a quarter hours.
2026-08-18 16:20:03.267953: - For the next 48 hours there will be no solar generation.
2026-08-18 16:20:03.267967: - You will run out of battery in 6 and three quarters hours.
2026-08-18 16:20:03.267985: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 16:20:03.268008: 
2026-08-18 16:20:03.314576: Plan calculation took 1.09 seconds
2026-08-18 16:20:03.318698: No high rate period found
2026-08-18 16:20:03.366622: Import threshold used for optimisation was 8.0p
2026-08-18 16:20:03.416392: Low import rate windows [0: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 1: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 2: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 3: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 4: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 5: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 6: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 7: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 8: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 9: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 10: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 11: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 12: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 25: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 26: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 27: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 28: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 29: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 30: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 31: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 32: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 33: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 34: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 35: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 36: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 37: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 38: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 39: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 40: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 41: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 42: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 43: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 44: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 45: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 46: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 47: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 48: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 49: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 50: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 51: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 52: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 53: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 54: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 55: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 56: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 57: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 58: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 59: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 60: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 61: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 62: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 63: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 64: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 65: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 66: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 67: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 68: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 69: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 70: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 71: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 72: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 73: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 74: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 75: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 76: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 77: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 78: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 79: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 80: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 81: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 82: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 83: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 84: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 85: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 86: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 87: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 88: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 89: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 90: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 91: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 92: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 93: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 94: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75]
2026-08-18 16:20:03.421922: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-18 16:20:03.422039: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:20:03.422141: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:20:03.422385: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:20:03.422482: No export window planned
2026-08-18 16:20:03.422629: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:20:03.422668: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:20:03.422801: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:20:03.422978: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:20:03.423038: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:20:03.423102: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:20:03.423187: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423258: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423284: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423314: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:20:03.423736: Inverter 0 count register writes 0
2026-08-18 16:20:03.438285: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 16:20:03.443034: Total inverter register writes now 867
2026-08-18 16:20:03.475454: Info: Completed run status Demand
2026-08-18 16:20:03.482780: Info: record_status Demand
2026-08-18 16:20:03.493704: Saved current settings to /config/predbat_config.json
2026-08-18 16:20:03.494074: Compare, best tariff: current metric 129.87p
2026-08-18 16:20:34.613861: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:20:34.614056: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:20:34.614095: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:20:34.614311: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:20:34.614352: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:20:34.614390: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:20:34.614411: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:22:48.845861: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:22:48.846242: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:22:48.846301: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:22:48.846516: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:22:48.846648: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:22:48.846694: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:22:48.846716: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:23:39.677506: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 16:23:40.679847: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:23:40.680000: Zero load period starting at 2026-08-17T10:54:00+0100 (1766 minutes) for 189 minutes with base value 396.15
2026-08-18 16:23:40.681053: Processing 1345 30-minute periods for power integration
2026-08-18 16:23:40.772734: ML Component: Car charging hold False, car energy reported load False
2026-08-18 16:23:40.866367: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:23:40.960309: ML Temperature data points: 49421
2026-08-18 16:23:41.230019: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 16:23:41.273173: ML Component: Data fetch completed, load data age 60.0 days, 17307 data points
2026-08-18 16:23:41.273291: ML Component: No training needed, model age is 1.34 hours
2026-08-18 16:23:41.273355: ML Component: Generating predictions load data age 60.0 days, 17307 data points
2026-08-18 16:23:41.420397: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0467 max_dow {0: 0.087236111173696, 1: 0.0929083333182666, 2: 0.10695937459506094, 3: 0.10022500038649887, 4: 0.13687812535744162, 5: 0.09935833360569346, 6: 0.10263055489617919}
2026-08-18 16:23:41.891409: ML Component: Generated 576 predictions (total 29.05 kWh over 48h)
2026-08-18 16:23:41.942386: ML Component: Prediction cycle completed
2026-08-18 16:23:42.083852: ML Component: Saved 17307 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 16:24:49.087475: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:24:49.087828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:24:49.087885: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:24:49.088120: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:24:49.088169: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:24:49.088200: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:24:49.088243: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:25:00.181156: --------------- PredBat - update at 2026-08-18 16:25:00+01:00 with clock skew 0 minutes, minutes now 985
2026-08-18 16:25:00.181793: Saved current settings to /config/predbat_config.json
2026-08-18 16:25:00.181923: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 16:25:00.182012: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:25:00.182104: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:25:00.208439: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:25:00.208639: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:25:00.208867: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:25:00.209373: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:25:00.209491: Predbat mode is set to Control charge & discharge
2026-08-18 16:25:00.369434: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:25:00.369539: Using load_power data to fill gaps in load_today data
2026-08-18 16:25:01.050758: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:25:01.050931: Zero load period starting at 2026-08-17T10:54:00+0100 (1771 minutes) for 189 minutes with base value 206.3
2026-08-18 16:25:01.051944: Processing 721 30-minute periods for power integration
2026-08-18 16:25:01.221830: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:25:01.223116: Car charging hold False, threshold 6.0kWh
2026-08-18 16:25:01.223227: Current data so far today: load 10.3kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:25:01.236850: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:25:01.236992: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:25:01.237790: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:25:01.237860: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:25:01.237907: Standing charge is set to 46.63p
2026-08-18 16:25:01.344777: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:25:01.345821: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:25:01.346016: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:25:01.347156: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:25:01.347314: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:25:01.347474: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:25:01.354042: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:25:01.354429: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:25:01.399521: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:25:01.400887: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:25:01.402036: High export rate found rates in range 99p to -99p
2026-08-18 16:25:01.489948: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:25:01.490212: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:25:01.508515: Battery level now 6.11kWh, -1hr ago 6.72kWh, at midnight 6.84kWh, battery value change in the last hour -4.18p, change today -5.0p, rate_forward 6.87p
2026-08-18 16:25:01.509112: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:25:01.563013: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:25:01.563134: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:25:01.641922: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:25:01.671678: Today's load divergence 99.93%, in-day adjustment 97.64%, damping 0.95x, yesterday 92.68% today 99.93% blend 31.6%
2026-08-18 16:25:01.671800: Today's predicted so far 10.26kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 10.26kWh forecast extra.
2026-08-18 16:25:01.671849: Today's actual load so far 10.25kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 16:25:01.717084: Inverter 0: Type SK Sunsynk
2026-08-18 16:25:01.717178: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:25:01.717442: Reserve min: 7%, battery_min: 7%
2026-08-18 16:25:01.717775: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:25:01.718989: Inverter 0 SoC: 6.08kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 745W, current battery voltage 51.2V, grid power -52W, load power 796W, PV Power 0W
2026-08-18 16:25:01.720493: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:25:01.720700: Inverter 0 scheduled charge enable is False
2026-08-18 16:25:01.720771: Inverter 0 charge windows currently []
2026-08-18 16:25:01.720826: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:25:01.721047: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:25:01.721101: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:25:01.721298: Inverter 0 scheduled discharge enable is False
2026-08-18 16:25:01.721560: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:25:01.721647: Inverter 0 discharge windows currently []
2026-08-18 16:25:01.722242: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:25:01.724360: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:25:01.724408: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:25:01.813783: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:25:01.813883: Plan was last updated on 2026-08-18 16:15:00+01:00 and is now 10.0 minutes old
2026-08-18 16:25:01.814083: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:25:01.814124: Best export window [  ]
2026-08-18 16:25:01.815067: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:25:01.818795: Load divergence over 8.0 hours mean 499.14W, min 337.2W, max 1255.8W, std dev 146.51W, divergence 14.68%
2026-08-18 16:25:01.837648: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:25:01.837752: LoadML is_calculating False
2026-08-18 16:25:01.837810: Creating pool of 12 processes to match your CPU count
2026-08-18 16:25:01.939087: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.98p, metric_keep 127.9kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.81kWh, PV 0.0kWh
2026-08-18 16:25:02.045286: Battery has 6.75 hours left - now at 6.08kWh
2026-08-18 16:25:02.083339: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.73p, metric_keep 129.17kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.83kWh, PV 0.0kWh
2026-08-18 16:25:02.149592: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 379.22p, metric_keep 7.76kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.83kWh, PV 0.0kWh
2026-08-18 16:25:02.231002: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 357.38p, metric_keep 3.47kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.81kWh, PV 0.0kWh
2026-08-18 16:25:02.231088: Saving plan best values to HA entities
2026-08-18 16:25:02.390269: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 16:25:02.394684: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:25:02.398975: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.46kWh, house 0.31kWh, export 0.0kWh, metric 357.38p, metric10 379.22p
2026-08-18 16:25:02.463979: Marginal costs baseline metric (no standing charge): 310.7471
2026-08-18 16:25:02.683690: Marginal energy costs matrix computed: min=8.0 max=37.34
2026-08-18 16:25:02.750991: Rate array import [{'start': 985, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 985, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:25:02.751522: - Your estimated bill for today is £1.80 and tomorrow is £1.94
2026-08-18 16:25:02.751568: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:25:02.751587: - The battery is currently at 38% and is in eco mode for the next 7 hours.
2026-08-18 16:25:02.751602: - For the next 48 hours there will be no solar generation.
2026-08-18 16:25:02.751616: - You will run out of battery in 6 and three quarters hours.
2026-08-18 16:25:02.751629: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-18 16:25:02.751647: 
2026-08-18 16:25:02.800235: Plan calculation took 0.99 seconds
2026-08-18 16:25:02.806112: No high rate period found
2026-08-18 16:25:02.862391: Import threshold used for optimisation was 8.0p
2026-08-18 16:25:02.927231: Low import rate windows [0: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 1: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 2: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 3: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 4: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 5: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 6: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 7: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 8: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 9: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 10: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 11: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 12: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 25: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 26: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 27: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 28: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 29: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 30: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 31: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 32: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 33: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 34: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 35: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 36: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 37: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 38: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 39: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 40: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 41: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 42: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 43: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 44: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 45: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 46: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 47: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 48: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 49: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 50: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 51: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 52: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 53: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 54: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 55: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 56: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 57: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 58: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 59: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 60: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 61: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 62: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 63: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 64: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 65: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 66: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 67: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 68: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 69: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 70: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 71: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 72: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 73: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 74: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 75: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 76: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 77: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 78: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 79: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 80: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 81: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 82: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 83: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 84: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 85: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 86: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 87: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 88: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 89: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 90: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 91: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 92: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 93: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 94: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75]
2026-08-18 16:25:02.934483: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-18 16:25:02.934665: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:25:02.934799: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:25:02.935078: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:25:02.935191: No export window planned
2026-08-18 16:25:02.935385: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:25:02.935445: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:25:02.935686: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:25:02.936011: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:25:02.936097: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:25:02.936174: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:25:02.936590: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936660: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936700: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936776: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.936947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.937013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.937256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.937299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:02.937321: Inverter 0 count register writes 0
2026-08-18 16:25:02.954442: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 16:25:02.954711: Recompute is saving previous plan...
2026-08-18 16:25:02.958428: Best charge window [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0% ]
2026-08-18 16:25:02.958513: Best export window [  ]
2026-08-18 16:25:02.959388: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:25:02.962421: Load divergence over 8.0 hours mean 499.14W, min 337.2W, max 1255.8W, std dev 146.51W, divergence 14.68%
2026-08-18 16:25:02.980103: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:25:02.980207: LoadML is_calculating False
2026-08-18 16:25:02.980270: Creating pool of 12 processes to match your CPU count
2026-08-18 16:25:03.061226: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 16:25:03.063355: Optimise levels pass started at 2026-08-18 16:25:03
2026-08-18 16:25:03.063417: Optimise all windows, total charge 94 export 1
2026-08-18 16:25:03.474832: >> Region optimisation pass width 960 gives best_metric 408.39p, best_cost 452.35p, best_cycle 50.97kWh, best_import 37.48kWh
2026-08-18 16:25:03.713747: >> Region optimisation pass width 480 gives best_metric 408.39p, best_cost 452.35p, best_cycle 50.97kWh, best_import 37.48kWh
2026-08-18 16:25:04.109176: >> Region optimisation pass width 240 gives best_metric 408.39p, best_cost 452.35p, best_cycle 50.97kWh, best_import 37.48kWh
2026-08-18 16:25:05.049805: >> Region optimisation pass width 120 gives best_metric 408.39p, best_cost 452.35p, best_cycle 50.97kWh, best_import 37.48kWh
2026-08-18 16:25:05.050091: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 61
2026-08-18 16:25:05.050189: Optimise levels pass ended at 2026-08-18 16:25:05, duration 2.0 seconds tried 201 combinations
2026-08-18 16:25:05.050288: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 408.39p, best_keep 3.1kWh, best_cycle 50.97kWh, best_carbon 0kg, best_import 37.48kWh
2026-08-18 16:25:05.067275: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 16:25:11.332678: Tweak plan optimisation started metric 297.47p, cost 306.71p
2026-08-18 16:25:11.642754: Tweak optimisation finished metric 297.47p, cost 306.71p, metric_keep 1.29kWh, cycle 30.89kWh, carbon 0kg, import 19.27kWh, changed 8 window(s)
2026-08-18 16:25:11.662580: Swap charge optimisation started metric 297.47p, cost 306.71p, min_improvement_swap 0.1p
2026-08-18 16:25:17.643614: Swap charge optimisation finished metric 297.47p, cost 306.71p
2026-08-18 16:25:17.784688: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 295.4p -> 295.24p, plan now metric 297.99p, cost 304.7p, cycle 31.15kWh, import 19.02kWh
2026-08-18 16:25:17.797261: Raw charge windows [ 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:25:17.798076: Unclipped charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:25:17.798402: Unfiltered charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:25:17.798692: Filtered charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:25:17.841775: Previous plan best metric is 299.27 (cost 306.71) and new plan best metric is 297.47 (cost 306.71)
2026-08-18 16:25:17.842036: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 16:25:17.842253: Plan valid is now true after recompute was False
2026-08-18 16:25:17.875850: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.45p, metric_keep 127.65kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.62kWh, PV 0.0kWh
2026-08-18 16:25:18.012867: Battery has 6.75 hours left - now at 6.08kWh
2026-08-18 16:25:18.054831: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 665.13p, metric_keep 128.92kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.63kWh, PV 0.0kWh
2026-08-18 16:25:18.128195: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 372.06p, metric_keep 7.75kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.63kWh, PV 0.0kWh
2026-08-18 16:25:18.209743: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 349.19p, metric_keep 3.47kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.62kWh, PV 0.0kWh
2026-08-18 16:25:18.209814: Saving plan best values to HA entities
2026-08-18 16:25:18.349853: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 16:25:18.354818: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:25:18.359988: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.44kWh, house 0.31kWh, export 0.0kWh, metric 349.19p, metric10 372.06p
2026-08-18 16:25:18.428038: Marginal costs baseline metric (no standing charge): 302.5516
2026-08-18 16:25:18.730317: Marginal energy costs matrix computed: min=8.0 max=37.34
2026-08-18 16:25:18.796130: Rate array import [{'start': 985, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 985, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:25:18.796811: - Your estimated bill for today is £1.80 and tomorrow is £1.94
2026-08-18 16:25:18.796855: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:25:18.796877: - The battery is currently at 38% and is in eco mode for the next 7 hours.
2026-08-18 16:25:18.796896: - For the next 48 hours there will be no solar generation.
2026-08-18 16:25:18.796916: - You will run out of battery in 6 and three quarters hours.
2026-08-18 16:25:18.796932: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-18 16:25:18.796950: 
2026-08-18 16:25:18.852982: Plan calculation took 15.90 seconds
2026-08-18 16:25:18.853360: Inverter 0: Type SK Sunsynk
2026-08-18 16:25:18.853407: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:25:18.853631: Reserve min: 7%, battery_min: 7%
2026-08-18 16:25:18.853702: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:25:18.854005: Inverter 0 SoC: 6.08kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 745W, current battery voltage 51.2V, grid power -52W, load power 796W, PV Power 0W
2026-08-18 16:25:18.854191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:25:18.854273: Inverter 0 scheduled charge enable is False
2026-08-18 16:25:18.854297: Inverter 0 charge windows currently []
2026-08-18 16:25:18.854325: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:25:18.854412: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:25:18.854444: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:25:18.854477: Inverter 0 scheduled discharge enable is False
2026-08-18 16:25:18.854607: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:25:18.854641: Inverter 0 discharge windows currently []
2026-08-18 16:25:18.854660: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:25:18.854675: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:25:18.854689: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:25:18.902797: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-18 16:25:18.902920: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:25:18.902976: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:25:18.903123: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:25:18.903190: No export window planned
2026-08-18 16:25:18.903278: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:25:18.903307: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:25:18.903418: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:25:18.903562: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:25:18.903609: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:25:18.903658: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:25:18.903726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903833: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903852: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.903986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:25:18.904181: Inverter 0 count register writes 0
2026-08-18 16:25:18.923344: Total inverter register writes now 867
2026-08-18 16:25:18.955958: Info: Completed run status Demand
2026-08-18 16:25:18.962748: Info: record_status Demand
2026-08-18 16:25:18.969479: Saved current settings to /config/predbat_config.json
2026-08-18 16:25:18.969873: Compare, best tariff: current metric 129.87p
2026-08-18 16:25:49.095881: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:25:49.096133: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:25:49.096174: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:25:49.096306: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:25:49.096344: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:25:49.096366: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:25:49.096384: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:27:49.308428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:27:49.308780: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:27:49.308843: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:27:49.309067: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:27:49.309130: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:27:49.309167: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:27:49.309199: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:29:49.549200: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:29:49.549463: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:29:49.549528: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:29:49.549712: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:29:49.549783: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:29:49.549815: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:29:49.549849: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:30:00.630023: --------------- PredBat - update at 2026-08-18 16:30:00+01:00 with clock skew 0 minutes, minutes now 990
2026-08-18 16:30:00.630992: Saved current settings to /config/predbat_config.json
2026-08-18 16:30:00.631130: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 16:30:00.631229: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:30:00.631366: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:30:00.654663: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:30:00.654866: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:30:00.655163: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:30:00.656074: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:30:00.656274: Predbat mode is set to Control charge & discharge
2026-08-18 16:30:00.872157: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:30:00.872293: Using load_power data to fill gaps in load_today data
2026-08-18 16:30:01.866094: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:30:01.866324: Zero load period starting at 2026-08-17T10:54:00+0100 (1776 minutes) for 189 minutes with base value 206.275
2026-08-18 16:30:01.867748: Processing 721 30-minute periods for power integration
2026-08-18 16:30:02.074094: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:30:02.074210: Car charging hold False, threshold 6.0kWh
2026-08-18 16:30:02.074275: Current data so far today: load 10.35kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:30:02.093194: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:30:02.093320: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:30:02.094326: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:30:02.094420: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:30:02.094478: Standing charge is set to 46.63p
2026-08-18 16:30:02.188770: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:30:02.188983: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:30:02.189151: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:30:02.190196: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:30:02.190303: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:30:02.190422: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:30:02.196304: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:30:02.196747: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:30:02.241938: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:30:02.242052: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:30:02.243390: High export rate found rates in range 99p to -99p
2026-08-18 16:30:02.351126: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:30:02.351246: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:30:02.366849: Battery level now 6.08kWh, -1hr ago 6.72kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -5.22p, rate_forward 6.87p
2026-08-18 16:30:02.367271: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:30:02.430122: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:30:02.430264: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:30:02.524062: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:30:02.559716: Today's load divergence 99.72%, in-day adjustment 97.53%, damping 0.95x, yesterday 92.68% today 99.74% blend 31.25%
2026-08-18 16:30:02.559812: Today's predicted so far 10.36kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 10.36kWh forecast extra.
2026-08-18 16:30:02.559844: Today's actual load so far 10.32kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 16:30:02.607747: Inverter 0: Type SK Sunsynk
2026-08-18 16:30:02.607826: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:30:02.608035: Reserve min: 7%, battery_min: 7%
2026-08-18 16:30:02.608112: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:30:02.608450: Inverter 0 SoC: 6.08kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 759W, current battery voltage 51.2V, grid power -56W, load power 813W, PV Power 0W
2026-08-18 16:30:02.608634: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:30:02.608722: Inverter 0 scheduled charge enable is False
2026-08-18 16:30:02.608750: Inverter 0 charge windows currently []
2026-08-18 16:30:02.608775: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:30:02.608888: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:30:02.608924: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:30:02.608987: Inverter 0 scheduled discharge enable is False
2026-08-18 16:30:02.609184: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:30:02.609228: Inverter 0 discharge windows currently []
2026-08-18 16:30:02.609252: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:30:02.609271: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:30:02.609288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:30:02.692359: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:30:02.692457: Plan was last updated on 2026-08-18 16:25:00+01:00 and is now 5.0 minutes old
2026-08-18 16:30:02.692684: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:30:02.692734: Best export window [  ]
2026-08-18 16:30:02.693774: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:30:02.698157: Load divergence over 8.0 hours mean 505.1W, min 323.4W, max 1247.4W, std dev 156.59W, divergence 15.5%
2026-08-18 16:30:02.724760: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:30:02.724908: LoadML is_calculating False
2026-08-18 16:30:02.724993: Creating pool of 12 processes to match your CPU count
2026-08-18 16:30:02.854057: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.46p, metric_keep 127.52kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.72kWh, PV 0.0kWh
2026-08-18 16:30:02.999629: Battery has 6.75 hours left - now at 6.08kWh
2026-08-18 16:30:03.058804: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 664.04p, metric_keep 128.81kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.73kWh, PV 0.0kWh
2026-08-18 16:30:03.152359: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 373.82p, metric_keep 7.5kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.73kWh, PV 0.0kWh
2026-08-18 16:30:03.265542: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 351.86p, metric_keep 3.2kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.72kWh, PV 0.0kWh
2026-08-18 16:30:03.265629: Saving plan best values to HA entities
2026-08-18 16:30:03.462222: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:30:03.468192: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:30:03.473547: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.27kWh, export 0.0kWh, metric 351.86p, metric10 373.82p
2026-08-18 16:30:03.555860: Marginal costs baseline metric (no standing charge): 305.2217
2026-08-18 16:30:03.869262: Marginal energy costs matrix computed: min=8.0 max=36.83
2026-08-18 16:30:03.945362: Rate array import [{'start': 990, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 990, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:30:03.946060: - Your estimated bill for today is £1.78 and tomorrow is £1.94
2026-08-18 16:30:03.946105: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:30:03.946127: - The battery is currently at 38% and is in eco mode for the next 7 hours.
2026-08-18 16:30:03.946153: - For the next 48 hours there will be no solar generation.
2026-08-18 16:30:03.946171: - You will run out of battery in 6 and three quarters hours.
2026-08-18 16:30:03.946188: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-18 16:30:03.946213: 
2026-08-18 16:30:04.007623: Plan calculation took 1.32 seconds
2026-08-18 16:30:04.013384: No high rate period found
2026-08-18 16:30:04.067091: Import threshold used for optimisation was 8.0p
2026-08-18 16:30:04.131743: Low import rate windows [0: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 1: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 2: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 3: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 4: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 5: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 6: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 7: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 8: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 9: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 10: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 11: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 25: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 26: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 27: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 28: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 29: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 30: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 31: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 32: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 33: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 34: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 35: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 36: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 37: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 38: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 39: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 40: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 41: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 42: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 43: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 44: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 45: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 46: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 47: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 48: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 49: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 50: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 51: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 52: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 53: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 54: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 55: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 56: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 57: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 58: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 59: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 60: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 61: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 62: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 63: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 64: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 65: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 66: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 67: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 68: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 69: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 70: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 71: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 72: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 73: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 74: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 75: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 76: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 77: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 78: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 79: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 80: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 81: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 82: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 83: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 84: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 85: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 86: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 87: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 88: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 89: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 90: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 91: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 92: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 93: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75]
2026-08-18 16:30:04.138195: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-18 16:30:04.138328: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:30:04.138428: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:30:04.138704: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:30:04.138802: No export window planned
2026-08-18 16:30:04.138974: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:30:04.139034: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:30:04.139199: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:30:04.139383: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:30:04.139445: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:30:04.139533: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:30:04.139628: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139769: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139795: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139828: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.139891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:30:04.140242: Inverter 0 count register writes 0
2026-08-18 16:30:04.158010: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 16:30:04.163873: Total inverter register writes now 867
2026-08-18 16:30:04.206703: Info: Completed run status Demand
2026-08-18 16:30:04.214383: Info: record_status Demand
2026-08-18 16:30:04.221831: Saved current settings to /config/predbat_config.json
2026-08-18 16:30:04.222145: Compare, best tariff: current metric 129.87p
2026-08-18 16:30:34.330644: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:30:34.330878: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:30:34.330925: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:30:34.331062: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:30:34.331104: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:30:34.331126: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:30:34.331144: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:32:34.541615: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:32:34.541939: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:32:34.542019: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:32:34.542212: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:32:34.542264: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:32:34.542304: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:32:34.542351: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:34:48.790317: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:34:48.790677: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:34:48.790763: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:34:48.791027: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:34:48.791079: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:34:48.791119: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:34:48.791192: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:35:00.876271: --------------- PredBat - update at 2026-08-18 16:35:00+01:00 with clock skew 0 minutes, minutes now 995
2026-08-18 16:35:00.877006: Saved current settings to /config/predbat_config.json
2026-08-18 16:35:00.877134: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 16:35:00.877211: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:35:00.877317: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:35:00.895656: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:35:00.895783: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:35:00.896001: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:35:00.896527: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:35:00.896642: Predbat mode is set to Control charge & discharge
2026-08-18 16:35:01.073752: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:35:01.073867: Using load_power data to fill gaps in load_today data
2026-08-18 16:35:01.784905: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:35:01.785045: Zero load period starting at 2026-08-17T10:54:00+0100 (1781 minutes) for 189 minutes with base value 206.25
2026-08-18 16:35:01.786150: Processing 721 30-minute periods for power integration
2026-08-18 16:35:01.932867: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:35:01.932971: Car charging hold False, threshold 6.0kWh
2026-08-18 16:35:01.933022: Current data so far today: load 10.4kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:35:01.946180: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:35:01.946260: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:35:01.946873: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:35:01.946940: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:35:01.946987: Standing charge is set to 46.63p
2026-08-18 16:35:02.018333: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:35:02.018548: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:35:02.018688: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:35:02.019584: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:35:02.019673: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:35:02.019767: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:35:02.024366: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:35:02.024659: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:35:02.059324: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:35:02.059444: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:35:02.060575: High export rate found rates in range 99p to -99p
2026-08-18 16:35:02.144835: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:35:02.146029: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:35:02.162074: Battery level now 6.08kWh, -1hr ago 6.72kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -5.22p, rate_forward 6.87p
2026-08-18 16:35:02.162491: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:35:02.257966: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:35:02.258123: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:35:02.350122: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:35:02.386419: Today's load divergence 99.59%, in-day adjustment 97.47%, damping 0.95x, yesterday 92.68% today 99.61% blend 30.9%
2026-08-18 16:35:02.386506: Today's predicted so far 10.45kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 10.45kWh forecast extra.
2026-08-18 16:35:02.386538: Today's actual load so far 10.38kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 16:35:02.419559: Inverter 0: Type SK Sunsynk
2026-08-18 16:35:02.419642: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:35:02.419853: Reserve min: 7%, battery_min: 7%
2026-08-18 16:35:02.420009: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:35:02.420308: Inverter 0 SoC: 5.98kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 764W, current battery voltage 51.2V, grid power -55W, load power 816W, PV Power 0W
2026-08-18 16:35:02.420476: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:35:02.420595: Inverter 0 scheduled charge enable is False
2026-08-18 16:35:02.420649: Inverter 0 charge windows currently []
2026-08-18 16:35:02.420698: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:35:02.420865: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:35:02.420909: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:35:02.420947: Inverter 0 scheduled discharge enable is False
2026-08-18 16:35:02.421078: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:35:02.421114: Inverter 0 discharge windows currently []
2026-08-18 16:35:02.421136: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:35:02.421155: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:35:02.421177: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:35:02.478594: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:35:02.478692: Plan was last updated on 2026-08-18 16:25:00+01:00 and is now 10.0 minutes old
2026-08-18 16:35:02.478932: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:35:02.478993: Best export window [  ]
2026-08-18 16:35:02.480029: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:35:02.483330: Load divergence over 8.0 hours mean 511.07W, min 330.0W, max 1248.0W, std dev 183.07W, divergence 17.91%
2026-08-18 16:35:02.502287: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:35:02.502415: LoadML is_calculating False
2026-08-18 16:35:02.502475: Creating pool of 12 processes to match your CPU count
2026-08-18 16:35:02.627894: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.61p, metric_keep 127.94kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.82kWh, PV 0.0kWh
2026-08-18 16:35:02.763746: Battery has 6.58 hours left - now at 5.98kWh
2026-08-18 16:35:02.808123: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.18p, metric_keep 129.18kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.84kWh, PV 0.0kWh
2026-08-18 16:35:02.883068: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 378.75p, metric_keep 7.78kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.84kWh, PV 0.0kWh
2026-08-18 16:35:02.952917: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 357.4p, metric_keep 3.49kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.82kWh, PV 0.0kWh
2026-08-18 16:35:02.952991: Saving plan best values to HA entities
2026-08-18 16:35:03.101829: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:35:03.106421: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:35:03.111042: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.48kWh, house 0.31kWh, export 0.0kWh, metric 357.4p, metric10 378.75p
2026-08-18 16:35:03.175098: Marginal costs baseline metric (no standing charge): 310.7641
2026-08-18 16:35:03.427182: Marginal energy costs matrix computed: min=8.0 max=36.28
2026-08-18 16:35:03.524503: Rate array import [{'start': 995, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 995, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:35:03.525086: - Your estimated bill for today is £1.79 and tomorrow is £1.94
2026-08-18 16:35:03.525128: - Import rates are very expensive (33.8p - 46.4p) for the next 6  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:35:03.525147: - The battery is currently at 37% and is in eco mode for the next 6  hours.
2026-08-18 16:35:03.525162: - For the next 48 hours there will be no solar generation.
2026-08-18 16:35:03.525176: - You will run out of battery in 6 and a half hours.
2026-08-18 16:35:03.525190: - Your next charge slot will be in 6  hours where import rates will be cheap (8.0p).
2026-08-18 16:35:03.525204: 
2026-08-18 16:35:03.575448: Plan calculation took 1.10 seconds
2026-08-18 16:35:03.579666: No high rate period found
2026-08-18 16:35:03.627456: Import threshold used for optimisation was 8.0p
2026-08-18 16:35:03.681457: Low import rate windows [0: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 1: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 2: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 3: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 4: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 5: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 6: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 7: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 8: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 9: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 10: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 11: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 25: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 26: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 27: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 28: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 29: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 30: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 31: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 32: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 33: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 34: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 35: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 36: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 37: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 38: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 39: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 40: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 41: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 42: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 43: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 44: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 45: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 46: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 47: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 48: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 49: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 50: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 51: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 52: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 53: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 54: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 55: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 56: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 57: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 58: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 59: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 60: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 61: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 62: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 63: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 64: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 65: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 66: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 67: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 68: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 69: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 70: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 71: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 72: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 73: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 74: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 75: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 76: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 77: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 78: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 79: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 80: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 81: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 82: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 83: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 84: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 85: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 86: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 87: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 88: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 89: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 90: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 91: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 92: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 93: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 94: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75]
2026-08-18 16:35:03.689019: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-18 16:35:03.689183: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:35:03.689283: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:35:03.689548: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:35:03.689656: No export window planned
2026-08-18 16:35:03.689782: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:35:03.689819: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:35:03.689979: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:35:03.690162: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:35:03.690223: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:35:03.690294: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:35:03.690410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690453: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690520: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690544: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:03.690847: Inverter 0 count register writes 0
2026-08-18 16:35:03.710807: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 16:35:03.710977: Recompute is saving previous plan...
2026-08-18 16:35:03.714316: Best charge window [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0% ]
2026-08-18 16:35:03.714426: Best export window [  ]
2026-08-18 16:35:03.715334: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:35:03.718521: Load divergence over 8.0 hours mean 511.07W, min 330.0W, max 1248.0W, std dev 183.07W, divergence 17.91%
2026-08-18 16:35:03.737120: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:35:03.737247: LoadML is_calculating False
2026-08-18 16:35:03.737313: Creating pool of 12 processes to match your CPU count
2026-08-18 16:35:03.830717: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 16:35:03.832988: Optimise levels pass started at 2026-08-18 16:35:03
2026-08-18 16:35:03.833061: Optimise all windows, total charge 94 export 1
2026-08-18 16:35:04.231031: >> Region optimisation pass width 960 gives best_metric 408.91p, best_cost 450.15p, best_cycle 50.67kWh, best_import 37.21kWh
2026-08-18 16:35:04.439760: >> Region optimisation pass width 480 gives best_metric 408.91p, best_cost 450.15p, best_cycle 50.67kWh, best_import 37.21kWh
2026-08-18 16:35:04.748051: >> Region optimisation pass width 240 gives best_metric 408.91p, best_cost 450.15p, best_cycle 50.67kWh, best_import 37.21kWh
2026-08-18 16:35:05.827579: >> Region optimisation pass width 120 gives best_metric 408.55p, best_cost 450.21p, best_cycle 50.77kWh, best_import 37.22kWh
2026-08-18 16:35:05.827802: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 60
2026-08-18 16:35:05.827860: Optimise levels pass ended at 2026-08-18 16:35:05, duration 2.0 seconds tried 199 combinations
2026-08-18 16:35:05.827946: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 408.55p, best_keep 3.14kWh, best_cycle 50.77kWh, best_carbon 0kg, best_import 37.22kWh
2026-08-18 16:35:05.845734: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.5, 14.5, 14.5, 14.5, 14.5, 14.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 16:35:12.052836: Tweak plan optimisation started metric 297.31p, cost 306.32p
2026-08-18 16:35:12.354877: Tweak optimisation finished metric 297.31p, cost 306.32p, metric_keep 1.29kWh, cycle 30.83kWh, carbon 0kg, import 19.23kWh, changed 8 window(s)
2026-08-18 16:35:12.374709: Swap charge optimisation started metric 297.31p, cost 306.32p, min_improvement_swap 0.1p
2026-08-18 16:35:18.989439: Swap charge optimisation finished metric 297.31p, cost 306.32p
2026-08-18 16:35:19.162595: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 295.26p -> 295.21p, plan now metric 297.78p, cost 304.9p, cycle 31.14kWh, import 19.06kWh
2026-08-18 16:35:19.182218: Raw charge windows [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:35:19.182942: Unclipped charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:35:19.183330: Unfiltered charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:35:19.183676: Filtered charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 89%, 19-08 02:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:35:19.223849: Previous plan best metric is 299.19 (cost 306.7) and new plan best metric is 297.31 (cost 306.32)
2026-08-18 16:35:19.224081: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 16:35:19.224235: Plan valid is now true after recompute was False
2026-08-18 16:35:19.247791: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.03p, metric_keep 127.69kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.62kWh, PV 0.0kWh
2026-08-18 16:35:19.364194: Battery has 6.58 hours left - now at 5.98kWh
2026-08-18 16:35:19.401630: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 664.52p, metric_keep 128.93kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.63kWh, PV 0.0kWh
2026-08-18 16:35:19.476396: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 371.53p, metric_keep 7.76kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.63kWh, PV 0.0kWh
2026-08-18 16:35:19.569503: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 349.14p, metric_keep 3.49kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.62kWh, PV 0.0kWh
2026-08-18 16:35:19.569588: Saving plan best values to HA entities
2026-08-18 16:35:19.725305: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:35:19.730883: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:35:19.736101: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.45kWh, house 0.31kWh, export 0.0kWh, metric 349.14p, metric10 371.53p
2026-08-18 16:35:19.814711: Marginal costs baseline metric (no standing charge): 302.5094
2026-08-18 16:35:20.119692: Marginal energy costs matrix computed: min=8.0 max=36.28
2026-08-18 16:35:20.198414: Rate array import [{'start': 995, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 995, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:35:20.199085: - Your estimated bill for today is £1.79 and tomorrow is £1.94
2026-08-18 16:35:20.199129: - Import rates are very expensive (33.8p - 46.4p) for the next 6  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:35:20.199151: - The battery is currently at 37% and is in eco mode for the next 6  hours.
2026-08-18 16:35:20.199171: - For the next 48 hours there will be no solar generation.
2026-08-18 16:35:20.199188: - You will run out of battery in 6 and a half hours.
2026-08-18 16:35:20.199205: - Your next charge slot will be in 6  hours where import rates will be cheap (8.0p).
2026-08-18 16:35:20.199223: 
2026-08-18 16:35:20.262337: Plan calculation took 16.55 seconds
2026-08-18 16:35:20.262666: Inverter 0: Type SK Sunsynk
2026-08-18 16:35:20.262721: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:35:20.262934: Reserve min: 7%, battery_min: 7%
2026-08-18 16:35:20.263013: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:35:20.263420: Inverter 0 SoC: 5.92kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 771W, current battery voltage 51.2V, grid power -53W, load power 821W, PV Power 0W
2026-08-18 16:35:20.263614: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:35:20.263698: Inverter 0 scheduled charge enable is False
2026-08-18 16:35:20.263725: Inverter 0 charge windows currently []
2026-08-18 16:35:20.263749: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:35:20.263864: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:35:20.263923: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:35:20.263989: Inverter 0 scheduled discharge enable is False
2026-08-18 16:35:20.264115: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:35:20.264148: Inverter 0 discharge windows currently []
2026-08-18 16:35:20.264168: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:35:20.264183: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:35:20.264200: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:35:20.312922: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-18 16:35:20.313037: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:35:20.313091: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:35:20.313233: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:35:20.313301: No export window planned
2026-08-18 16:35:20.313450: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:35:20.313669: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:35:20.313805: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:35:20.313933: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:35:20.313976: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:35:20.314029: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:35:20.314097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314123: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:35:20.314749: Inverter 0 count register writes 0
2026-08-18 16:35:20.334509: Total inverter register writes now 867
2026-08-18 16:35:20.372464: Info: Completed run status Demand
2026-08-18 16:35:20.385140: Info: record_status Demand
2026-08-18 16:35:20.392159: Saved current settings to /config/predbat_config.json
2026-08-18 16:35:20.392564: Compare, best tariff: current metric 129.87p
2026-08-18 16:36:04.515654: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:36:04.515881: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:36:04.515961: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:36:04.516132: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:36:04.516172: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:36:04.516195: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:36:04.516213: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:38:18.748627: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:38:18.748812: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:38:18.748840: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:38:18.748944: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:38:18.748976: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:38:18.748994: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:38:18.749008: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:40:00.952240: --------------- PredBat - update at 2026-08-18 16:40:00+01:00 with clock skew 0 minutes, minutes now 1000
2026-08-18 16:40:00.953041: Saved current settings to /config/predbat_config.json
2026-08-18 16:40:00.953184: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 16:40:00.953331: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:40:00.953446: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:40:00.969963: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:40:00.970081: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:40:00.970237: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:40:00.970736: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:40:00.970853: Predbat mode is set to Control charge & discharge
2026-08-18 16:40:01.132794: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:40:01.132913: Using load_power data to fill gaps in load_today data
2026-08-18 16:40:01.903700: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:40:01.903881: Zero load period starting at 2026-08-17T10:54:00+0100 (1786 minutes) for 189 minutes with base value 206.225
2026-08-18 16:40:01.906475: Processing 721 30-minute periods for power integration
2026-08-18 16:40:02.077969: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:40:02.078073: Car charging hold False, threshold 6.0kWh
2026-08-18 16:40:02.078108: Current data so far today: load 10.45kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:40:02.091816: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:40:02.092132: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:40:02.092765: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:40:02.092831: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:40:02.092879: Standing charge is set to 46.63p
2026-08-18 16:40:02.164603: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:40:02.164791: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:40:02.164935: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:40:02.165807: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:40:02.165893: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:40:02.165981: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:40:02.170352: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:40:02.170623: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:40:02.206336: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:40:02.206434: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:40:02.207514: High export rate found rates in range 99p to -99p
2026-08-18 16:40:02.289107: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:40:02.289207: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:40:02.299253: Battery level now 5.98kWh, -1hr ago 6.61kWh, at midnight 6.84kWh, battery value change in the last hour -4.29p, change today -5.88p, rate_forward 6.87p
2026-08-18 16:40:02.299553: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:40:02.352476: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:40:02.352665: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:40:02.428318: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:40:02.460068: Today's load divergence 99.79%, in-day adjustment 97.63%, damping 0.95x, yesterday 92.68% today 99.8% blend 30.56%
2026-08-18 16:40:02.460141: Today's predicted so far 10.45kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 10.45kWh forecast extra.
2026-08-18 16:40:02.460167: Today's actual load so far 10.42kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 16:40:02.490234: Inverter 0: Type SK Sunsynk
2026-08-18 16:40:02.490313: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:40:02.490487: Reserve min: 7%, battery_min: 7%
2026-08-18 16:40:02.490550: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:40:02.490804: Inverter 0 SoC: 5.9kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 678W, current battery voltage 51.2V, grid power -52W, load power 726W, PV Power 0W
2026-08-18 16:40:02.490956: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:40:02.491041: Inverter 0 scheduled charge enable is False
2026-08-18 16:40:02.491096: Inverter 0 charge windows currently []
2026-08-18 16:40:02.491126: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:40:02.491275: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:40:02.491312: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:40:02.491343: Inverter 0 scheduled discharge enable is False
2026-08-18 16:40:02.491472: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:40:02.491506: Inverter 0 discharge windows currently []
2026-08-18 16:40:02.491525: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:40:02.491547: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:40:02.491578: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:40:02.545026: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:40:02.545121: Plan was last updated on 2026-08-18 16:35:00+01:00 and is now 5.0 minutes old
2026-08-18 16:40:02.545347: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:40:02.545389: Best export window [  ]
2026-08-18 16:40:02.546218: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:40:02.549452: Load divergence over 8.0 hours mean 517.43W, min 345.0W, max 1120.2W, std dev 176.98W, divergence 17.1%
2026-08-18 16:40:02.566395: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:40:02.566626: LoadML is_calculating False
2026-08-18 16:40:02.566721: Creating pool of 12 processes to match your CPU count
2026-08-18 16:40:02.685725: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 638.08p, metric_keep 128.08kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.73kWh, PV 0.0kWh
2026-08-18 16:40:02.809970: Battery has 6.5 hours left - now at 5.9kWh
2026-08-18 16:40:02.870854: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 666.5p, metric_keep 129.31kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.74kWh, PV 0.0kWh
2026-08-18 16:40:02.949318: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 376.2p, metric_keep 8.01kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.74kWh, PV 0.0kWh
2026-08-18 16:40:03.021932: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 354.62p, metric_keep 3.74kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.73kWh, PV 0.0kWh
2026-08-18 16:40:03.022037: Saving plan best values to HA entities
2026-08-18 16:40:03.161223: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:40:03.165609: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:40:03.170224: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.96kWh, house 0.35kWh, export 0.0kWh, metric 354.62p, metric10 376.2p
2026-08-18 16:40:03.269682: Marginal costs baseline metric (no standing charge): 307.9846
2026-08-18 16:40:03.567670: Marginal energy costs matrix computed: min=8.0 max=35.92
2026-08-18 16:40:03.636350: Rate array import [{'start': 1000, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1000, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:40:03.639445: - Your estimated bill for today is £1.80 and tomorrow is £1.94
2026-08-18 16:40:03.639531: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:40:03.639566: - The battery is currently at 37% and is in eco mode for the next 6 and three quarters hours.
2026-08-18 16:40:03.639663: - For the next 48 hours there will be no solar generation.
2026-08-18 16:40:03.639705: - You will run out of battery in 6 and a half hours.
2026-08-18 16:40:03.639745: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 16:40:03.639779: 
2026-08-18 16:40:03.703487: Plan calculation took 1.16 seconds
2026-08-18 16:40:03.709165: No high rate period found
2026-08-18 16:40:03.778347: Import threshold used for optimisation was 8.0p
2026-08-18 16:40:03.840530: Low import rate windows [0: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 1: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 2: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 3: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 4: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 5: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 6: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 7: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 8: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 9: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 10: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 11: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 25: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 26: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 27: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 28: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 29: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 30: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 31: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 32: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 33: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 34: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 35: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 36: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 37: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 38: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 39: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 40: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 41: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 42: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 43: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 44: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 45: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 46: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 47: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 48: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 49: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 50: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 51: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 52: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 53: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 54: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 55: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 56: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 57: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 58: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 59: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 60: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 61: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 62: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 63: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 64: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 65: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 66: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 67: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 68: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 69: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 70: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 71: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 72: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 73: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 74: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 75: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 76: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 77: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 78: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 79: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 80: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 81: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 82: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 83: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 84: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 85: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 86: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 87: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 88: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 89: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 90: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 91: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 92: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 93: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 94: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75]
2026-08-18 16:40:03.845317: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-18 16:40:03.845414: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:40:03.845491: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:40:03.845692: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:40:03.845776: No export window planned
2026-08-18 16:40:03.845875: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:40:03.845904: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:40:03.846007: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:40:03.846150: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:40:03.846198: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:40:03.846255: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:40:03.846351: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846403: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846425: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846490: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:40:03.846842: Inverter 0 count register writes 0
2026-08-18 16:40:03.859298: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 16:40:03.863850: Total inverter register writes now 867
2026-08-18 16:40:03.889700: Info: Completed run status Demand
2026-08-18 16:40:03.895214: Info: record_status Demand
2026-08-18 16:40:03.902337: Saved current settings to /config/predbat_config.json
2026-08-18 16:40:03.902697: Compare, best tariff: current metric 129.87p
2026-08-18 16:40:34.019322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:40:34.019561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:40:34.019610: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:40:34.019755: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:40:34.019796: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:40:34.019818: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:40:34.019846: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:42:34.263315: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:42:34.263541: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:42:34.263574: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:42:34.263725: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:42:34.263764: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:42:34.263808: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:42:34.263832: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:44:34.482702: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:44:34.482991: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:44:34.483040: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:44:34.483266: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:44:34.483318: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:44:34.483342: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:44:34.483361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:45:00.586703: --------------- PredBat - update at 2026-08-18 16:45:00+01:00 with clock skew 0 minutes, minutes now 1005
2026-08-18 16:45:00.587490: Saved current settings to /config/predbat_config.json
2026-08-18 16:45:00.587598: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 16:45:00.587670: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:45:00.587738: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:45:00.606740: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:45:00.606876: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:45:00.607016: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:45:00.607464: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:45:00.607563: Predbat mode is set to Control charge & discharge
2026-08-18 16:45:00.761114: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:45:00.761244: Using load_power data to fill gaps in load_today data
2026-08-18 16:45:01.469074: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:45:01.469243: Zero load period starting at 2026-08-17T10:54:00+0100 (1791 minutes) for 189 minutes with base value 206.2
2026-08-18 16:45:01.470247: Processing 721 30-minute periods for power integration
2026-08-18 16:45:01.613614: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:45:01.613801: Car charging hold False, threshold 6.0kWh
2026-08-18 16:45:01.613992: Current data so far today: load 10.5kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:45:01.627589: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:45:01.627800: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:45:01.628490: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:45:01.628561: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:45:01.628630: Standing charge is set to 46.63p
2026-08-18 16:45:01.709467: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:45:01.709668: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:45:01.709808: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:45:01.710683: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:45:01.710771: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:45:01.710860: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:45:01.715426: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:45:01.715755: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:45:01.750561: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:45:01.750661: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:45:01.751716: High export rate found rates in range 99p to -99p
2026-08-18 16:45:01.830024: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:45:01.830358: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:45:01.840120: Battery level now 5.9kWh, -1hr ago 6.56kWh, at midnight 6.84kWh, battery value change in the last hour -4.51p, change today -6.43p, rate_forward 6.87p
2026-08-18 16:45:01.840420: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:45:01.887418: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:45:01.887531: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:45:01.959661: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:45:01.987771: Today's load divergence 100.08%, in-day adjustment 97.84%, damping 0.95x, yesterday 92.68% today 100.07% blend 30.21%
2026-08-18 16:45:01.987890: Today's predicted so far 10.45kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 10.45kWh forecast extra.
2026-08-18 16:45:01.988262: Today's actual load so far 10.46kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 16:45:02.017707: Inverter 0: Type SK Sunsynk
2026-08-18 16:45:02.017779: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:45:02.017929: Reserve min: 7%, battery_min: 7%
2026-08-18 16:45:02.017993: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:45:02.018226: Inverter 0 SoC: 5.9kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 754W, current battery voltage 51.2V, grid power -48W, load power 808W, PV Power 0W
2026-08-18 16:45:02.018352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:45:02.018422: Inverter 0 scheduled charge enable is False
2026-08-18 16:45:02.018446: Inverter 0 charge windows currently []
2026-08-18 16:45:02.018472: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:45:02.018611: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:45:02.018659: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:45:02.018709: Inverter 0 scheduled discharge enable is False
2026-08-18 16:45:02.018834: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:45:02.018865: Inverter 0 discharge windows currently []
2026-08-18 16:45:02.018883: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:45:02.018905: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:45:02.018919: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:45:02.064687: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:45:02.064771: Plan was last updated on 2026-08-18 16:35:00+01:00 and is now 10.0 minutes old
2026-08-18 16:45:02.064945: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:45:02.064972: Best export window [  ]
2026-08-18 16:45:02.065642: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:45:02.068356: Load divergence over 8.0 hours mean 523.84W, min 331.8W, max 1061.4W, std dev 178.03W, divergence 16.99%
2026-08-18 16:45:02.083745: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:45:02.083823: LoadML is_calculating False
2026-08-18 16:45:02.083871: Creating pool of 12 processes to match your CPU count
2026-08-18 16:45:02.191067: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 638.2p, metric_keep 128.06kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.87kWh, PV 0.0kWh
2026-08-18 16:45:02.304441: Battery has 6.42 hours left - now at 5.9kWh
2026-08-18 16:45:02.347822: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.64p, metric_keep 129.27kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.88kWh, PV 0.0kWh
2026-08-18 16:45:02.423381: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 379.11p, metric_keep 7.89kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.88kWh, PV 0.0kWh
2026-08-18 16:45:02.498256: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 357.98p, metric_keep 3.6kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.87kWh, PV 0.0kWh
2026-08-18 16:45:02.498336: Saving plan best values to HA entities
2026-08-18 16:45:02.644846: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:45:02.649855: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:45:02.654713: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.49kWh, house 0.33kWh, export 0.0kWh, metric 357.98p, metric10 379.11p
2026-08-18 16:45:02.723468: Marginal costs baseline metric (no standing charge): 311.3443
2026-08-18 16:45:02.943007: Marginal energy costs matrix computed: min=8.0 max=35.92
2026-08-18 16:45:03.005743: Rate array import [{'start': 1005, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1005, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:45:03.006327: - Your estimated bill for today is £1.80 and tomorrow is £1.94
2026-08-18 16:45:03.006367: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:45:03.006386: - The battery is currently at 37% and is in eco mode for the next 6 and three quarters hours.
2026-08-18 16:45:03.006404: - For the next 48 hours there will be no solar generation.
2026-08-18 16:45:03.006436: - You will run out of battery in 6 and a half hours.
2026-08-18 16:45:03.006464: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 16:45:03.006497: 
2026-08-18 16:45:03.053107: Plan calculation took 0.99 seconds
2026-08-18 16:45:03.056792: No high rate period found
2026-08-18 16:45:03.100525: Import threshold used for optimisation was 8.0p
2026-08-18 16:45:03.149023: Low import rate windows [0: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 1: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 2: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 3: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 4: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 5: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 6: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 7: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 8: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 9: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 10: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 11: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 25: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 26: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 27: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 28: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 29: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 30: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 31: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 32: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 33: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 34: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 35: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 36: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 37: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 38: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 39: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 40: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 41: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 42: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 43: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 44: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 45: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 46: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 47: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 48: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 49: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 50: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 51: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 52: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 53: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 54: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 55: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 56: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 57: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 58: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 59: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 60: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 61: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 62: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 63: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 64: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 65: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 66: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 67: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 68: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 69: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 70: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 71: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 72: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 73: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 74: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 75: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 76: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 77: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 78: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 79: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 80: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 81: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 82: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 83: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 84: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 85: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 86: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 87: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 88: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 89: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 90: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 91: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 92: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 93: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 94: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75]
2026-08-18 16:45:03.154250: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-18 16:45:03.154364: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:45:03.154488: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:45:03.154728: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:45:03.154820: No export window planned
2026-08-18 16:45:03.154974: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:45:03.155009: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:45:03.155139: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:45:03.155330: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:45:03.155391: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:45:03.155454: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:45:03.155550: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155590: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155627: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155771: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.155943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.156034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.156063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.156088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.156112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:03.156136: Inverter 0 count register writes 0
2026-08-18 16:45:03.169836: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 16:45:03.170001: Recompute is saving previous plan...
2026-08-18 16:45:03.172665: Best charge window [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0% ]
2026-08-18 16:45:03.172738: Best export window [  ]
2026-08-18 16:45:03.173473: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:45:03.176081: Load divergence over 8.0 hours mean 523.84W, min 331.8W, max 1061.4W, std dev 178.03W, divergence 16.99%
2026-08-18 16:45:03.190767: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:45:03.190889: LoadML is_calculating False
2026-08-18 16:45:03.190985: Creating pool of 12 processes to match your CPU count
2026-08-18 16:45:03.265393: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 16:45:03.267474: Optimise levels pass started at 2026-08-18 16:45:03
2026-08-18 16:45:03.267552: Optimise all windows, total charge 94 export 1
2026-08-18 16:45:03.675402: >> Region optimisation pass width 960 gives best_metric 410.18p, best_cost 452.83p, best_cycle 50.94kWh, best_import 37.5kWh
2026-08-18 16:45:03.858247: >> Region optimisation pass width 480 gives best_metric 410.18p, best_cost 452.83p, best_cycle 50.94kWh, best_import 37.5kWh
2026-08-18 16:45:04.149674: >> Region optimisation pass width 240 gives best_metric 410.18p, best_cost 452.83p, best_cycle 50.94kWh, best_import 37.5kWh
2026-08-18 16:45:04.971171: >> Region optimisation pass width 120 gives best_metric 410.18p, best_cost 452.83p, best_cycle 50.94kWh, best_import 37.5kWh
2026-08-18 16:45:04.971398: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 60
2026-08-18 16:45:04.971488: Optimise levels pass ended at 2026-08-18 16:45:04, duration 1.7 seconds tried 200 combinations
2026-08-18 16:45:04.971573: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 410.18p, best_keep 3.25kWh, best_cycle 50.94kWh, best_carbon 0kg, best_import 37.5kWh
2026-08-18 16:45:04.987183: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 16:45:10.295106: Tweak plan optimisation started metric 298.12p, cost 307.68p
2026-08-18 16:45:10.609098: Tweak optimisation finished metric 298.12p, cost 307.68p, metric_keep 1.17kWh, cycle 30.67kWh, carbon 0kg, import 19.3kWh, changed 8 window(s)
2026-08-18 16:45:10.628475: Swap charge optimisation started metric 298.12p, cost 307.68p, min_improvement_swap 0.1p
2026-08-18 16:45:15.824354: Swap charge optimisation finished metric 298.12p, cost 307.68p
2026-08-18 16:45:15.971044: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 296.15p -> 296.0p, plan now metric 298.55p, cost 305.66p, cycle 30.93kWh, import 19.04kWh
2026-08-18 16:45:15.982258: Raw charge windows [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:45:15.982702: Unclipped charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:45:15.982906: Unfiltered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:45:15.983047: Filtered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:45:16.013963: Previous plan best metric is 299.82 (cost 307.23) and new plan best metric is 298.12 (cost 307.68)
2026-08-18 16:45:16.014243: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 16:45:16.014405: Plan valid is now true after recompute was False
2026-08-18 16:45:16.040280: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.59p, metric_keep 127.8kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.67kWh, PV 0.0kWh
2026-08-18 16:45:16.153749: Battery has 6.42 hours left - now at 5.9kWh
2026-08-18 16:45:16.193312: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 664.95p, metric_keep 129.02kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.67kWh, PV 0.0kWh
2026-08-18 16:45:16.255158: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 371.87p, metric_keep 7.87kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.67kWh, PV 0.0kWh
2026-08-18 16:45:16.318005: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 349.7p, metric_keep 3.6kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.67kWh, PV 0.0kWh
2026-08-18 16:45:16.318079: Saving plan best values to HA entities
2026-08-18 16:45:16.455804: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:45:16.460935: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:45:16.466494: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.45kWh, house 0.33kWh, export 0.0kWh, metric 349.7p, metric10 371.87p
2026-08-18 16:45:16.537256: Marginal costs baseline metric (no standing charge): 303.0689
2026-08-18 16:45:16.817984: Marginal energy costs matrix computed: min=8.0 max=35.92
2026-08-18 16:45:16.880524: Rate array import [{'start': 1005, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1005, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:45:16.881049: - Your estimated bill for today is £1.80 and tomorrow is £1.94
2026-08-18 16:45:16.881083: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:45:16.881102: - The battery is currently at 37% and is in eco mode for the next 6 and three quarters hours.
2026-08-18 16:45:16.881117: - For the next 48 hours there will be no solar generation.
2026-08-18 16:45:16.881131: - You will run out of battery in 6 and a half hours.
2026-08-18 16:45:16.881144: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 16:45:16.881159: 
2026-08-18 16:45:16.928146: Plan calculation took 13.76 seconds
2026-08-18 16:45:16.928488: Inverter 0: Type SK Sunsynk
2026-08-18 16:45:16.928539: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:45:16.928754: Reserve min: 7%, battery_min: 7%
2026-08-18 16:45:16.928822: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:45:16.929118: Inverter 0 SoC: 5.76kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 429W, current battery voltage 51.2V, grid power -49W, load power 487W, PV Power 0W
2026-08-18 16:45:16.929381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:45:16.929505: Inverter 0 scheduled charge enable is False
2026-08-18 16:45:16.929557: Inverter 0 charge windows currently []
2026-08-18 16:45:16.929590: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:45:16.929696: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:45:16.929728: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:45:16.929760: Inverter 0 scheduled discharge enable is False
2026-08-18 16:45:16.929862: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:45:16.929892: Inverter 0 discharge windows currently []
2026-08-18 16:45:16.929911: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:45:16.929927: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:45:16.929941: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:45:16.975464: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-18 16:45:16.975587: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:45:16.975642: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:45:16.975779: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:45:16.975846: No export window planned
2026-08-18 16:45:16.975996: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:45:16.976039: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:45:16.976179: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:45:16.976328: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:45:16.976373: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:45:16.976419: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:45:16.976495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976526: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976551: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:45:16.976885: Inverter 0 count register writes 0
2026-08-18 16:45:16.995352: Total inverter register writes now 867
2026-08-18 16:45:17.025796: Info: Completed run status Demand
2026-08-18 16:45:17.031831: Info: record_status Demand
2026-08-18 16:45:17.038034: Saved current settings to /config/predbat_config.json
2026-08-18 16:45:17.038319: Compare, best tariff: current metric 129.87p
2026-08-18 16:45:49.142711: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:45:49.142975: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:45:49.143021: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:45:49.143156: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:45:49.143194: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:45:49.143233: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:45:49.143253: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:47:49.376580: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:47:49.376914: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:47:49.376977: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:47:49.377263: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:47:49.377330: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:47:49.377375: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:47:49.377399: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:49:49.606389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:49:49.606623: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:49:49.606697: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:49:49.606835: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:49:49.606879: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:49:49.606905: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:49:49.607188: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:50:00.687226: --------------- PredBat - update at 2026-08-18 16:50:00+01:00 with clock skew 0 minutes, minutes now 1010
2026-08-18 16:50:00.687969: Saved current settings to /config/predbat_config.json
2026-08-18 16:50:00.688101: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 16:50:00.688190: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:50:00.688268: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:50:00.706043: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:50:00.706166: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:50:00.706355: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:50:00.706921: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:50:00.707049: Predbat mode is set to Control charge & discharge
2026-08-18 16:50:00.876967: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:50:00.877086: Using load_power data to fill gaps in load_today data
2026-08-18 16:50:01.578417: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:50:01.578579: Zero load period starting at 2026-08-17T10:54:00+0100 (1796 minutes) for 189 minutes with base value 206.175
2026-08-18 16:50:01.580055: Processing 721 30-minute periods for power integration
2026-08-18 16:50:01.761888: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:50:01.762007: Car charging hold False, threshold 6.0kWh
2026-08-18 16:50:01.762050: Current data so far today: load 10.7kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:50:01.778662: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:50:01.778756: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:50:01.779587: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:50:01.779679: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:50:01.779740: Standing charge is set to 46.63p
2026-08-18 16:50:01.864729: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:50:01.864986: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:50:01.865198: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:50:01.866079: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:50:01.866184: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:50:01.866326: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:50:01.870731: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:50:01.871069: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:50:01.907417: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:50:01.907520: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:50:01.908726: High export rate found rates in range 99p to -99p
2026-08-18 16:50:01.991334: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:50:01.991451: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:50:02.001853: Battery level now 5.9kWh, -1hr ago 6.56kWh, at midnight 6.84kWh, battery value change in the last hour -4.51p, change today -6.43p, rate_forward 6.87p
2026-08-18 16:50:02.002144: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:50:02.047044: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:50:02.047185: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:50:02.130097: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:50:02.167526: Today's load divergence 101.06%, in-day adjustment 98.52%, damping 0.95x, yesterday 92.68% today 101.01% blend 29.86%
2026-08-18 16:50:02.167743: Today's predicted so far 10.47kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 10.47kWh forecast extra.
2026-08-18 16:50:02.167787: Today's actual load so far 10.64kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 16:50:02.228978: Inverter 0: Type SK Sunsynk
2026-08-18 16:50:02.229070: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:50:02.229256: Reserve min: 7%, battery_min: 7%
2026-08-18 16:50:02.229334: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:50:02.229585: Inverter 0 SoC: 5.76kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 451W, current battery voltage 51.2V, grid power -57W, load power 493W, PV Power 0W
2026-08-18 16:50:02.229794: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:50:02.229893: Inverter 0 scheduled charge enable is False
2026-08-18 16:50:02.229955: Inverter 0 charge windows currently []
2026-08-18 16:50:02.230092: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:50:02.230247: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:50:02.230286: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:50:02.230329: Inverter 0 scheduled discharge enable is False
2026-08-18 16:50:02.230450: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:50:02.230486: Inverter 0 discharge windows currently []
2026-08-18 16:50:02.231131: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:50:02.232300: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:50:02.232363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:50:02.297414: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:50:02.297536: Plan was last updated on 2026-08-18 16:45:00+01:00 and is now 5.0 minutes old
2026-08-18 16:50:02.297861: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:50:02.297920: Best export window [  ]
2026-08-18 16:50:02.299382: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:50:02.304372: Load divergence over 8.0 hours mean 530.04W, min 332.4W, max 1084.2W, std dev 185.56W, divergence 17.5%
2026-08-18 16:50:02.324815: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:50:02.324920: LoadML is_calculating False
2026-08-18 16:50:02.324979: Creating pool of 12 processes to match your CPU count
2026-08-18 16:50:02.425952: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 641.24p, metric_keep 128.63kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.95kWh, PV 0.0kWh
2026-08-18 16:50:02.557101: Battery has 6.25 hours left - now at 5.76kWh
2026-08-18 16:50:02.620692: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 669.62p, metric_keep 129.84kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.96kWh, PV 0.0kWh
2026-08-18 16:50:02.717907: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 379.27p, metric_keep 8.54kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.96kWh, PV 0.0kWh
2026-08-18 16:50:02.809856: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 357.83p, metric_keep 4.28kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.95kWh, PV 0.0kWh
2026-08-18 16:50:02.809924: Saving plan best values to HA entities
2026-08-18 16:50:02.955403: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:50:02.960295: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 16:50:02.964948: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.97kWh, house 0.44kWh, export 0.0kWh, metric 357.83p, metric10 379.27p
2026-08-18 16:50:03.030026: Marginal costs baseline metric (no standing charge): 311.198
2026-08-18 16:50:03.250831: Marginal energy costs matrix computed: min=8.0 max=35.94
2026-08-18 16:50:03.327075: Rate array import [{'start': 1010, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1010, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:50:03.327662: - Your estimated bill for today is £1.84 and tomorrow is £1.94
2026-08-18 16:50:03.327697: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:50:03.327716: - The battery is currently at 36% and is in eco mode for the next 6 and three quarters hours.
2026-08-18 16:50:03.327730: - For the next 48 hours there will be no solar generation.
2026-08-18 16:50:03.327744: - You will run out of battery in 6 and a quarter hours.
2026-08-18 16:50:03.327758: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 16:50:03.327772: 
2026-08-18 16:50:03.382061: Plan calculation took 1.08 seconds
2026-08-18 16:50:03.385184: No high rate period found
2026-08-18 16:50:03.443188: Import threshold used for optimisation was 8.0p
2026-08-18 16:50:03.489359: Low import rate windows [0: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 1: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 2: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 3: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 4: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 5: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 6: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 7: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 8: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 9: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 10: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 11: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 25: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 26: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 27: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 28: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 29: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 30: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 31: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 32: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 33: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 34: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 35: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 36: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 37: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 38: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 39: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 40: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 41: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 42: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 43: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 44: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 45: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 46: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 47: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 48: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 49: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 50: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 51: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 52: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 53: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 54: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 55: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 56: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 57: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 58: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 59: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 60: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 61: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 62: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 63: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 64: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 65: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 66: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 67: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 68: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 69: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 70: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 71: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 72: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 73: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 74: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 75: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 76: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 77: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 78: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 79: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 80: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 81: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 82: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 83: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 84: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 85: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 86: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 87: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 88: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 89: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 90: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 91: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 92: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 93: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 94: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75]
2026-08-18 16:50:03.494243: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-18 16:50:03.494347: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:50:03.494417: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:50:03.494621: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:50:03.494689: No export window planned
2026-08-18 16:50:03.494793: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:50:03.494822: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:50:03.494930: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:50:03.495077: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:50:03.495126: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:50:03.495192: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:50:03.495278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495338: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495399: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:50:03.495607: Inverter 0 count register writes 0
2026-08-18 16:50:03.508329: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 16:50:03.512644: Total inverter register writes now 867
2026-08-18 16:50:03.539099: Info: Completed run status Demand
2026-08-18 16:50:03.544959: Info: record_status Demand
2026-08-18 16:50:03.551361: Saved current settings to /config/predbat_config.json
2026-08-18 16:50:03.551724: Compare, best tariff: current metric 129.87p
2026-08-18 16:50:33.645083: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:50:33.645344: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:50:33.645394: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:50:33.645538: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:50:33.645581: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:50:33.645603: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:50:33.645623: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:52:33.881916: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:52:33.882139: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:52:33.882195: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:52:33.882342: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:52:33.882380: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:52:33.882402: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:52:33.882420: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:53:43.682932: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 16:53:44.540722: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:53:44.540893: Zero load period starting at 2026-08-17T10:54:00+0100 (1796 minutes) for 189 minutes with base value 395.925
2026-08-18 16:53:44.541922: Processing 1345 30-minute periods for power integration
2026-08-18 16:53:44.627288: ML Component: Car charging hold False, car energy reported load False
2026-08-18 16:53:44.715207: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:53:44.821312: ML Temperature data points: 49391
2026-08-18 16:53:45.069381: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 16:53:45.106516: ML Component: Data fetch completed, load data age 60.0 days, 17313 data points
2026-08-18 16:53:45.106670: ML Component: No training needed, model age is 1.84 hours
2026-08-18 16:53:45.106869: ML Component: Generating predictions load data age 60.0 days, 17313 data points
2026-08-18 16:53:45.267098: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0586 max_dow {0: 0.087236111173696, 1: 0.0929083333182666, 2: 0.10695937459506094, 3: 0.10022500038649887, 4: 0.13687812535744162, 5: 0.09935833360569346, 6: 0.10263055489617919}
2026-08-18 16:53:45.818813: ML Component: Generated 576 predictions (total 29.12 kWh over 48h)
2026-08-18 16:53:45.850344: ML Component: Prediction cycle completed
2026-08-18 16:53:45.953675: ML Component: Saved 17313 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 16:54:34.104286: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:54:34.104508: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:54:34.104542: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:54:34.104699: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:54:34.104756: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:54:34.104778: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:54:34.104796: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:55:00.221786: --------------- PredBat - update at 2026-08-18 16:55:00+01:00 with clock skew 0 minutes, minutes now 1015
2026-08-18 16:55:00.222621: Saved current settings to /config/predbat_config.json
2026-08-18 16:55:00.222789: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 16:55:00.222897: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 16:55:00.223006: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 16:55:00.243998: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 16:55:00.244126: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 16:55:00.244304: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 16:55:00.244807: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 16:55:00.244926: Predbat mode is set to Control charge & discharge
2026-08-18 16:55:00.415695: Found 21602 load_today datapoints going back 28 days
2026-08-18 16:55:00.415819: Using load_power data to fill gaps in load_today data
2026-08-18 16:55:01.187773: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 16:55:01.187965: Zero load period starting at 2026-08-17T10:54:00+0100 (1801 minutes) for 189 minutes with base value 206.15
2026-08-18 16:55:01.189036: Processing 721 30-minute periods for power integration
2026-08-18 16:55:01.343456: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 16:55:01.343553: Car charging hold False, threshold 6.0kWh
2026-08-18 16:55:01.343588: Current data so far today: load 10.8kWh, import 10.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 16:55:01.357167: Car 0 using Octopus Intelligent is unplugged
2026-08-18 16:55:01.357259: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 16:55:01.358061: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:55:01.358165: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 16:55:01.358227: Standing charge is set to 46.63p
2026-08-18 16:55:01.433921: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:55:01.434193: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:55:01.434417: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 16:55:01.435525: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 16:55:01.435647: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 16:55:01.435792: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 16:55:01.440413: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 16:55:01.440670: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 16:55:01.480560: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 16:55:01.480825: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 16:55:01.481954: High export rate found rates in range 99p to -99p
2026-08-18 16:55:01.571272: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 16:55:01.571391: Car 0 on Octopus Intelligent, no active plan
2026-08-18 16:55:01.581678: Battery level now 5.76kWh, -1hr ago 6.42kWh, at midnight 6.84kWh, battery value change in the last hour -4.51p, change today -7.42p, rate_forward 6.87p
2026-08-18 16:55:01.582046: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 16:55:01.627680: Today's energy total net 10.5kWh, import 10.5kWh, export 0.0kWh, cost 144.48p, import 97.84p, export 0.0p, carbon 0.0kg
2026-08-18 16:55:01.627791: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 16:55:01.700546: Using weighted-bucket historical load forecast over 14 days
2026-08-18 16:55:01.731567: Today's load divergence 101.52%, in-day adjustment 98.86%, damping 0.95x, yesterday 92.68% today 101.44% blend 29.51%
2026-08-18 16:55:01.731660: Today's predicted so far 10.5kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 10.5kWh forecast extra.
2026-08-18 16:55:01.731971: Today's actual load so far 10.74kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 16:55:01.760366: Inverter 0: Type SK Sunsynk
2026-08-18 16:55:01.760448: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:55:01.760622: Reserve min: 7%, battery_min: 7%
2026-08-18 16:55:01.760693: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:55:01.760943: Inverter 0 SoC: 5.76kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 442W, current battery voltage 51.2V, grid power -55W, load power 495W, PV Power 0W
2026-08-18 16:55:01.761089: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:55:01.761185: Inverter 0 scheduled charge enable is False
2026-08-18 16:55:01.761215: Inverter 0 charge windows currently []
2026-08-18 16:55:01.761241: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:55:01.761347: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:55:01.761381: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:55:01.761416: Inverter 0 scheduled discharge enable is False
2026-08-18 16:55:01.761533: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:55:01.761570: Inverter 0 discharge windows currently []
2026-08-18 16:55:01.761592: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:55:01.761611: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:55:01.761633: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:55:01.816838: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 16:55:01.816962: Plan was last updated on 2026-08-18 16:45:00+01:00 and is now 10.0 minutes old
2026-08-18 16:55:01.817230: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 16:55:01.817276: Best export window [  ]
2026-08-18 16:55:01.818222: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:55:01.821385: Load divergence over 8.0 hours mean 536.29W, min 337.2W, max 1255.8W, std dev 195.62W, divergence 18.24%
2026-08-18 16:55:01.838713: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:55:01.838939: LoadML is_calculating False
2026-08-18 16:55:01.839070: Creating pool of 12 processes to match your CPU count
2026-08-18 16:55:01.938100: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 641.88p, metric_keep 128.56kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.13kWh, PV 0.0kWh
2026-08-18 16:55:02.037083: Battery has 6.17 hours left - now at 5.76kWh
2026-08-18 16:55:02.081830: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 670.34p, metric_keep 129.76kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.15kWh, PV 0.0kWh
2026-08-18 16:55:02.157384: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 382.83p, metric_keep 8.36kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.15kWh, PV 0.0kWh
2026-08-18 16:55:02.248518: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 361.29p, metric_keep 4.13kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.13kWh, PV 0.0kWh
2026-08-18 16:55:02.248593: Saving plan best values to HA entities
2026-08-18 16:55:02.387580: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:55:02.392357: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:55:02.398751: Best charging limit SoC's [16.0, 13.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.47kWh, house 0.43kWh, export 0.0kWh, metric 361.29p, metric10 382.83p
2026-08-18 16:55:02.466509: Marginal costs baseline metric (no standing charge): 314.6532
2026-08-18 16:55:02.706882: Marginal energy costs matrix computed: min=8.0 max=35.96
2026-08-18 16:55:02.796874: Rate array import [{'start': 1015, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1015, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:55:02.797425: - Your estimated bill for today is £1.83 and tomorrow is £1.94
2026-08-18 16:55:02.797461: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:55:02.797481: - The battery is currently at 36% and is in eco mode for the next 6 and a half hours.
2026-08-18 16:55:02.797508: - For the next 48 hours there will be no solar generation.
2026-08-18 16:55:02.797545: - You will run out of battery in 6 and a quarter hours.
2026-08-18 16:55:02.797568: - Your next charge slot will be in 6 and a half hours where import rates will be cheap (8.0p).
2026-08-18 16:55:02.797591: 
2026-08-18 16:55:02.846534: Plan calculation took 1.03 seconds
2026-08-18 16:55:02.850059: No high rate period found
2026-08-18 16:55:02.894677: Import threshold used for optimisation was 8.0p
2026-08-18 16:55:02.939577: Low import rate windows [0: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 1: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 2: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 3: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 4: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 5: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 6: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 7: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 8: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 9: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 10: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 11: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 25: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 26: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 27: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 28: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 29: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 30: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 31: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 32: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 33: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 34: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 35: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 36: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 37: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 38: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 39: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 40: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 41: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 42: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 43: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 44: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 45: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 46: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 47: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 48: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 49: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 50: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 51: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 52: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 53: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 54: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 55: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 56: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 57: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 58: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 59: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 60: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 61: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 62: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 63: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 64: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 65: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 66: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 67: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 68: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 69: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 70: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 71: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 72: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 73: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 74: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 75: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 76: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 77: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 78: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 79: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 80: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 81: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 82: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 83: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 84: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 85: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 86: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 87: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 88: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 89: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 90: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 91: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 92: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 93: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 94: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75]
2026-08-18 16:55:02.945039: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-18 16:55:02.945175: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:55:02.945268: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:55:02.945508: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:55:02.945597: No export window planned
2026-08-18 16:55:02.945722: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:55:02.945756: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:55:02.945885: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:55:02.946060: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:55:02.946120: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:55:02.946215: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:55:02.946316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946420: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946446: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946470: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:02.946759: Inverter 0 count register writes 0
2026-08-18 16:55:02.961280: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 16:55:02.961400: Recompute is saving previous plan...
2026-08-18 16:55:02.963950: Best charge window [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0% ]
2026-08-18 16:55:02.964024: Best export window [  ]
2026-08-18 16:55:02.964683: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 16:55:02.967166: Load divergence over 8.0 hours mean 536.29W, min 337.2W, max 1255.8W, std dev 195.62W, divergence 18.24%
2026-08-18 16:55:02.981525: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 16:55:02.981598: LoadML is_calculating False
2026-08-18 16:55:02.981645: Creating pool of 12 processes to match your CPU count
2026-08-18 16:55:03.060494: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 16:55:03.062729: Optimise levels pass started at 2026-08-18 16:55:03
2026-08-18 16:55:03.062802: Optimise all windows, total charge 94 export 1
2026-08-18 16:55:03.420262: >> Region optimisation pass width 960 gives best_metric 414.76p, best_cost 456.26p, best_cycle 50.92kWh, best_import 37.6kWh
2026-08-18 16:55:03.630992: >> Region optimisation pass width 480 gives best_metric 414.76p, best_cost 456.26p, best_cycle 50.92kWh, best_import 37.6kWh
2026-08-18 16:55:03.963366: >> Region optimisation pass width 240 gives best_metric 414.76p, best_cost 456.26p, best_cycle 50.92kWh, best_import 37.6kWh
2026-08-18 16:55:04.800497: >> Region optimisation pass width 120 gives best_metric 414.76p, best_cost 456.26p, best_cycle 50.92kWh, best_import 37.6kWh
2026-08-18 16:55:04.800844: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 60
2026-08-18 16:55:04.800959: Optimise levels pass ended at 2026-08-18 16:55:04, duration 1.7 seconds tried 200 combinations
2026-08-18 16:55:04.801114: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 414.76p, best_keep 3.76kWh, best_cycle 50.92kWh, best_carbon 0kg, best_import 37.6kWh
2026-08-18 16:55:04.819413: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 16:55:10.695447: Tweak plan optimisation started metric 301.3p, cost 310.62p
2026-08-18 16:55:10.977733: Tweak optimisation finished metric 301.3p, cost 310.62p, metric_keep 1.26kWh, cycle 30.58kWh, carbon 0kg, import 19.39kWh, changed 8 window(s)
2026-08-18 16:55:11.003455: Swap charge optimisation started metric 301.3p, cost 310.62p, min_improvement_swap 0.1p
2026-08-18 16:55:17.204793: Swap charge optimisation finished metric 301.3p, cost 310.62p
2026-08-18 16:55:17.378302: Pruned 2 dead plan slot(s) in 16 trial(s), nominal metric 299.27p -> 299.11p, plan now metric 301.78p, cost 308.61p, cycle 30.84kWh, import 19.14kWh
2026-08-18 16:55:17.388369: Raw charge windows [ 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 31%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 19%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:55:17.389332: Unclipped charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 31%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:55:17.389573: Unfiltered charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 31%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:55:17.389758: Filtered charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 31%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 16:55:17.419579: Previous plan best metric is 303.8 (cost 310.62) and new plan best metric is 301.3 (cost 310.62)
2026-08-18 16:55:17.419798: New plan metric is significantly better from previous plan, using new plan
2026-08-18 16:55:17.419867: Plan valid is now true after recompute was False
2026-08-18 16:55:17.443724: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 640.36p, metric_keep 128.31kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.94kWh, PV 0.0kWh
2026-08-18 16:55:17.536399: Battery has 6.17 hours left - now at 5.76kWh
2026-08-18 16:55:17.575155: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 668.74p, metric_keep 129.51kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.95kWh, PV 0.0kWh
2026-08-18 16:55:17.639973: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 369.97p, metric_keep 3.48kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.95kWh, PV 0.0kWh
2026-08-18 16:55:17.715630: predict best end_record 08-19 23:30:00, final soc 1.56kWh, metric 355.24p, metric_keep 1.26kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.94kWh, PV 0.0kWh
2026-08-18 16:55:17.715723: Saving plan best values to HA entities
2026-08-18 16:55:17.861813: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 16:55:17.866984: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 16:55:17.872284: Best charging limit SoC's [5.0, 3.0, 2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.14kWh, house 0.0kWh, export 0.0kWh, metric 355.24p, metric10 369.97p
2026-08-18 16:55:17.949338: Marginal costs baseline metric (no standing charge): 308.6055
2026-08-18 16:55:18.239098: Marginal energy costs matrix computed: min=8.0 max=37.93
2026-08-18 16:55:18.322283: Rate array import [{'start': 1015, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1015, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 16:55:18.322884: - Your estimated bill for today is £1.83 and tomorrow is £1.96
2026-08-18 16:55:18.322932: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 16:55:18.322955: - The battery is currently at 36% and is in eco mode for the next 35 minutes.
2026-08-18 16:55:18.322973: - For the next 48 hours there will be no solar generation.
2026-08-18 16:55:18.322990: - You have enough battery to reach the next charge.
2026-08-18 16:55:18.323007: - Your next charge slot will be in 35 minutes where import rates will be very expensive (33.8p).
2026-08-18 16:55:18.323028: 
2026-08-18 16:55:18.374996: Plan calculation took 15.41 seconds
2026-08-18 16:55:18.375342: Inverter 0: Type SK Sunsynk
2026-08-18 16:55:18.375390: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 16:55:18.375596: Reserve min: 7%, battery_min: 7%
2026-08-18 16:55:18.375670: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 16:55:18.376026: Inverter 0 SoC: 5.76kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 438W, current battery voltage 51.2V, grid power -51W, load power 492W, PV Power 0W
2026-08-18 16:55:18.376270: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:55:18.376379: Inverter 0 scheduled charge enable is False
2026-08-18 16:55:18.376435: Inverter 0 charge windows currently []
2026-08-18 16:55:18.376470: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 16:55:18.376614: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:55:18.376659: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:55:18.376697: Inverter 0 scheduled discharge enable is False
2026-08-18 16:55:18.376829: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:55:18.376886: Inverter 0 discharge windows currently []
2026-08-18 16:55:18.376910: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:55:18.376931: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:55:18.376949: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:55:18.429055: Inverter 0 Charge window will be: 2026-08-18 17:30:00+01:00 - 2026-08-18 18:00:00+01:00 - current SoC 36%, target 31%
2026-08-18 16:55:18.429220: Inverter 0 disabled charge window while waiting for schedule (now 08-18 16:55:00 target set_window_minutes 30 charge start time 08-18 17:30:00) original inverter start time 08-20 00:00:00
2026-08-18 16:55:18.429326: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:55:18.429561: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:55:18.429662: No export window planned
2026-08-18 16:55:18.429823: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 16:55:18.429865: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 16:55:18.430036: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 16:55:18.430242: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 16:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 16:55:18.430302: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 16:55:18.430399: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 16:55:18.430530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430740: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430854: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.430987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.431012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.431044: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.431068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.431091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.431115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 16:55:18.431159: Inverter 0 count register writes 0
2026-08-18 16:55:18.452770: Total inverter register writes now 867
2026-08-18 16:55:18.484128: Info: Completed run status Demand
2026-08-18 16:55:18.490403: Info: record_status Demand
2026-08-18 16:55:18.496754: Saved current settings to /config/predbat_config.json
2026-08-18 16:55:18.497064: Compare, best tariff: current metric 129.87p
2026-08-18 16:55:49.595160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:55:49.595455: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:55:49.595519: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:55:49.595729: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:55:49.595774: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:55:49.595809: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:55:49.595848: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 16:56:34.736255: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 16:56:34.894797: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 16:58:03.824870: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 16:58:03.825094: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 16:58:03.825160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 16:58:03.825346: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 16:58:03.825386: Note: Inverter does not support discharge freeze - disabled
2026-08-18 16:58:03.825409: Note: Inverter does not support charge freeze - disabled
2026-08-18 16:58:03.825431: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:00:00.037814: --------------- PredBat - update at 2026-08-18 17:00:00+01:00 with clock skew 0 minutes, minutes now 1020
2026-08-18 17:00:00.038595: Saved current settings to /config/predbat_config.json
2026-08-18 17:00:00.038703: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 17:00:00.038758: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:00:00.038819: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:00:00.058903: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:00:00.059043: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:00:00.059253: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:00:00.059807: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:00:00.060002: Predbat mode is set to Control charge & discharge
2026-08-18 17:00:00.335467: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:00:00.335627: Using load_power data to fill gaps in load_today data
2026-08-18 17:00:01.184460: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:00:01.187036: Zero load period starting at 2026-08-17T10:54:00+0100 (1806 minutes) for 189 minutes with base value 206.125
2026-08-18 17:00:01.188669: Processing 721 30-minute periods for power integration
2026-08-18 17:00:01.412813: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:00:01.412945: Car charging hold False, threshold 6.0kWh
2026-08-18 17:00:01.413011: Current data so far today: load 10.75kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:00:01.430903: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:00:01.431087: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:00:01.432181: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:00:01.432281: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:00:01.432376: Standing charge is set to 46.63p
2026-08-18 17:00:01.548313: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:00:01.548559: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:00:01.548750: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:00:01.550638: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:00:01.551171: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:00:01.551757: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:00:01.557779: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:00:01.558311: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:00:01.594806: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:00:01.594901: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:00:01.596041: High export rate found rates in range 99p to -99p
2026-08-18 17:00:01.683373: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:00:01.683508: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:00:01.693023: Battery level now 5.76kWh, -1hr ago 6.4kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -7.42p, rate_forward 6.87p
2026-08-18 17:00:01.693363: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:00:01.746650: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:00:01.746809: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:00:01.820619: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:00:01.848363: Today's load divergence 100.68%, in-day adjustment 98.32%, damping 0.95x, yesterday 92.68% today 100.65% blend 29.17%
2026-08-18 17:00:01.848446: Today's predicted so far 10.62kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 10.62kWh forecast extra.
2026-08-18 17:00:01.848708: Today's actual load so far 10.72kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 17:00:01.879223: Inverter 0: Type SK Sunsynk
2026-08-18 17:00:01.879308: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:00:01.879488: Reserve min: 7%, battery_min: 7%
2026-08-18 17:00:01.879559: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:00:01.879824: Inverter 0 SoC: 5.64kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 563W, current battery voltage 51.2V, grid power -52W, load power 610W, PV Power 0W
2026-08-18 17:00:01.880011: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:00:01.880110: Inverter 0 scheduled charge enable is False
2026-08-18 17:00:01.880168: Inverter 0 charge windows currently []
2026-08-18 17:00:01.880196: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:00:01.880330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:00:01.880366: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:00:01.880403: Inverter 0 scheduled discharge enable is False
2026-08-18 17:00:01.880534: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:00:01.880570: Inverter 0 discharge windows currently []
2026-08-18 17:00:01.880593: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:00:01.880612: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:00:01.880634: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:00:01.940396: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:00:01.940483: Plan was last updated on 2026-08-18 16:55:00+01:00 and is now 5.0 minutes old
2026-08-18 17:00:01.940700: Best charge window [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 31%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ]
2026-08-18 17:00:01.940734: Best export window [  ]
2026-08-18 17:00:01.941444: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:00:01.944057: Load divergence over 8.0 hours mean 541.03W, min 323.4W, max 1247.4W, std dev 203.71W, divergence 18.83%
2026-08-18 17:00:01.959545: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:00:01.959636: LoadML is_calculating False
2026-08-18 17:00:01.959686: Creating pool of 12 processes to match your CPU count
2026-08-18 17:00:02.074838: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 645.28p, metric_keep 128.7kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.9kWh, PV 0.0kWh
2026-08-18 17:00:02.243095: Battery has 6.08 hours left - now at 5.64kWh
2026-08-18 17:00:02.290783: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 673.52p, metric_keep 129.88kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.91kWh, PV 0.0kWh
2026-08-18 17:00:02.378084: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 377.59p, metric_keep 3.29kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.91kWh, PV 0.0kWh
2026-08-18 17:00:02.464293: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 364.33p, metric_keep 1.13kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.9kWh, PV 0.0kWh
2026-08-18 17:00:02.464376: Saving plan best values to HA entities
2026-08-18 17:00:02.636533: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:00:02.642567: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:00:02.647637: Best charging limit SoC's [5.0, 3.0, 2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.69kWh, house 0.0kWh, export 0.0kWh, metric 364.33p, metric10 377.59p
2026-08-18 17:00:02.721932: Marginal costs baseline metric (no standing charge): 317.6974
2026-08-18 17:00:02.947467: Marginal energy costs matrix computed: min=8.0 max=37.65
2026-08-18 17:00:03.021247: Rate array import [{'start': 1020, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1020, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:00:03.021860: - Your estimated bill for today is £1.88 and tomorrow is £1.96
2026-08-18 17:00:03.021919: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:00:03.021986: - The battery is currently at 35% and is in eco mode for the next 30 minutes.
2026-08-18 17:00:03.022018: - For the next 48 hours there will be no solar generation.
2026-08-18 17:00:03.022047: - You have enough battery to reach the next charge.
2026-08-18 17:00:03.022078: - Your next charge slot will be in 30 minutes where import rates will be very expensive (33.8p).
2026-08-18 17:00:03.022112: 
2026-08-18 17:00:03.083843: Plan calculation took 1.14 seconds
2026-08-18 17:00:03.087495: No high rate period found
2026-08-18 17:00:03.130788: Import threshold used for optimisation was 8.0p
2026-08-18 17:00:03.180407: Low import rate windows [0: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 1: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 2: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 3: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 4: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 5: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 6: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 7: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 8: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 9: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 10: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 24: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 25: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 26: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 27: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 28: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 29: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 30: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 31: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 32: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 33: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 34: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 35: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 36: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 37: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 38: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 39: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 40: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 41: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 42: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 43: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 44: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 45: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 46: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 47: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 48: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 49: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 50: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 51: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 52: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 53: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 54: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 55: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 56: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 57: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 58: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 59: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 60: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 61: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 62: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 63: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 64: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 65: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 66: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 67: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 68: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 69: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 70: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 71: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 72: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 73: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 74: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 75: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 76: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 77: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 78: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 79: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 80: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 81: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 82: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 83: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 84: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 85: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 86: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 87: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 88: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 89: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 90: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 91: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 92: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 93: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75]
2026-08-18 17:00:03.186188: Inverter 0 Charge window will be: 2026-08-18 17:30:00+01:00 - 2026-08-18 18:00:00+01:00 - current SoC 35%, target 31%
2026-08-18 17:00:03.186306: Inverter 0 configuring charge window now (now 08-18 17:00:00 target set_window_minutes 30 charge start time 08-18 17:30:00
2026-08-18 17:00:03.186438: IOG action latency: 0.0 seconds from slot start
2026-08-18 17:00:03.186616: Adjust idle time, charge 17:30:00-18:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:00:03.186849: Adjust demand (idle) time computed is 05:00:00-17:30:00
2026-08-18 17:00:03.186934: Inverter 0 set new demand (idle) end time to 17:30:00 was 23:59:00
2026-08-18 17:00:08.192609: Inverter 0 write_and_poll_value: Wrote 17:30:00 to idle_end_time, successfully now 17:30:00
2026-08-18 17:00:13.217977: Inverter 0 write_and_poll_value: Wrote 17:30:00 to charge_start_time, successfully now 17:30:00
2026-08-18 17:00:18.225952: Inverter 0 write_and_poll_value: Wrote 18:00:00 to charge_end_time, successfully now 18:00:00
2026-08-18 17:00:18.226066: Inverter 0 Updated start and end charge window to 17:30:00 - 18:00:00 (old 00:00:00 - 00:00:00)
2026-08-18 17:00:23.233245: Inverter 0 Wrote scheduled_charge_enable to True successfully and got on
2026-08-18 17:00:23.233404: Inverter 0 Turning on scheduled charge
2026-08-18 17:00:23.233495: No export window planned
2026-08-18 17:00:23.233724: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:00:23.233771: Adjust idle time, charge 17:30:00-18:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:00:23.233965: Adjust demand (idle) time computed is 05:00:00-17:30:00
2026-08-18 17:00:23.234149: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-18 17:00:23.234213: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:00:23.234270: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:00:23.234364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234405: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234463: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234541: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:00:23.234827: Inverter 0 count register writes 0
2026-08-18 17:00:23.250846: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 17:00:23.256029: Total inverter register writes now 867
2026-08-18 17:00:23.288626: Info: Completed run status Demand
2026-08-18 17:00:23.294892: Info: record_status Demand
2026-08-18 17:00:23.303185: Saved current settings to /config/predbat_config.json
2026-08-18 17:00:23.303500: Compare, best tariff: current metric 129.87p
2026-08-18 17:00:46.404330: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 17:00:47.455382: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:00:47.455556: Zero load period starting at 2026-08-17T10:54:00+0100 (1806 minutes) for 189 minutes with base value 395.85
2026-08-18 17:00:47.456717: Processing 1345 30-minute periods for power integration
2026-08-18 17:00:47.540337: ML Component: Car charging hold False, car energy reported load False
2026-08-18 17:00:47.642391: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:00:47.744618: ML Temperature data points: 49381
2026-08-18 17:00:48.025366: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 17:00:48.065802: ML Component: Data fetch completed, load data age 60.0 days, 17315 data points
2026-08-18 17:00:48.065894: ML Component: Starting fine-tune training (2h interval), model age is 2.008464280277778 hours
2026-08-18 17:00:48.065919: ML Component: Doing training...
2026-08-18 17:00:48.081052: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=57.0 days)
2026-08-18 17:00:48.081181: ML Predictor: Curriculum training - 5 passes, window 57.0→60.0 days + final full pass (60.1 days)
2026-08-18 17:00:48.139198: ML Predictor: Curriculum pass 1/5: window=57.0 days (1368 hours of data)
2026-08-18 17:00:48.139329: ML Predictor: Starting initial training with 30 epochs
2026-08-18 17:00:48.773570: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 17:00:54.143407: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 17:00:54.476763: ML Predictor: Normalization stats [fit] target(mean=0.0599 std=0.0485) load(mean=0.0599 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7466 std=4.5738) import_rate(mean=16.5928 std=8.3605) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5283)
2026-08-18 17:01:03.642103: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 17:01:03.642415: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:01:03.642467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:01:03.642637: Inverter 0 idle time is 08-18 05:00:00-08-18 17:30:00
2026-08-18 17:01:03.642690: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:01:03.642798: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:01:03.642864: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:01:16.939471: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0147 val_mae=0.0054 kWh val_bias=+0.0009 kWh (+1.1%) combined=0.0039 kWh ema_combined=0.0039 kWh
2026-08-18 17:01:29.888151: Info: HAHistory: Pruning history data started.
2026-08-18 17:01:29.891306: Info: HAHistory: Pruning history data completed.
2026-08-18 17:01:44.057081: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0153 val_mae=0.0054 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0035 kWh ema_combined=0.0038 kWh
2026-08-18 17:02:04.024258: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0174 val_mae=0.0052 kWh val_bias=+0.0023 kWh (+2.9%) combined=0.0046 kWh ema_combined=0.0040 kWh
2026-08-18 17:02:22.014416: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0157 val_mae=0.0049 kWh val_bias=+0.0016 kWh (+2.0%) combined=0.0037 kWh ema_combined=0.0039 kWh
2026-08-18 17:02:44.373099: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0161 val_mae=0.0050 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0028 kWh ema_combined=0.0036 kWh
2026-08-18 17:03:04.171177: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 17:03:04.171475: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:03:04.171527: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:03:04.171692: Inverter 0 idle time is 08-18 05:00:00-08-18 17:30:00
2026-08-18 17:03:04.171739: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:03:04.171768: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:03:04.171801: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:03:04.466426: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0137 val_mae=0.0043 kWh val_bias=+0.0010 kWh (+1.3%) combined=0.0025 kWh ema_combined=0.0033 kWh
2026-08-18 17:03:22.024686: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0134 val_mae=0.0046 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-18 17:03:36.827566: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0111 val_mae=0.0047 kWh val_bias=+0.0028 kWh (+3.6%) combined=0.0046 kWh ema_combined=0.0035 kWh
2026-08-18 17:03:50.627551: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0111 val_mae=0.0039 kWh val_bias=+0.0014 kWh (+1.8%) combined=0.0031 kWh ema_combined=0.0034 kWh
2026-08-18 17:04:04.207075: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0098 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0029 kWh
2026-08-18 17:04:17.270669: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0094 val_mae=0.0032 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0025 kWh
2026-08-18 17:04:33.469240: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0083 val_mae=0.0031 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-18 17:04:47.565412: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0080 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-18 17:05:00.524376: --------------- PredBat - update at 2026-08-18 17:05:00+01:00 with clock skew 0 minutes, minutes now 1025
2026-08-18 17:05:00.525385: Saved current settings to /config/predbat_config.json
2026-08-18 17:05:00.525620: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 17:05:00.525708: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:05:00.525912: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:05:00.574735: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:05:00.575043: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:05:00.575453: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:05:00.576294: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:05:00.576517: Predbat mode is set to Control charge & discharge
2026-08-18 17:05:01.097457: Found 21602 load_today datapoints going back 27 days
2026-08-18 17:05:01.097602: Using load_power data to fill gaps in load_today data
2026-08-18 17:05:02.607803: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:05:02.622134: Zero load period starting at 2026-08-17T10:54:00+0100 (1811 minutes) for 189 minutes with base value 206.1
2026-08-18 17:05:02.624443: Processing 721 30-minute periods for power integration
2026-08-18 17:05:02.803503: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:05:02.803626: Car charging hold False, threshold 6.0kWh
2026-08-18 17:05:02.803675: Current data so far today: load 10.8kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:05:02.827639: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:05:02.827766: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:05:02.828805: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:05:02.829170: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:05:02.829320: Standing charge is set to 46.63p
2026-08-18 17:05:03.004165: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:05:03.004652: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:05:03.005063: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:05:03.006716: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:05:03.006994: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:05:03.007340: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:05:03.015374: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:05:03.015995: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:05:03.084066: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:05:03.084416: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:05:03.086589: High export rate found rates in range 99p to -99p
2026-08-18 17:05:03.270369: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:05:03.288052: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:05:03.312832: Battery level now 5.64kWh, -1hr ago 6.24kWh, at midnight 6.84kWh, battery value change in the last hour -4.12p, change today -8.25p, rate_forward 6.87p
2026-08-18 17:05:03.313731: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:05:03.434085: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:05:03.434376: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:05:03.709476: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:05:03.769562: Today's load divergence 100.4%, in-day adjustment 98.16%, damping 0.95x, yesterday 92.68% today 100.38% blend 28.82%
2026-08-18 17:05:03.770051: Today's predicted so far 10.71kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 10.71kWh forecast extra.
2026-08-18 17:05:03.770102: Today's actual load so far 10.77kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 17:05:03.817684: Inverter 0: Type SK Sunsynk
2026-08-18 17:05:03.817790: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:05:03.818008: Reserve min: 7%, battery_min: 7%
2026-08-18 17:05:03.818106: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:05:03.818448: Inverter 0 SoC: 5.64kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 615W, current battery voltage 51.2V, grid power -55W, load power 669W, PV Power 0W
2026-08-18 17:05:03.818629: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 17:05:03.818735: Inverter 0 scheduled charge enable is True
2026-08-18 17:05:03.818794: Inverter 0 charge windows currently [{'start': 1050, 'end': 1080, 'average': 0}, {'start': 2490, 'end': 2520, 'average': 0}]
2026-08-18 17:05:03.818904: Inverter 0 Charge settings: 08-18 17:30:00-08-18 18:00:00, limit 7.0%, power 5.0kW
2026-08-18 17:05:03.819047: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:05:03.819092: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:05:03.819137: Inverter 0 scheduled discharge enable is False
2026-08-18 17:05:03.819310: Inverter 0 idle time is 08-18 05:00:00-08-18 17:30:00
2026-08-18 17:05:03.819359: Inverter 0 discharge windows currently []
2026-08-18 17:05:03.819388: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:05:03.819420: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:05:03.819444: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:05:04.013174: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:05:04.013319: Plan was last updated on 2026-08-18 16:55:00+01:00 and is now 10.0 minutes old
2026-08-18 17:05:04.013672: Best charge window [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 31%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:00:00 @ 33.75p 100% ]
2026-08-18 17:05:04.013807: Best export window [  ]
2026-08-18 17:05:04.017617: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:05:04.022420: Load divergence over 8.0 hours mean 545.8W, min 330.0W, max 1248.0W, std dev 224.8W, divergence 20.59%
2026-08-18 17:05:04.076691: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:05:04.077480: LoadML is_calculating True
2026-08-18 17:05:04.077584: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:05:04.151380: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 643.91p, metric_keep 128.46kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.99kWh, PV 0.0kWh
2026-08-18 17:05:04.341188: Battery has 6.0 hours left - now at 5.64kWh
2026-08-18 17:05:04.456586: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 672.07p, metric_keep 129.6kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.0kWh, PV 0.0kWh
2026-08-18 17:05:04.578897: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 378.93p, metric_keep 3.46kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 33.0kWh, PV 0.0kWh
2026-08-18 17:05:04.697580: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 366.94p, metric_keep 0.99kWh, min_soc 1.17kWh @ 08-18 23:25:00, load 31.99kWh, PV 0.0kWh
2026-08-18 17:05:04.720324: Saving plan best values to HA entities
2026-08-18 17:05:05.042429: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:05:05.050610: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:05:05.058746: Best charging limit SoC's [5.0, 3.0, 2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 20.14kWh, house 0.0kWh, export 0.0kWh, metric 366.94p, metric10 378.93p
2026-08-18 17:05:05.193849: Marginal costs baseline metric (no standing charge): 320.3078
2026-08-18 17:05:05.659215: Marginal energy costs matrix computed: min=8.0 max=37.34
2026-08-18 17:05:05.842699: Rate array import [{'start': 1025, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1025, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:05:05.844662: - Your estimated bill for today is £1.86 and tomorrow is £1.96
2026-08-18 17:05:05.844731: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:05:05.844763: - The battery is currently at 35% and is in eco mode for the next 25 minutes.
2026-08-18 17:05:05.844796: - For the next 48 hours there will be no solar generation.
2026-08-18 17:05:05.844835: - You have enough battery to reach the next charge.
2026-08-18 17:05:05.844870: - Your next charge slot will be in 25 minutes where import rates will be very expensive (33.8p).
2026-08-18 17:05:05.844913: 
2026-08-18 17:05:05.956502: Plan calculation took 1.94 seconds
2026-08-18 17:05:05.960372: No high rate period found
2026-08-18 17:05:06.106544: Import threshold used for optimisation was 8.0p
2026-08-18 17:05:06.199051: Low import rate windows [0: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 1: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 2: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 3: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 4: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 5: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 6: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 7: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 8: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 9: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 10: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 24: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 25: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 26: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 27: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 28: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 29: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 30: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 31: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 32: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 33: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 34: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 35: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 36: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 37: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 38: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 39: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 40: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 41: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 42: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 43: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 44: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 45: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 46: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 47: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 48: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 49: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 50: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 51: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 52: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 53: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 54: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 55: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 56: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 57: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 58: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 59: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 60: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 61: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 62: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 63: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 64: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 65: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 66: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 67: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 68: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 69: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 70: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 71: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 72: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 73: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 74: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 75: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 76: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 77: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 78: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 79: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 80: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 81: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 82: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 83: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 84: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 85: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 86: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 87: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 88: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 89: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 90: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 91: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 92: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 93: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 94: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75]
2026-08-18 17:05:06.209587: Inverter 0 Charge window will be: 2026-08-18 17:30:00+01:00 - 2026-08-18 18:00:00+01:00 - current SoC 35%, target 31%
2026-08-18 17:05:06.209730: Inverter 0 configuring charge window now (now 08-18 17:05:00 target set_window_minutes 30 charge start time 08-18 17:30:00
2026-08-18 17:05:06.209831: IOG action latency: 0.0 seconds from slot start
2026-08-18 17:05:06.209996: Adjust idle time, charge 17:30:00-18:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:05:06.210222: Adjust demand (idle) time computed is 05:00:00-17:30:00
2026-08-18 17:05:06.210335: No export window planned
2026-08-18 17:05:06.210453: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:05:06.210487: Adjust idle time, charge 17:30:00-18:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:05:06.210655: Adjust demand (idle) time computed is 05:00:00-17:30:00
2026-08-18 17:05:06.210797: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-18 17:05:06.210853: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:05:06.210906: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:05:06.210995: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.211042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.211112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.211150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.212009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.212283: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.212451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.212770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.212985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.213156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.213500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.213719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.213923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.214262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:05:06.214331: Inverter 0 count register writes 0
2026-08-18 17:05:06.244384: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 17:05:06.244718: Recompute is saving previous plan...
2026-08-18 17:05:06.248171: Best charge window [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 7%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 7%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 7%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 7%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 7%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 7%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 7%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 7%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 7%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 7%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 7%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 7%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 7%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 7%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 7%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 7%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 7%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 7%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 7%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 7%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 7%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 7%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 7%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 7%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 7%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 7%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 7%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 7%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 7%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 7%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 7%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 7%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 7%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 7%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 7%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 7%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 7%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 7%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 7%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 7%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 7%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 7%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 7%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 7%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 7%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 7%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 7%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 7%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 7%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 7%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 7%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 7%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 7%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 7%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 7%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 7%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 7%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 7%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 7%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 7%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 7%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 7%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 7%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 7%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 7%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 7%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 7%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 7%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 7%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 7%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 7%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 7%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 7%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 7%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 7%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 7%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 7%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 7%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 7%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 7%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 7%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 7% ]
2026-08-18 17:05:06.248354: Best export window [  ]
2026-08-18 17:05:06.249364: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:05:06.253683: Load divergence over 8.0 hours mean 545.8W, min 330.0W, max 1248.0W, std dev 224.8W, divergence 20.59%
2026-08-18 17:05:06.276121: Calculating data from yesterday for savings calculation
2026-08-18 17:05:06.292255: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 17:05:06.361833: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 17:05:06.394854: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 17:05:06.460149: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 17:05:06.561228: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 17:05:06.732708: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 17:05:06.732880: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 17:05:06.760028: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:05:06.769392: LoadML is_calculating True
2026-08-18 17:05:06.769482: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:05:06.792287: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 17:05:06.796608: Optimise levels pass started at 2026-08-18 17:05:06
2026-08-18 17:05:06.812033: Optimise all windows, total charge 94 export 1
2026-08-18 17:05:09.445104: >> Region optimisation pass width 960 gives best_metric 417.71p, best_cost 456.45p, best_cycle 50.62kWh, best_import 37.3kWh
2026-08-18 17:05:10.028720: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0076 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-18 17:05:10.120833: >> Region optimisation pass width 480 gives best_metric 417.71p, best_cost 456.45p, best_cycle 50.62kWh, best_import 37.3kWh
2026-08-18 17:05:11.023926: >> Region optimisation pass width 240 gives best_metric 417.71p, best_cost 456.45p, best_cycle 50.62kWh, best_import 37.3kWh
2026-08-18 17:05:18.840210: >> Region optimisation pass width 120 gives best_metric 413.34p, best_cost 426.4p, best_cycle 51.92kWh, best_import 33.55kWh
2026-08-18 17:05:18.840662: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 59
2026-08-18 17:05:18.840848: Optimise levels pass ended at 2026-08-18 17:05:18, duration 12.0 seconds tried 222 combinations
2026-08-18 17:05:18.841024: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 413.34p, best_keep 3.65kWh, best_cycle 51.92kWh, best_carbon 0kg, best_import 33.55kWh
2026-08-18 17:05:18.887432: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 15.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 17:05:50.552165: Tweak plan optimisation started metric 303.57p, cost 313.03p
2026-08-18 17:05:52.906978: Tweak optimisation finished metric 303.57p, cost 313.03p, metric_keep 1.26kWh, cycle 30.45kWh, carbon 0kg, import 19.37kWh, changed 8 window(s)
2026-08-18 17:05:52.931092: Swap charge optimisation started metric 303.57p, cost 313.03p, min_improvement_swap 0.1p
2026-08-18 17:05:53.127001: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0075 val_mae=0.0028 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 17:06:02.941238: Swap charge optimisation finished metric 303.57p, cost 313.03p
2026-08-18 17:06:03.186290: Pruned 1 dead plan slot(s) in 14 trial(s), nominal metric 301.59p -> 301.35p, plan now metric 304.85p, cost 308.84p, cycle 30.46kWh, import 18.85kWh
2026-08-18 17:06:03.200922: Raw charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:06:03.201562: Unclipped charge windows [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:06:03.201949: Unfiltered charge windows [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:06:03.202242: Filtered charge windows [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:06:03.248489: Previous plan best metric is 304.22 (cost 314.09) and new plan best metric is 303.57 (cost 313.03)
2026-08-18 17:06:03.248821: New plan is a cost-neutral improvement but less fragmented (4 vs 6 segments), using new plan
2026-08-18 17:06:03.248932: Plan valid is now true after recompute was False
2026-08-18 17:06:03.291357: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 642.32p, metric_keep 128.2kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.79kWh, PV 0.0kWh
2026-08-18 17:06:03.428309: Battery has 6.0 hours left - now at 5.64kWh
2026-08-18 17:06:03.556994: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 670.4p, metric_keep 129.34kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.79kWh, PV 0.0kWh
2026-08-18 17:06:03.666298: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 377.42p, metric_keep 5.07kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.79kWh, PV 0.0kWh
2026-08-18 17:06:03.839833: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 355.48p, metric_keep 1.61kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.79kWh, PV 0.0kWh
2026-08-18 17:06:03.839967: Saving plan best values to HA entities
2026-08-18 17:06:04.110469: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:06:04.119504: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:06:04.128718: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.85kWh, house 0.0kWh, export 0.0kWh, metric 355.48p, metric10 377.42p
2026-08-18 17:06:04.282168: Marginal costs baseline metric (no standing charge): 308.841
2026-08-18 17:06:04.564576: Marginal energy costs matrix computed: min=8.0 max=39.8
2026-08-18 17:06:04.722296: Rate array import [{'start': 1025, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1025, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:06:04.723318: - Your estimated bill for today is £1.85 and tomorrow is £1.94
2026-08-18 17:06:04.736112: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:06:04.736258: - The battery is currently at 35% and is in eco mode for the next 2 and a half hours.
2026-08-18 17:06:04.736405: - For the next 48 hours there will be no solar generation.
2026-08-18 17:06:04.736514: - You have enough battery to reach the next charge.
2026-08-18 17:06:04.736588: - Your next charge slot will be in 2 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 17:06:04.736707: 
2026-08-18 17:06:04.779789: Plan calculation took 58.54 seconds
2026-08-18 17:06:04.780788: Inverter 0: Type SK Sunsynk
2026-08-18 17:06:04.780847: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:06:04.781138: Reserve min: 7%, battery_min: 7%
2026-08-18 17:06:04.781249: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:06:04.783071: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 582W, current battery voltage 51.2V, grid power -54W, load power 629W, PV Power 0W
2026-08-18 17:06:04.783302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 17:06:04.783434: Inverter 0 scheduled charge enable is True
2026-08-18 17:06:04.783522: Inverter 0 charge windows currently [{'start': 1050, 'end': 1080, 'average': 0}, {'start': 2490, 'end': 2520, 'average': 0}]
2026-08-18 17:06:04.783663: Inverter 0 Charge settings: 08-18 17:30:00-08-18 18:00:00, limit 7.0%, power 5.0kW
2026-08-18 17:06:04.783840: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:06:04.783883: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:06:04.783987: Inverter 0 scheduled discharge enable is False
2026-08-18 17:06:04.784172: Inverter 0 idle time is 08-18 05:00:00-08-18 17:30:00
2026-08-18 17:06:04.784214: Inverter 0 discharge windows currently []
2026-08-18 17:06:04.784284: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:06:04.784321: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:06:04.784372: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:06:04.908409: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 35%, target 22%
2026-08-18 17:06:04.908604: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:05:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-18 17:30:00
2026-08-18 17:06:04.908767: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:06:04.909039: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:06:04.909198: Inverter 0 set new demand (idle) end time to 23:59:00 was 17:30:00
2026-08-18 17:06:09.915271: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-18 17:06:14.924395: Inverter 0 Wrote scheduled_charge_enable to False successfully and got off
2026-08-18 17:06:14.924523: Inverter 0 Turning off scheduled charge
2026-08-18 17:06:14.924710: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:06:14.924920: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:06:15.241381: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0075 val_mae=0.0027 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 17:06:19.935503: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_start_time, successfully now 00:00:00
2026-08-18 17:06:24.947333: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_end_time, successfully now 00:00:00
2026-08-18 17:06:24.947554: Inverter 0 Updated start and end charge window to 00:00:00 - 00:00:00 (old 17:30:00 - 18:00:00)
2026-08-18 17:06:24.947657: No export window planned
2026-08-18 17:06:24.947870: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:06:24.948016: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:06:24.948282: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:06:24.948551: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:06:24.948682: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:06:24.948831: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:06:24.948992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949320: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949534: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.949998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.950092: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.950184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.950276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.950401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:06:24.950499: Inverter 0 count register writes 0
2026-08-18 17:06:24.991945: Total inverter register writes now 867
2026-08-18 17:06:25.049533: Info: Completed run status Demand
2026-08-18 17:06:25.061439: Info: record_status Demand
2026-08-18 17:06:25.085747: Saved current settings to /config/predbat_config.json
2026-08-18 17:06:25.085997: Compare, best tariff: current metric 129.87p
2026-08-18 17:06:28.802703: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-18 17:06:43.920904: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0069 val_mae=0.0026 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 17:06:57.919622: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0025 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0019 kWh
2026-08-18 17:07:04.268677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:07:04.268892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:07:04.268942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:07:04.269084: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:07:04.269135: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:07:04.269164: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:07:04.269304: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:07:11.536953: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-18 17:07:24.273630: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0061 val_mae=0.0023 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-18 17:07:40.020826: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0059 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 17:07:52.029378: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0057 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 17:08:06.325114: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 17:08:21.011721: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 17:08:34.569699: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0021 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 17:08:52.103542: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0058 val_mae=0.0020 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 17:09:05.718336: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 17:09:18.740901: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:09:18.741267: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:09:18.741326: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:09:18.741563: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:09:18.741867: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:09:18.741932: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:09:18.741962: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:09:20.047184: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0057 val_mae=0.0021 kWh val_bias=+0.0007 kWh (+0.8%) combined=0.0016 kWh ema_combined=0.0014 kWh
2026-08-18 17:09:35.564093: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-18 17:09:35.564894: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-18 17:09:35.565118: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-18 17:09:36.884531: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 17:09:36.914307: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0022 kWh
2026-08-18 17:09:36.999557: ML Predictor: Curriculum pass 2/5: window=58.0 days (1392 hours of data)
2026-08-18 17:09:36.999792: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 17:09:37.578165: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 17:09:43.046880: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 17:09:43.102813: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7412 std=4.5728) import_rate(mean=16.5777 std=8.3608) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1973 std=0.5285)
2026-08-18 17:09:43.194618: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 17:09:43.210219: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 17:09:43.237348: ML Predictor: Baseline (pre-finetune) val_mae=0.0028 kWh val_bias=+0.0001 kWh
2026-08-18 17:09:57.817257: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0043 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-18 17:10:00.995181: --------------- PredBat - update at 2026-08-18 17:10:00+01:00 with clock skew 0 minutes, minutes now 1030
2026-08-18 17:10:00.996138: Saved current settings to /config/predbat_config.json
2026-08-18 17:10:00.996260: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 17:10:00.996342: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:10:00.996446: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:10:01.049188: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:10:01.049376: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:10:01.049637: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:10:01.050249: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:10:01.050412: Predbat mode is set to Control charge & discharge
2026-08-18 17:10:01.394656: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:10:01.394936: Using load_power data to fill gaps in load_today data
2026-08-18 17:10:02.656591: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:10:02.656978: Zero load period starting at 2026-08-17T10:54:00+0100 (1816 minutes) for 189 minutes with base value 206.075
2026-08-18 17:10:02.658843: Processing 721 30-minute periods for power integration
2026-08-18 17:10:02.934194: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:10:02.948184: Car charging hold False, threshold 6.0kWh
2026-08-18 17:10:02.948276: Current data so far today: load 10.85kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:10:02.987681: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:10:02.987813: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:10:02.988807: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:10:02.988911: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:10:02.988982: Standing charge is set to 46.63p
2026-08-18 17:10:03.247922: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:10:03.248356: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:10:03.264167: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:10:03.265841: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:10:03.266052: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:10:03.266300: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:10:03.277216: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:10:03.277693: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:10:03.402619: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:10:03.402808: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:10:03.404685: High export rate found rates in range 99p to -99p
2026-08-18 17:10:03.509600: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:10:03.510656: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:10:03.532583: Battery level now 5.64kWh, -1hr ago 6.24kWh, at midnight 6.84kWh, battery value change in the last hour -4.12p, change today -8.25p, rate_forward 6.87p
2026-08-18 17:10:03.533069: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:10:03.637686: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:10:03.637893: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:10:03.791881: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:10:03.830943: Today's load divergence 100.54%, in-day adjustment 98.28%, damping 0.95x, yesterday 92.68% today 100.51% blend 28.47%
2026-08-18 17:10:03.831559: Today's predicted so far 10.72kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 10.72kWh forecast extra.
2026-08-18 17:10:03.831628: Today's actual load so far 10.81kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 17:10:03.929389: Inverter 0: Type SK Sunsynk
2026-08-18 17:10:03.929641: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:10:03.929959: Reserve min: 7%, battery_min: 7%
2026-08-18 17:10:03.930140: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:10:03.930573: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 642W, current battery voltage 51.2V, grid power -54W, load power 692W, PV Power 0W
2026-08-18 17:10:03.930874: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:10:03.931081: Inverter 0 scheduled charge enable is False
2026-08-18 17:10:03.931212: Inverter 0 charge windows currently []
2026-08-18 17:10:03.931337: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:10:03.931595: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:10:03.931730: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:10:03.931867: Inverter 0 scheduled discharge enable is False
2026-08-18 17:10:03.932186: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:10:03.932326: Inverter 0 discharge windows currently []
2026-08-18 17:10:03.932464: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:10:03.932589: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:10:03.932714: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:10:04.063628: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:10:04.063753: Plan was last updated on 2026-08-18 17:05:00+01:00 and is now 5.0 minutes old
2026-08-18 17:10:04.064120: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:10:04.064177: Best export window [  ]
2026-08-18 17:10:04.065440: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:10:04.070384: Load divergence over 8.0 hours mean 552.12W, min 345.0W, max 1120.2W, std dev 218.78W, divergence 19.81%
2026-08-18 17:10:04.105830: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:10:04.106221: LoadML is_calculating True
2026-08-18 17:10:04.106270: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:10:04.163427: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 642.71p, metric_keep 128.3kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.89kWh, PV 0.0kWh
2026-08-18 17:10:04.388083: Battery has 5.92 hours left - now at 5.6kWh
2026-08-18 17:10:04.456597: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 670.77p, metric_keep 129.43kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.89kWh, PV 0.0kWh
2026-08-18 17:10:04.609826: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 380.47p, metric_keep 4.96kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.89kWh, PV 0.0kWh
2026-08-18 17:10:04.797982: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 359.66p, metric_keep 1.51kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.89kWh, PV 0.0kWh
2026-08-18 17:10:04.798214: Saving plan best values to HA entities
2026-08-18 17:10:05.122695: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:10:05.134732: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:10:05.143029: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.35kWh, house 0.0kWh, export 0.0kWh, metric 359.66p, metric10 380.47p
2026-08-18 17:10:05.258556: Marginal costs baseline metric (no standing charge): 313.0223
2026-08-18 17:10:05.790781: Marginal energy costs matrix computed: min=8.0 max=39.67
2026-08-18 17:10:05.929974: Rate array import [{'start': 1030, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1030, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:10:05.930978: - Your estimated bill for today is £1.85 and tomorrow is £1.94
2026-08-18 17:10:05.931311: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:10:05.931471: - The battery is currently at 35% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 17:10:05.931598: - For the next 48 hours there will be no solar generation.
2026-08-18 17:10:05.931721: - You have enough battery to reach the next charge.
2026-08-18 17:10:05.931856: - Your next charge slot will be in 2 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 17:10:05.932057: 
2026-08-18 17:10:06.008785: Plan calculation took 1.94 seconds
2026-08-18 17:10:06.015176: No high rate period found
2026-08-18 17:10:06.130045: Import threshold used for optimisation was 8.0p
2026-08-18 17:10:06.267445: Low import rate windows [0: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 1: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 2: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 3: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 4: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 5: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 6: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 7: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 8: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 9: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 10: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 24: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 25: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 26: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 27: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 28: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 29: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 30: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 31: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 32: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 33: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 34: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 35: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 36: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 37: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 38: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 39: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 40: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 41: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 42: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 43: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 44: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 45: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 46: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 47: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 48: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 49: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 50: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 51: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 52: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 53: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 54: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 55: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 56: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 57: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 58: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 59: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 60: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 61: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 62: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 63: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 64: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 65: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 66: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 67: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 68: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 69: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 70: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 71: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 72: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 73: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 74: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 75: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 76: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 77: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 78: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 79: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 80: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 81: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 82: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 83: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 84: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 85: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 86: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 87: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 88: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 89: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 90: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 91: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 92: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 93: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 94: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75]
2026-08-18 17:10:06.290978: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 35%, target 22%
2026-08-18 17:10:06.291174: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:10:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:10:06.291274: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:10:06.291540: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:10:06.291648: No export window planned
2026-08-18 17:10:06.291797: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:10:06.291849: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:10:06.292186: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:10:06.292427: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:10:06.297893: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:10:06.298010: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:10:06.298150: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298216: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298270: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298326: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298417: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298461: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.298880: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.301755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:10:06.301932: Inverter 0 count register writes 0
2026-08-18 17:10:06.340048: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 17:10:06.372388: Total inverter register writes now 867
2026-08-18 17:10:06.418586: Info: Completed run status Demand
2026-08-18 17:10:06.427263: Info: record_status Demand
2026-08-18 17:10:06.436662: Saved current settings to /config/predbat_config.json
2026-08-18 17:10:06.436918: Compare, best tariff: current metric 129.87p
2026-08-18 17:10:16.493418: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0135 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0019 kWh ema_combined=0.0027 kWh
2026-08-18 17:10:30.513308: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0126 val_mae=0.0033 kWh val_bias=-0.0016 kWh (-2.8%) combined=0.0030 kWh ema_combined=0.0028 kWh
2026-08-18 17:10:44.640176: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0117 val_mae=0.0034 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0025 kWh
2026-08-18 17:10:49.575986: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:10:49.576248: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:10:49.576370: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:10:49.576681: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:10:49.576834: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:10:49.576949: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:10:49.577048: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:10:57.654163: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0102 val_mae=0.0032 kWh val_bias=+0.0014 kWh (+2.4%) combined=0.0029 kWh ema_combined=0.0026 kWh
2026-08-18 17:11:12.959735: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0098 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0023 kWh
2026-08-18 17:11:25.278375: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0102 val_mae=0.0027 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-18 17:11:37.156300: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0095 val_mae=0.0033 kWh val_bias=+0.0008 kWh (+1.5%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-18 17:11:52.476339: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0089 val_mae=0.0030 kWh val_bias=+0.0007 kWh (+1.2%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 17:12:09.929107: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0085 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-18 17:12:09.929367: ML Predictor: Early stopping at epoch 10
2026-08-18 17:12:09.930510: ML Predictor: Restored best weights from epoch with val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-18 17:12:09.930849: ML Predictor: Training complete, final val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-18 17:12:11.115156: ML Predictor: AR rollout over holdout: ar_mae=0.0034 kWh ar_bias=+0.0007 kWh (+1.2%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-18 17:12:11.135679: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0028 kWh
2026-08-18 17:12:11.222073: ML Predictor: Curriculum pass 3/5: window=59.0 days (1416 hours of data)
2026-08-18 17:12:11.222327: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 17:12:11.896034: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 17:12:17.217312: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 17:12:17.277472: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7306 std=4.5716) import_rate(mean=16.5523 std=8.3626) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1974 std=0.5287)
2026-08-18 17:12:17.375733: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 17:12:17.391215: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 17:12:17.451676: ML Predictor: Baseline (pre-finetune) val_mae=0.0046 kWh val_bias=+0.0000 kWh
2026-08-18 17:12:31.562705: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0047 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-18 17:12:46.417592: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0140 val_mae=0.0046 kWh val_bias=-0.0013 kWh (-2.9%) combined=0.0028 kWh ema_combined=0.0033 kWh
2026-08-18 17:13:02.625012: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0127 val_mae=0.0042 kWh val_bias=-0.0015 kWh (-3.5%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-18 17:13:03.861346: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:13:03.861717: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:13:03.861780: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:13:03.861934: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:13:03.861978: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:13:03.862076: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:13:03.862212: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:13:16.626335: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0113 val_mae=0.0041 kWh val_bias=-0.0013 kWh (-3.1%) combined=0.0029 kWh ema_combined=0.0030 kWh
2026-08-18 17:13:28.802310: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0114 val_mae=0.0038 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-18 17:13:45.526068: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0088 val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.6%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-18 17:14:01.930786: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0096 val_mae=0.0037 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-18 17:14:16.270329: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0100 val_mae=0.0034 kWh val_bias=-0.0011 kWh (-2.7%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-18 17:14:29.433655: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0040 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0028 kWh ema_combined=0.0025 kWh
2026-08-18 17:14:45.619671: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0096 val_mae=0.0035 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-18 17:14:45.619768: ML Predictor: Early stopping at epoch 10
2026-08-18 17:14:45.623770: ML Predictor: Restored best weights from epoch with val_mae=0.0046 kWh val_bias=+0.0000 kWh (+0.1%)
2026-08-18 17:14:45.623983: ML Predictor: Training complete, final val_mae=0.0046 kWh val_bias=+0.0000 kWh (+0.1%)
2026-08-18 17:14:46.550348: ML Predictor: AR rollout over holdout: ar_mae=0.0070 kWh ar_bias=-0.0012 kWh (-2.8%) [drift vs teacher-forced: +0.0025 kWh]
2026-08-18 17:14:46.554835: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0046 kWh
2026-08-18 17:14:46.626986: ML Predictor: Curriculum pass 4/5: window=60.0 days (1440 hours of data)
2026-08-18 17:14:46.627235: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 17:14:47.346808: ML Predictor: Creating dataset with 1440 hours of training data, 48 hours validation
2026-08-18 17:14:52.103376: ML Predictor: Created 16992 training samples, 576 validation samples
2026-08-18 17:14:52.161881: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0598 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7182 std=4.5678) import_rate(mean=16.5448 std=8.3815) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1972 std=0.5290)
2026-08-18 17:14:52.254261: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 17:14:52.269965: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 17:14:52.296920: ML Predictor: Baseline (pre-finetune) val_mae=0.0053 kWh val_bias=-0.0005 kWh
2026-08-18 17:15:00.035752: --------------- PredBat - update at 2026-08-18 17:15:00+01:00 with clock skew 0 minutes, minutes now 1035
2026-08-18 17:15:00.036635: Saved current settings to /config/predbat_config.json
2026-08-18 17:15:00.036758: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 17:15:00.036837: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:15:00.036917: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:15:00.093343: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:15:00.093471: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:15:00.093735: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:15:00.094282: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:15:00.094479: Predbat mode is set to Control charge & discharge
2026-08-18 17:15:00.408610: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:15:00.409058: Using load_power data to fill gaps in load_today data
2026-08-18 17:15:01.579849: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:15:01.580232: Zero load period starting at 2026-08-17T10:54:00+0100 (1821 minutes) for 189 minutes with base value 206.05
2026-08-18 17:15:01.582352: Processing 721 30-minute periods for power integration
2026-08-18 17:15:01.895678: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:15:01.895992: Car charging hold False, threshold 6.0kWh
2026-08-18 17:15:01.896164: Current data so far today: load 10.9kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:15:01.933857: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:15:01.934129: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:15:01.935684: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:15:01.938087: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:15:01.938248: Standing charge is set to 46.63p
2026-08-18 17:15:02.140578: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:15:02.140964: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:15:02.142300: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:15:02.144672: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:15:02.144962: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:15:02.145223: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:15:02.153239: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:15:02.153714: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:15:02.219537: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:15:02.219815: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:15:02.221829: High export rate found rates in range 99p to -99p
2026-08-18 17:15:02.377139: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:15:02.377401: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:15:02.392544: Battery level now 5.6kWh, -1hr ago 6.24kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -8.52p, rate_forward 6.87p
2026-08-18 17:15:02.393207: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:15:02.481831: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:15:02.482138: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:15:02.692359: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:15:02.826898: Today's load divergence 100.75%, in-day adjustment 98.45%, damping 0.95x, yesterday 92.68% today 100.71% blend 28.12%
2026-08-18 17:15:02.826999: Today's predicted so far 10.73kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 10.73kWh forecast extra.
2026-08-18 17:15:02.827032: Today's actual load so far 10.85kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 17:15:02.880726: Inverter 0: Type SK Sunsynk
2026-08-18 17:15:02.880964: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:15:02.881260: Reserve min: 7%, battery_min: 7%
2026-08-18 17:15:02.881441: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:15:02.881859: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 645W, current battery voltage 51.2V, grid power -56W, load power 697W, PV Power 0W
2026-08-18 17:15:02.882140: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:15:02.882316: Inverter 0 scheduled charge enable is False
2026-08-18 17:15:02.882442: Inverter 0 charge windows currently []
2026-08-18 17:15:02.882565: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:15:02.882803: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:15:02.882914: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:15:02.883038: Inverter 0 scheduled discharge enable is False
2026-08-18 17:15:02.883278: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:15:02.883410: Inverter 0 discharge windows currently []
2026-08-18 17:15:02.883503: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:15:02.883637: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:15:02.883726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:15:02.968299: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:15:02.968554: Plan was last updated on 2026-08-18 17:05:00+01:00 and is now 10.0 minutes old
2026-08-18 17:15:02.968971: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:15:02.969091: Best export window [  ]
2026-08-18 17:15:02.970422: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:15:02.975538: Load divergence over 8.0 hours mean 558.27W, min 331.8W, max 1061.4W, std dev 218.37W, divergence 19.56%
2026-08-18 17:15:03.014212: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:15:03.014440: LoadML is_calculating True
2026-08-18 17:15:03.014588: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:15:03.069690: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 642.41p, metric_keep 128.18kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.01kWh, PV 0.0kWh
2026-08-18 17:15:03.274301: Battery has 5.92 hours left - now at 5.6kWh
2026-08-18 17:15:03.350150: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 670.42p, metric_keep 129.32kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.02kWh, PV 0.0kWh
2026-08-18 17:15:03.488802: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 382.9p, metric_keep 5.09kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 33.02kWh, PV 0.0kWh
2026-08-18 17:15:03.614110: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 362.18p, metric_keep 1.63kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.01kWh, PV 0.0kWh
2026-08-18 17:15:03.614343: Saving plan best values to HA entities
2026-08-18 17:15:03.908468: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:15:03.915796: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:15:03.924614: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.84kWh, house 0.0kWh, export 0.0kWh, metric 362.18p, metric10 382.9p
2026-08-18 17:15:04.047966: Marginal costs baseline metric (no standing charge): 315.5501
2026-08-18 17:15:04.344132: Marginal energy costs matrix computed: min=8.0 max=39.64
2026-08-18 17:15:04.446500: Rate array import [{'start': 1035, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1035, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:15:04.447346: - Your estimated bill for today is £1.84 and tomorrow is £1.94
2026-08-18 17:15:04.447396: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:15:04.447425: - The battery is currently at 35% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 17:15:04.447450: - For the next 48 hours there will be no solar generation.
2026-08-18 17:15:04.447479: - You have enough battery to reach the next charge.
2026-08-18 17:15:04.447520: - Your next charge slot will be in 2 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 17:15:04.447548: 
2026-08-18 17:15:04.506639: Plan calculation took 1.54 seconds
2026-08-18 17:15:04.511993: No high rate period found
2026-08-18 17:15:04.616634: Import threshold used for optimisation was 8.0p
2026-08-18 17:15:04.685187: Low import rate windows [0: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 1: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 2: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 3: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 4: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 5: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 6: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 7: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 8: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 9: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 10: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 24: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 25: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 26: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 27: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 28: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 29: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 30: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 31: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 32: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 33: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 34: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 35: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 36: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 37: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 38: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 39: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 40: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 41: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 42: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 43: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 44: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 45: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 46: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 47: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 48: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 49: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 50: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 51: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 52: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 53: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 54: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 55: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 56: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 57: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 58: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 59: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 60: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 61: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 62: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 63: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 64: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 65: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 66: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 67: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 68: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 69: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 70: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 71: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 72: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 73: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 74: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 75: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 76: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 77: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 78: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 79: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 80: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 81: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 82: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 83: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 84: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 85: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 86: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 87: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 88: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 89: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 90: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 91: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 92: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 93: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 94: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75]
2026-08-18 17:15:04.693357: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 35%, target 22%
2026-08-18 17:15:04.693495: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:15:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:15:04.693648: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:15:04.693914: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:15:04.694305: No export window planned
2026-08-18 17:15:04.694519: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:15:04.694632: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:15:04.694857: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:15:04.695084: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:15:04.695229: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:15:04.695357: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:15:04.695525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.695643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.695741: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.695836: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.696005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.696422: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.696571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.696722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.696833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.696928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.697020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.697113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.697204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.697296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:15:04.697381: Inverter 0 count register writes 0
2026-08-18 17:15:04.717519: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 17:15:04.717810: Recompute is saving previous plan...
2026-08-18 17:15:04.721849: Best charge window [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0% ]
2026-08-18 17:15:04.722013: Best export window [  ]
2026-08-18 17:15:04.723140: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:15:04.727150: Load divergence over 8.0 hours mean 558.27W, min 331.8W, max 1061.4W, std dev 218.37W, divergence 19.56%
2026-08-18 17:15:04.750135: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:15:04.750348: LoadML is_calculating True
2026-08-18 17:15:04.750450: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:15:04.795928: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 17:15:04.805319: Optimise levels pass started at 2026-08-18 17:15:04
2026-08-18 17:15:04.805420: Optimise all windows, total charge 94 export 1
2026-08-18 17:15:07.214193: >> Region optimisation pass width 960 gives best_metric 416.63p, best_cost 457.04p, best_cycle 50.95kWh, best_import 37.53kWh
2026-08-18 17:15:07.910545: >> Region optimisation pass width 480 gives best_metric 416.63p, best_cost 457.04p, best_cycle 50.95kWh, best_import 37.53kWh
2026-08-18 17:15:08.707351: >> Region optimisation pass width 240 gives best_metric 416.63p, best_cost 457.04p, best_cycle 50.95kWh, best_import 37.53kWh
2026-08-18 17:15:16.385591: >> Region optimisation pass width 120 gives best_metric 412.46p, best_cost 424.92p, best_cycle 52.02kWh, best_import 33.51kWh
2026-08-18 17:15:16.386032: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 59
2026-08-18 17:15:16.386234: Optimise levels pass ended at 2026-08-18 17:15:16, duration 11.6 seconds tried 222 combinations
2026-08-18 17:15:16.386884: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 412.46p, best_keep 3.38kWh, best_cycle 52.02kWh, best_carbon 0kg, best_import 33.51kWh
2026-08-18 17:15:16.410014: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 17:15:27.388445: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0113 val_mae=0.0053 kWh val_bias=-0.0011 kWh (-2.3%) combined=0.0032 kWh ema_combined=0.0032 kWh
2026-08-18 17:15:46.260393: Tweak plan optimisation started metric 302.15p, cost 311.43p
2026-08-18 17:15:48.362299: Tweak optimisation finished metric 302.0p, cost 311.43p, metric_keep 1.29kWh, cycle 30.41kWh, carbon 0kg, import 19.33kWh, changed 8 window(s)
2026-08-18 17:15:48.382241: Swap charge optimisation started metric 302.0p, cost 311.43p, min_improvement_swap 0.1p
2026-08-18 17:15:59.303041: Swap charge optimisation finished metric 302.0p, cost 311.43p
2026-08-18 17:15:59.571222: Pruned 2 dead plan slot(s) in 15 trial(s), nominal metric 300.03p -> 299.87p, plan now metric 302.43p, cost 309.42p, cycle 30.67kWh, import 19.07kWh
2026-08-18 17:15:59.622512: Raw charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:15:59.623512: Unclipped charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:15:59.624049: Unfiltered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:15:59.624561: Filtered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 34%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:15:59.719666: Previous plan best metric is 302.0 (cost 311.43) and new plan best metric is 302.0 (cost 311.43)
2026-08-18 17:15:59.720245: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 17:15:59.720409: Plan valid is now true after recompute was False
2026-08-18 17:15:59.744984: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 640.8p, metric_keep 127.93kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.81kWh, PV 0.0kWh
2026-08-18 17:16:00.013013: Battery has 5.92 hours left - now at 5.6kWh
2026-08-18 17:16:00.270282: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 668.74p, metric_keep 129.06kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.81kWh, PV 0.0kWh
2026-08-18 17:16:00.432534: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 375.66p, metric_keep 5.08kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.81kWh, PV 0.0kWh
2026-08-18 17:16:00.608855: predict best end_record 08-19 23:30:00, final soc 1.33kWh, metric 353.91p, metric_keep 1.63kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.81kWh, PV 0.0kWh
2026-08-18 17:16:00.623950: Saving plan best values to HA entities
2026-08-18 17:16:00.936344: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:16:00.946190: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:16:00.959853: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.8kWh, house 0.0kWh, export 0.0kWh, metric 353.91p, metric10 375.66p
2026-08-18 17:16:01.206135: Marginal costs baseline metric (no standing charge): 307.2746
2026-08-18 17:16:01.584743: Marginal energy costs matrix computed: min=8.0 max=39.64
2026-08-18 17:16:01.733842: Rate array import [{'start': 1035, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1035, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:16:01.734842: - Your estimated bill for today is £1.84 and tomorrow is £1.94
2026-08-18 17:16:01.734990: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:16:01.735109: - The battery is currently at 35% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 17:16:01.735292: - For the next 48 hours there will be no solar generation.
2026-08-18 17:16:01.735409: - You have enough battery to reach the next charge.
2026-08-18 17:16:01.735538: - Your next charge slot will be in 2 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 17:16:01.735655: 
2026-08-18 17:16:01.782395: Plan calculation took 57.06 seconds
2026-08-18 17:16:01.782677: Inverter 0: Type SK Sunsynk
2026-08-18 17:16:01.782735: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:16:01.782957: Reserve min: 7%, battery_min: 7%
2026-08-18 17:16:01.783064: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:16:01.783389: Inverter 0 SoC: 5.51kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 657W, current battery voltage 51.2V, grid power -53W, load power 644W, PV Power 0W
2026-08-18 17:16:01.783770: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:16:01.783894: Inverter 0 scheduled charge enable is False
2026-08-18 17:16:01.783984: Inverter 0 charge windows currently []
2026-08-18 17:16:01.784043: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:16:01.784227: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:16:01.784282: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:16:01.784323: Inverter 0 scheduled discharge enable is False
2026-08-18 17:16:01.784473: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:16:01.784607: Inverter 0 discharge windows currently []
2026-08-18 17:16:01.784667: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:16:01.784710: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:16:01.784758: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:16:01.860427: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 34%, target 22%
2026-08-18 17:16:01.860641: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:15:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:16:01.860751: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:16:01.861047: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:16:01.861187: No export window planned
2026-08-18 17:16:01.861339: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:16:01.861396: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:16:01.861652: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:16:01.861887: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:16:01.861957: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:16:01.862027: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:16:01.862127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862178: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862250: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862297: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862366: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862443: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.862965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.863019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:16:01.863063: Inverter 0 count register writes 0
2026-08-18 17:16:01.896892: Total inverter register writes now 867
2026-08-18 17:16:01.976972: Info: Completed run status Demand
2026-08-18 17:16:02.000942: Info: record_status Demand
2026-08-18 17:16:02.029962: Saved current settings to /config/predbat_config.json
2026-08-18 17:16:02.030185: Compare, best tariff: current metric 129.87p
2026-08-18 17:16:07.361908: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0140 val_mae=0.0050 kWh val_bias=-0.0011 kWh (-2.4%) combined=0.0026 kWh ema_combined=0.0031 kWh
2026-08-18 17:16:20.875841: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0150 val_mae=0.0049 kWh val_bias=-0.0017 kWh (-3.5%) combined=0.0025 kWh ema_combined=0.0029 kWh
2026-08-18 17:16:34.176743: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:16:34.177126: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:16:34.177216: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:16:34.177453: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:16:34.177571: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:16:34.177618: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:16:34.177693: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:16:34.675362: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0127 val_mae=0.0043 kWh val_bias=-0.0012 kWh (-2.5%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-18 17:16:47.581828: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0100 val_mae=0.0048 kWh val_bias=+0.0014 kWh (+3.1%) combined=0.0043 kWh ema_combined=0.0032 kWh
2026-08-18 17:17:01.407653: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0115 val_mae=0.0045 kWh val_bias=-0.0008 kWh (-1.7%) combined=0.0028 kWh ema_combined=0.0031 kWh
2026-08-18 17:17:16.760083: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0120 val_mae=0.0046 kWh val_bias=-0.0012 kWh (-2.5%) combined=0.0025 kWh ema_combined=0.0029 kWh
2026-08-18 17:17:30.409089: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0132 val_mae=0.0042 kWh val_bias=-0.0009 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-18 17:17:44.945867: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0091 val_mae=0.0040 kWh val_bias=-0.0017 kWh (-3.6%) combined=0.0029 kWh ema_combined=0.0028 kWh
2026-08-18 17:18:00.945495: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0108 val_mae=0.0040 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-18 17:18:16.050071: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0092 val_mae=0.0038 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-18 17:18:29.266015: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0092 val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-18 17:18:34.583514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:18:34.583929: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:18:34.584019: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:18:34.584255: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:18:34.584341: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:18:34.584384: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:18:34.584453: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:18:43.667006: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0080 val_mae=0.0039 kWh val_bias=+0.0011 kWh (+2.4%) combined=0.0039 kWh ema_combined=0.0028 kWh
2026-08-18 17:18:57.874096: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0086 val_mae=0.0038 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0025 kWh ema_combined=0.0027 kWh
2026-08-18 17:19:14.050604: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0082 val_mae=0.0039 kWh val_bias=-0.0024 kWh (-5.0%) combined=0.0031 kWh ema_combined=0.0028 kWh
2026-08-18 17:19:26.825967: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0033 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-18 17:19:39.367171: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0069 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0016 kWh ema_combined=0.0023 kWh
2026-08-18 17:19:52.261435: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0069 val_mae=0.0031 kWh val_bias=-0.0008 kWh (-1.8%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-18 17:20:00.870054: --------------- PredBat - update at 2026-08-18 17:20:00+01:00 with clock skew 0 minutes, minutes now 1040
2026-08-18 17:20:00.871664: Saved current settings to /config/predbat_config.json
2026-08-18 17:20:00.871791: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 17:20:00.871934: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:20:00.872041: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:20:00.898286: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:20:00.898402: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:20:00.898561: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:20:00.899189: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:20:00.899293: Predbat mode is set to Control charge & discharge
2026-08-18 17:20:01.337503: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:20:01.337951: Using load_power data to fill gaps in load_today data
2026-08-18 17:20:02.371214: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:20:02.371684: Zero load period starting at 2026-08-17T10:54:00+0100 (1826 minutes) for 189 minutes with base value 206.025
2026-08-18 17:20:02.373812: Processing 721 30-minute periods for power integration
2026-08-18 17:20:02.655349: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:20:02.655519: Car charging hold False, threshold 6.0kWh
2026-08-18 17:20:02.655706: Current data so far today: load 10.95kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:20:02.682922: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:20:02.683198: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:20:02.684315: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:20:02.685335: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:20:02.685552: Standing charge is set to 46.63p
2026-08-18 17:20:02.841851: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:20:02.842605: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:20:02.842980: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:20:02.845354: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:20:02.845678: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:20:02.845905: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:20:02.853465: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:20:02.853954: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:20:02.896404: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:20:02.896527: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:20:02.898194: High export rate found rates in range 99p to -99p
2026-08-18 17:20:03.095112: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:20:03.095244: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:20:03.132290: Battery level now 5.6kWh, -1hr ago 6.11kWh, at midnight 6.84kWh, battery value change in the last hour -3.52p, change today -8.52p, rate_forward 6.87p
2026-08-18 17:20:03.132744: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:20:03.246846: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:20:03.247046: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:20:03.468131: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:20:03.581965: Today's load divergence 100.87%, in-day adjustment 98.56%, damping 0.95x, yesterday 92.68% today 100.82% blend 27.78%
2026-08-18 17:20:03.603769: Today's predicted so far 10.76kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 10.76kWh forecast extra.
2026-08-18 17:20:03.603813: Today's actual load so far 10.9kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 17:20:03.702440: Inverter 0: Type SK Sunsynk
2026-08-18 17:20:03.702540: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:20:03.702779: Reserve min: 7%, battery_min: 7%
2026-08-18 17:20:03.702879: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:20:03.703206: Inverter 0 SoC: 5.51kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 634W, current battery voltage 51.2V, grid power -57W, load power 685W, PV Power 0W
2026-08-18 17:20:03.703396: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:20:03.703512: Inverter 0 scheduled charge enable is False
2026-08-18 17:20:03.703559: Inverter 0 charge windows currently []
2026-08-18 17:20:03.703617: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:20:03.703777: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:20:03.703824: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:20:03.703870: Inverter 0 scheduled discharge enable is False
2026-08-18 17:20:03.704130: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:20:03.704185: Inverter 0 discharge windows currently []
2026-08-18 17:20:03.704216: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:20:03.704250: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:20:03.704274: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:20:03.806113: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:20:03.806258: Plan was last updated on 2026-08-18 17:15:00+01:00 and is now 5.0 minutes old
2026-08-18 17:20:03.806772: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:20:03.806852: Best export window [  ]
2026-08-18 17:20:03.808197: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:20:03.814525: Load divergence over 8.0 hours mean 565.79W, min 332.4W, max 1084.2W, std dev 222.74W, divergence 19.68%
2026-08-18 17:20:03.847975: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:20:03.848126: LoadML is_calculating True
2026-08-18 17:20:03.848245: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:20:03.902483: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 642.58p, metric_keep 128.26kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.91kWh, PV 0.0kWh
2026-08-18 17:20:04.062756: Battery has 5.75 hours left - now at 5.51kWh
2026-08-18 17:20:04.149337: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 670.5p, metric_keep 129.37kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.9kWh, PV 0.0kWh
2026-08-18 17:20:04.352225: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 380.14p, metric_keep 5.24kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.9kWh, PV 0.0kWh
2026-08-18 17:20:04.524399: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 359.68p, metric_keep 1.48kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.91kWh, PV 0.0kWh
2026-08-18 17:20:04.524538: Saving plan best values to HA entities
2026-08-18 17:20:04.779571: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:20:04.786875: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:20:04.794467: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.35kWh, house 0kWh, export 0.0kWh, metric 359.68p, metric10 380.14p
2026-08-18 17:20:04.988065: Marginal costs baseline metric (no standing charge): 313.0427
2026-08-18 17:20:05.474720: Marginal energy costs matrix computed: min=8.0 max=39.62
2026-08-18 17:20:05.607651: Rate array import [{'start': 1040, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1040, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:20:05.608703: - Your estimated bill for today is £1.86 and tomorrow is £1.94
2026-08-18 17:20:05.608853: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:20:05.608974: - The battery is currently at 34% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 17:20:05.609086: - For the next 48 hours there will be no solar generation.
2026-08-18 17:20:05.609201: - You have enough battery to reach the next charge.
2026-08-18 17:20:05.609311: - Your next charge slot will be in 2 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 17:20:05.609412: 
2026-08-18 17:20:05.672828: Plan calculation took 1.87 seconds
2026-08-18 17:20:05.678222: No high rate period found
2026-08-18 17:20:05.790262: Import threshold used for optimisation was 8.0p
2026-08-18 17:20:05.903007: Low import rate windows [0: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 1: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 2: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 3: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 4: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 5: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 6: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 7: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 8: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 9: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 10: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 24: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 25: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 26: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 27: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 28: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 29: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 30: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 31: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 32: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 33: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 34: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 35: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 36: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 37: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 38: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 39: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 40: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 41: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 42: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 43: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 44: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 45: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 46: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 47: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 48: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 49: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 50: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 51: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 52: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 53: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 54: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 55: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 56: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 57: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 58: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 59: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 60: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 61: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 62: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 63: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 64: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 65: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 66: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 67: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 68: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 69: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 70: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 71: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 72: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 73: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 74: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 75: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 76: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 77: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 78: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 79: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 80: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 81: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 82: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 83: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 84: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 85: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 86: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 87: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 88: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 89: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 90: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 91: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 92: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 93: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 94: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75]
2026-08-18 17:20:05.920629: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 34%, target 22%
2026-08-18 17:20:05.920858: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:20:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:20:05.921049: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:20:05.921364: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:20:05.921547: No export window planned
2026-08-18 17:20:05.921799: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:20:05.921933: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:20:05.922211: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:20:05.922485: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:20:05.922651: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:20:05.922807: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:20:05.923025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.923166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.923297: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.923426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.923552: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.923701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.923829: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924373: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.924971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:20:05.925105: Inverter 0 count register writes 0
2026-08-18 17:20:05.960377: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 17:20:05.974248: Total inverter register writes now 867
2026-08-18 17:20:06.087131: Info: Completed run status Demand
2026-08-18 17:20:06.111410: Info: record_status Demand
2026-08-18 17:20:06.118899: Saved current settings to /config/predbat_config.json
2026-08-18 17:20:06.119172: Compare, best tariff: current metric 129.87p
2026-08-18 17:20:09.941617: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0067 val_mae=0.0030 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 17:20:25.261027: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0066 val_mae=0.0028 kWh val_bias=-0.0009 kWh (-1.8%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-18 17:20:38.755454: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0065 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 17:20:49.291300: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:20:49.291571: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:20:49.291707: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:20:49.292022: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:20:49.292150: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:20:49.292261: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:20:49.292364: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:20:52.428251: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 17:21:06.084670: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 17:21:22.066994: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 17:21:36.314811: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0056 val_mae=0.0026 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 17:21:49.509688: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 17:22:01.745902: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0024 kWh ema_combined=0.0020 kWh
2026-08-18 17:22:15.294276: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0050 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 17:22:30.733241: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-18 17:22:49.590433: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-18 17:22:49.596688: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.1%)
2026-08-18 17:22:49.596876: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.1%)
2026-08-18 17:22:50.766292: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=-0.0005 kWh (-1.0%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-18 17:22:50.772282: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0024 kWh
2026-08-18 17:22:50.772376: ML Predictor: Curriculum final pass 5/5: full dataset (60.1 days)
2026-08-18 17:22:50.772427: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 17:22:51.508840: ML Predictor: Creating dataset with 1442 hours of training data, 48 hours validation
2026-08-18 17:22:57.086817: ML Predictor: Created 17026 training samples, 576 validation samples
2026-08-18 17:22:57.143416: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0597 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7068 std=4.5641) import_rate(mean=16.5403 std=8.4007) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5293)
2026-08-18 17:22:57.238894: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 17:22:57.255960: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 17:22:57.322402: ML Predictor: Baseline (pre-finetune) val_mae=0.0035 kWh val_bias=-0.0014 kWh
2026-08-18 17:23:03.982065: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:23:03.983655: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:23:03.983730: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:23:03.984113: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:23:03.984188: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:23:03.984230: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:23:03.984267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:23:12.605506: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0103 val_mae=0.0044 kWh val_bias=-0.0016 kWh (-3.2%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-18 17:23:28.660570: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0098 val_mae=0.0048 kWh val_bias=+0.0016 kWh (+3.3%) combined=0.0048 kWh ema_combined=0.0030 kWh
2026-08-18 17:23:43.609606: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0114 val_mae=0.0037 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-18 17:23:57.986874: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0117 val_mae=0.0042 kWh val_bias=+0.0006 kWh (+1.2%) combined=0.0035 kWh ema_combined=0.0031 kWh
2026-08-18 17:24:13.876200: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0102 val_mae=0.0035 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-18 17:24:28.966033: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0109 val_mae=0.0040 kWh val_bias=-0.0024 kWh (-4.8%) combined=0.0030 kWh ema_combined=0.0029 kWh
2026-08-18 17:24:43.815940: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0115 val_mae=0.0036 kWh val_bias=-0.0012 kWh (-2.5%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-18 17:24:58.464732: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0132 val_mae=0.0044 kWh val_bias=-0.0023 kWh (-4.6%) combined=0.0032 kWh ema_combined=0.0029 kWh
2026-08-18 17:25:00.362993: --------------- PredBat - update at 2026-08-18 17:25:00+01:00 with clock skew 0 minutes, minutes now 1045
2026-08-18 17:25:00.363873: Saved current settings to /config/predbat_config.json
2026-08-18 17:25:00.364049: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 17:25:00.364135: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:25:00.364213: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:25:00.396574: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:25:00.396739: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:25:00.396954: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:25:00.397553: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:25:00.397712: Predbat mode is set to Control charge & discharge
2026-08-18 17:25:00.747555: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:25:00.747763: Using load_power data to fill gaps in load_today data
2026-08-18 17:25:01.871819: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:25:01.872033: Zero load period starting at 2026-08-17T10:54:00+0100 (1831 minutes) for 189 minutes with base value 206.0
2026-08-18 17:25:01.873387: Processing 721 30-minute periods for power integration
2026-08-18 17:25:02.135617: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:25:02.135760: Car charging hold False, threshold 6.0kWh
2026-08-18 17:25:02.135803: Current data so far today: load 11.0kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:25:02.186613: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:25:02.186753: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:25:02.188038: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:25:02.188184: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:25:02.188262: Standing charge is set to 46.63p
2026-08-18 17:25:02.323404: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:25:02.323890: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:25:02.324319: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:25:02.326519: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:25:02.326747: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:25:02.326966: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:25:02.333882: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:25:02.335430: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:25:02.393274: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:25:02.393549: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:25:02.395266: High export rate found rates in range 99p to -99p
2026-08-18 17:25:02.522894: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:25:02.523172: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:25:02.543888: Battery level now 5.51kWh, -1hr ago 6.08kWh, at midnight 6.84kWh, battery value change in the last hour -3.9p, change today -9.13p, rate_forward 6.87p
2026-08-18 17:25:02.545356: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:25:02.679442: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:25:02.679626: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:25:02.788715: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:25:02.826266: Today's load divergence 101.09%, in-day adjustment 98.74%, damping 0.95x, yesterday 92.68% today 101.03% blend 27.43%
2026-08-18 17:25:02.826391: Today's predicted so far 10.78kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 10.78kWh forecast extra.
2026-08-18 17:25:02.826430: Today's actual load so far 10.95kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 17:25:02.880690: Inverter 0: Type SK Sunsynk
2026-08-18 17:25:02.880785: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:25:02.880993: Reserve min: 7%, battery_min: 7%
2026-08-18 17:25:02.881080: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:25:02.881380: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 627W, current battery voltage 51.2V, grid power -61W, load power 687W, PV Power 0W
2026-08-18 17:25:02.881552: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:25:02.881670: Inverter 0 scheduled charge enable is False
2026-08-18 17:25:02.881717: Inverter 0 charge windows currently []
2026-08-18 17:25:02.881751: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:25:02.881885: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:25:02.881929: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:25:02.881973: Inverter 0 scheduled discharge enable is False
2026-08-18 17:25:02.882134: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:25:02.882180: Inverter 0 discharge windows currently []
2026-08-18 17:25:02.882209: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:25:02.882234: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:25:02.882266: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:25:02.993333: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:25:02.993522: Plan was last updated on 2026-08-18 17:15:00+01:00 and is now 10.0 minutes old
2026-08-18 17:25:02.993887: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:25:02.993943: Best export window [  ]
2026-08-18 17:25:02.995416: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:25:03.000210: Load divergence over 8.0 hours mean 571.8W, min 337.2W, max 1255.8W, std dev 234.09W, divergence 20.47%
2026-08-18 17:25:03.049962: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:25:03.064050: LoadML is_calculating True
2026-08-18 17:25:03.064119: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:25:03.123216: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 645.22p, metric_keep 128.56kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.03kWh, PV 0.0kWh
2026-08-18 17:25:03.358262: Battery has 5.67 hours left - now at 5.44kWh
2026-08-18 17:25:03.417556: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 673.19p, metric_keep 129.68kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.03kWh, PV 0.0kWh
2026-08-18 17:25:03.599257: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 385.68p, metric_keep 5.2kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.03kWh, PV 0.0kWh
2026-08-18 17:25:03.781985: predict best end_record 08-19 23:40:00, final soc 2.09kWh, metric 364.63p, metric_keep 1.77kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.03kWh, PV 0.0kWh
2026-08-18 17:25:03.782134: Saving plan best values to HA entities
2026-08-18 17:25:04.078468: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:25:04.088213: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:25:04.109119: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.87kWh, house 0.03kWh, export 0.0kWh, metric 364.63p, metric10 385.68p
2026-08-18 17:25:04.311081: Marginal costs baseline metric (no standing charge): 317.9918
2026-08-18 17:25:04.634824: Marginal energy costs matrix computed: min=8.0 max=39.84
2026-08-18 17:25:04.744922: Rate array import [{'start': 1045, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1045, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:25:04.745953: - Your estimated bill for today is £1.87 and tomorrow is £1.94
2026-08-18 17:25:04.746095: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:25:04.746143: - The battery is currently at 34% and is in eco mode for the next 2 hours.
2026-08-18 17:25:04.746170: - For the next 48 hours there will be no solar generation.
2026-08-18 17:25:04.746233: - You have enough battery to reach the next charge.
2026-08-18 17:25:04.746297: - Your next charge slot will be in 2 hours where import rates will be very expensive (33.8p).
2026-08-18 17:25:04.746366: 
2026-08-18 17:25:04.792307: Plan calculation took 1.80 seconds
2026-08-18 17:25:04.797383: No high rate period found
2026-08-18 17:25:04.922266: Import threshold used for optimisation was 8.0p
2026-08-18 17:25:05.070517: Low import rate windows [0: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 1: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 2: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 3: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 4: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 5: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 6: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 7: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 8: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 9: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 10: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 24: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 25: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 26: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 27: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 28: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 29: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 30: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 31: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 32: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 33: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 34: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 35: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 36: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 37: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 38: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 39: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 40: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 41: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 42: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 43: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 44: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 45: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 46: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 47: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 48: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 49: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 50: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 51: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 52: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 53: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 54: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 55: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 56: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 57: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 58: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 59: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 60: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 61: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 62: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 63: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 64: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 65: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 66: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 67: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 68: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 69: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 70: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 71: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 72: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 73: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 74: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 75: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 76: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 77: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 78: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 79: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 80: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 81: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 82: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 83: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 84: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 85: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 86: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 87: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 88: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 89: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 90: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 91: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 92: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 93: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 94: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75]
2026-08-18 17:25:05.079613: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 34%, target 22%
2026-08-18 17:25:05.079987: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:25:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:25:05.080140: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:25:05.080542: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:25:05.080759: No export window planned
2026-08-18 17:25:05.081013: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:25:05.081112: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:25:05.081418: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:25:05.081833: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:25:05.082463: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:25:05.082690: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:25:05.082902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083007: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083113: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083361: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083463: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083563: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.083895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.084027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.084144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.084302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.084470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.084663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:05.084822: Inverter 0 count register writes 0
2026-08-18 17:25:05.130764: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 17:25:05.131211: Recompute is saving previous plan...
2026-08-18 17:25:05.137909: Best charge window [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0% ]
2026-08-18 17:25:05.138103: Best export window [  ]
2026-08-18 17:25:05.139204: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:25:05.149753: Load divergence over 8.0 hours mean 571.8W, min 337.2W, max 1255.8W, std dev 234.09W, divergence 20.47%
2026-08-18 17:25:05.209517: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:25:05.209658: LoadML is_calculating True
2026-08-18 17:25:05.209693: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 17:25:05.224741: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 17:25:05.253440: Optimise levels pass started at 2026-08-18 17:25:05
2026-08-18 17:25:05.253529: Optimise all windows, total charge 94 export 1
2026-08-18 17:25:07.585575: >> Region optimisation pass width 960 gives best_metric 420.22p, best_cost 459.59p, best_cycle 50.91kWh, best_import 37.6kWh
2026-08-18 17:25:08.147388: >> Region optimisation pass width 480 gives best_metric 420.22p, best_cost 459.59p, best_cycle 50.91kWh, best_import 37.6kWh
2026-08-18 17:25:09.014084: >> Region optimisation pass width 240 gives best_metric 420.22p, best_cost 459.59p, best_cycle 50.91kWh, best_import 37.6kWh
2026-08-18 17:25:18.425865: >> Region optimisation pass width 120 gives best_metric 415.85p, best_cost 429.21p, best_cycle 52.75kWh, best_import 33.62kWh
2026-08-18 17:25:18.426411: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 59
2026-08-18 17:25:18.426502: Optimise levels pass ended at 2026-08-18 17:25:18, duration 13.2 seconds tried 222 combinations
2026-08-18 17:25:18.426583: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 415.85p, best_keep 1.32kWh, best_cycle 52.75kWh, best_carbon 0kg, best_import 33.62kWh
2026-08-18 17:25:18.455336: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 17:25:43.040675: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0103 val_mae=0.0037 kWh val_bias=-0.0024 kWh (-4.9%) combined=0.0038 kWh ema_combined=0.0032 kWh
2026-08-18 17:25:43.990325: Tweak plan optimisation started metric 306.44p, cost 315.83p
2026-08-18 17:25:44.624367: Tweak optimisation finished metric 306.44p, cost 315.83p, metric_keep 1.32kWh, cycle 31.05kWh, carbon 0kg, import 19.45kWh, changed 8 window(s)
2026-08-18 17:25:44.664950: Swap charge optimisation started metric 306.44p, cost 315.83p, min_improvement_swap 0.1p
2026-08-18 17:25:54.769681: Swap charge optimisation finished metric 306.44p, cost 315.83p
2026-08-18 17:25:54.989049: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 304.53p -> 304.38p, plan now metric 306.92p, cost 313.81p, cycle 31.31kWh, import 19.2kWh
2026-08-18 17:25:55.001922: Raw charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 100%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:25:55.002520: Unclipped charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:25:55.002749: Unfiltered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:25:55.002919: Filtered charge windows [ 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:25:55.049671: Previous plan best metric is 304.7 (cost 313.96) and new plan best metric is 306.44 (cost 315.83)
2026-08-18 17:25:55.050095: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 17:25:55.050368: Plan valid is now true after recompute was False
2026-08-18 17:25:55.093772: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 643.69p, metric_keep 128.31kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.84kWh, PV 0.0kWh
2026-08-18 17:25:55.313501: Battery has 5.67 hours left - now at 5.44kWh
2026-08-18 17:25:55.390830: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 671.59p, metric_keep 129.42kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.83kWh, PV 0.0kWh
2026-08-18 17:25:55.546445: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 378.53p, metric_keep 5.19kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.83kWh, PV 0.0kWh
2026-08-18 17:25:55.712725: predict best end_record 08-19 23:30:00, final soc 1.31kWh, metric 356.43p, metric_keep 1.77kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.84kWh, PV 0.0kWh
2026-08-18 17:25:55.712829: Saving plan best values to HA entities
2026-08-18 17:25:56.061507: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:25:56.071203: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:25:56.077496: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.84kWh, house 0.03kWh, export 0.0kWh, metric 356.43p, metric10 378.53p
2026-08-18 17:25:56.215195: Marginal costs baseline metric (no standing charge): 309.7964
2026-08-18 17:25:56.662938: Marginal energy costs matrix computed: min=8.0 max=39.84
2026-08-18 17:25:56.751051: Rate array import [{'start': 1045, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1045, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:25:56.751684: - Your estimated bill for today is £1.87 and tomorrow is £1.94
2026-08-18 17:25:56.751832: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:25:56.751964: - The battery is currently at 34% and is in eco mode for the next 2 hours.
2026-08-18 17:25:56.752071: - For the next 48 hours there will be no solar generation.
2026-08-18 17:25:56.752164: - You have enough battery to reach the next charge.
2026-08-18 17:25:56.752232: - Your next charge slot will be in 2 hours where import rates will be very expensive (33.8p).
2026-08-18 17:25:56.752265: 
2026-08-18 17:25:56.791480: Plan calculation took 51.66 seconds
2026-08-18 17:25:56.791782: Inverter 0: Type SK Sunsynk
2026-08-18 17:25:56.791831: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:25:56.792017: Reserve min: 7%, battery_min: 7%
2026-08-18 17:25:56.792138: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:25:56.792511: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 627W, current battery voltage 51.2V, grid power -61W, load power 687W, PV Power 0W
2026-08-18 17:25:56.792739: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:25:56.792874: Inverter 0 scheduled charge enable is False
2026-08-18 17:25:56.792995: Inverter 0 charge windows currently []
2026-08-18 17:25:56.793110: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:25:56.793349: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:25:56.793467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:25:56.793584: Inverter 0 scheduled discharge enable is False
2026-08-18 17:25:56.793833: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:25:56.793950: Inverter 0 discharge windows currently []
2026-08-18 17:25:56.794047: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:25:56.794130: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:25:56.794258: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:25:56.859617: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 34%, target 22%
2026-08-18 17:25:56.859952: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:25:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:25:56.860147: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:25:56.860487: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:25:56.860675: No export window planned
2026-08-18 17:25:56.860990: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:25:56.861196: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:25:56.861451: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:25:56.861721: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:25:56.862635: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:25:56.862849: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:25:56.863056: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.863419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.863599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880467: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:25:56.880669: Inverter 0 count register writes 0
2026-08-18 17:25:56.915837: Total inverter register writes now 867
2026-08-18 17:25:56.978302: Info: Completed run status Demand
2026-08-18 17:25:57.001581: Info: record_status Demand
2026-08-18 17:25:57.012898: Saved current settings to /config/predbat_config.json
2026-08-18 17:25:57.013213: Compare, best tariff: current metric 129.87p
2026-08-18 17:26:07.973017: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0088 val_mae=0.0033 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0029 kWh
2026-08-18 17:26:22.330714: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0033 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0026 kWh ema_combined=0.0028 kWh
2026-08-18 17:26:22.330816: ML Predictor: Early stopping at epoch 11
2026-08-18 17:26:22.331586: ML Predictor: Restored best weights from epoch with val_mae=0.0044 kWh val_bias=-0.0016 kWh (-3.2%)
2026-08-18 17:26:22.331716: ML Predictor: Training complete, final val_mae=0.0044 kWh val_bias=-0.0016 kWh (-3.2%)
2026-08-18 17:26:23.544950: ML Predictor: AR rollout over holdout: ar_mae=0.0078 kWh ar_bias=-0.0041 kWh (-8.3%) [drift vs teacher-forced: +0.0034 kWh]
2026-08-18 17:26:23.549440: ML Predictor: Curriculum training complete, final val_mae=0.0044 kWh
2026-08-18 17:26:23.559170: ML Component: Training successful, val_mae=0.0044 kWh
2026-08-18 17:26:23.674827: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 17:26:23.679073: ML Component: Generating predictions load data age 60.0 days, 17315 data points
2026-08-18 17:26:23.792063: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0543 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10736562459506094, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 17:26:24.172463: ML Component: Generated 576 predictions (total 31.45 kWh over 48h)
2026-08-18 17:26:24.205977: ML Component: Prediction cycle completed
2026-08-18 17:26:24.313173: ML Component: Saved 17315 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 17:26:34.161595: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:26:34.161814: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:26:34.161844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:26:34.161962: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:26:34.162009: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:26:34.162027: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:26:34.162041: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:28:34.372261: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:28:34.372484: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:28:34.372526: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:28:34.372701: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:28:34.372767: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:28:34.372796: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:28:34.372839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:30:00.567440: --------------- PredBat - update at 2026-08-18 17:30:00+01:00 with clock skew 0 minutes, minutes now 1050
2026-08-18 17:30:00.568310: Saved current settings to /config/predbat_config.json
2026-08-18 17:30:00.568414: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-18 17:30:00.568478: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:30:00.568535: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:30:00.588106: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:30:00.588224: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:30:00.588379: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:30:00.589484: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:30:00.589607: Predbat mode is set to Control charge & discharge
2026-08-18 17:30:00.776215: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:30:00.776348: Using load_power data to fill gaps in load_today data
2026-08-18 17:30:01.618981: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:30:01.619237: Zero load period starting at 2026-08-17T10:54:00+0100 (1836 minutes) for 189 minutes with base value 205.975
2026-08-18 17:30:01.621152: Processing 721 30-minute periods for power integration
2026-08-18 17:30:01.817786: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:30:01.817930: Car charging hold False, threshold 6.0kWh
2026-08-18 17:30:01.818005: Current data so far today: load 11.05kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:30:01.836080: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:30:01.836200: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:30:01.836991: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:30:01.837082: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:30:01.837136: Standing charge is set to 46.63p
2026-08-18 17:30:01.934804: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:30:01.935180: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:30:01.935548: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:30:01.937524: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:30:01.937712: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:30:01.937890: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:30:01.944017: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:30:01.944306: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:30:01.988551: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:30:01.988693: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:30:01.990257: High export rate found rates in range 99p to -99p
2026-08-18 17:30:02.097396: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:30:02.097519: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:30:02.109839: Battery level now 5.44kWh, -1hr ago 6.08kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -9.62p, rate_forward 6.87p
2026-08-18 17:30:02.110295: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:30:02.174709: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:30:02.174882: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:30:02.270586: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:30:02.314998: Today's load divergence 100.86%, in-day adjustment 98.62%, damping 0.95x, yesterday 92.68% today 100.82% blend 27.08%
2026-08-18 17:30:02.315093: Today's predicted so far 10.89kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 10.89kWh forecast extra.
2026-08-18 17:30:02.315125: Today's actual load so far 11.03kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 17:30:02.346790: Inverter 0: Type SK Sunsynk
2026-08-18 17:30:02.346869: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:30:02.347036: Reserve min: 7%, battery_min: 7%
2026-08-18 17:30:02.347097: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:30:02.347346: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 580W, current battery voltage 51.2V, grid power -51W, load power 626W, PV Power 0W
2026-08-18 17:30:02.347494: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:30:02.347580: Inverter 0 scheduled charge enable is False
2026-08-18 17:30:02.347609: Inverter 0 charge windows currently []
2026-08-18 17:30:02.347635: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:30:02.347772: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:30:02.347804: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:30:02.347840: Inverter 0 scheduled discharge enable is False
2026-08-18 17:30:02.347999: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:30:02.348041: Inverter 0 discharge windows currently []
2026-08-18 17:30:02.348064: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:30:02.348083: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:30:02.348100: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:30:02.405732: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:30:02.405841: Plan was last updated on 2026-08-18 17:25:00+01:00 and is now 5.0 minutes old
2026-08-18 17:30:02.406078: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:30:02.406120: Best export window [  ]
2026-08-18 17:30:02.406951: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:30:02.410398: Load divergence over 8.0 hours mean 573.29W, min 323.4W, max 1247.4W, std dev 232.79W, divergence 20.3%
2026-08-18 17:30:02.431850: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:30:02.432002: LoadML is_calculating False
2026-08-18 17:30:02.432074: Creating pool of 12 processes to match your CPU count
2026-08-18 17:30:02.554199: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 642.37p, metric_keep 128.14kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.93kWh, PV 0.0kWh
2026-08-18 17:30:02.704188: Battery has 5.67 hours left - now at 5.44kWh
2026-08-18 17:30:02.761573: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 670.16p, metric_keep 129.25kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.93kWh, PV 0.0kWh
2026-08-18 17:30:02.838605: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 379.94p, metric_keep 5.17kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.93kWh, PV 0.0kWh
2026-08-18 17:30:02.919486: predict best end_record 08-19 23:35:00, final soc 1.71kWh, metric 359.33p, metric_keep 1.47kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.93kWh, PV 0.0kWh
2026-08-18 17:30:02.919571: Saving plan best values to HA entities
2026-08-18 17:30:03.070947: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:30:03.076539: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:30:03.081875: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.33kWh, house 0.0kWh, export 0.0kWh, metric 359.33p, metric10 379.94p
2026-08-18 17:30:03.160083: Marginal costs baseline metric (no standing charge): 312.6979
2026-08-18 17:30:03.445689: Marginal energy costs matrix computed: min=8.0 max=39.96
2026-08-18 17:30:03.532870: Rate array import [{'start': 1050, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1050, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:30:03.533849: - Your estimated bill for today is £1.85 and tomorrow is £1.94
2026-08-18 17:30:03.533898: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:30:03.533922: - The battery is currently at 34% and is in eco mode for the next 2 hours.
2026-08-18 17:30:03.533941: - For the next 48 hours there will be no solar generation.
2026-08-18 17:30:03.533968: - You have enough battery to reach the next charge.
2026-08-18 17:30:03.533986: - Your next charge slot will be in 2 hours where import rates will be very expensive (33.8p).
2026-08-18 17:30:03.534005: 
2026-08-18 17:30:03.591764: Plan calculation took 1.19 seconds
2026-08-18 17:30:03.594708: No high rate period found
2026-08-18 17:30:03.637507: Import threshold used for optimisation was 8.0p
2026-08-18 17:30:03.685095: Low import rate windows [0: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 1: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 2: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 3: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 4: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 5: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 6: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 7: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 8: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 9: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 23: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 24: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 25: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 26: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 27: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 28: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 29: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 30: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 31: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 32: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 33: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 34: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 35: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 36: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 37: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 38: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 39: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 40: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 41: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 42: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 43: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 44: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 45: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 46: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 47: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 48: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 49: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 50: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 51: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 52: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 53: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 54: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 55: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 56: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 57: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 58: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 59: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 60: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 61: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 62: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 63: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 64: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 65: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 66: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 67: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 68: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 69: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 70: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 71: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 72: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 73: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 74: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 75: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 76: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 77: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 78: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 79: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 80: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 81: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 82: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 83: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 84: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 85: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 86: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 87: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 88: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 89: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 90: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 91: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 92: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 93: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75]
2026-08-18 17:30:03.691106: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 34%, target 22%
2026-08-18 17:30:03.691245: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:30:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:30:03.691388: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:30:03.691686: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:30:03.691806: No export window planned
2026-08-18 17:30:03.692017: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:30:03.692080: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:30:03.692263: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:30:03.692474: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:30:03.692542: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:30:03.692633: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:30:03.692781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.692831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.692893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.692941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.692999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:30:03.693586: Inverter 0 count register writes 0
2026-08-18 17:30:03.712765: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 17:30:03.717874: Total inverter register writes now 867
2026-08-18 17:30:03.746380: Info: Completed run status Demand
2026-08-18 17:30:03.752145: Info: record_status Demand
2026-08-18 17:30:03.758199: Saved current settings to /config/predbat_config.json
2026-08-18 17:30:03.758462: Compare, best tariff: current metric 129.87p
2026-08-18 17:30:33.867402: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:30:33.867741: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:30:33.867815: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:30:33.868036: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:30:33.868089: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:30:33.868112: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:30:33.868131: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:32:34.110164: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:32:34.110463: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:32:34.110514: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:32:34.110688: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:32:34.110747: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:32:34.110773: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:32:34.110814: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:34:34.325929: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:34:34.326151: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:34:34.326192: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:34:34.326323: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:34:34.326360: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:34:34.326382: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:34:34.326418: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:35:00.435666: --------------- PredBat - update at 2026-08-18 17:35:00+01:00 with clock skew 0 minutes, minutes now 1055
2026-08-18 17:35:00.436431: Saved current settings to /config/predbat_config.json
2026-08-18 17:35:00.897207: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:35:00.897325: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:35:00.916424: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:35:00.916529: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:35:00.916660: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:35:00.917075: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:35:00.917172: Predbat mode is set to Control charge & discharge
2026-08-18 17:35:01.105661: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:35:01.105812: Using load_power data to fill gaps in load_today data
2026-08-18 17:35:01.981728: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:35:01.981904: Zero load period starting at 2026-08-17T10:54:00+0100 (1841 minutes) for 189 minutes with base value 205.95
2026-08-18 17:35:01.982976: Processing 721 30-minute periods for power integration
2026-08-18 17:35:02.130269: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:35:02.130370: Car charging hold False, threshold 6.0kWh
2026-08-18 17:35:02.130410: Current data so far today: load 11.1kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:35:02.143758: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:35:02.143832: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:35:02.144504: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:35:02.144592: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:35:02.144654: Standing charge is set to 46.63p
2026-08-18 17:35:02.231761: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:35:02.232073: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:35:02.232260: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:35:02.233309: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:35:02.233411: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:35:02.233514: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:35:02.238987: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:35:02.239399: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:35:02.284732: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:35:02.284841: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:35:02.286145: High export rate found rates in range 99p to -99p
2026-08-18 17:35:02.390303: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:35:02.390430: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:35:02.404375: Battery level now 5.44kWh, -1hr ago 5.98kWh, at midnight 6.84kWh, battery value change in the last hour -3.74p, change today -9.62p, rate_forward 6.87p
2026-08-18 17:35:02.404803: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:35:02.471437: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:35:02.471599: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:35:02.566363: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:35:02.602811: Today's load divergence 100.68%, in-day adjustment 98.52%, damping 0.95x, yesterday 92.68% today 100.65% blend 26.74%
2026-08-18 17:35:02.602893: Today's predicted so far 10.99kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 10.99kWh forecast extra.
2026-08-18 17:35:02.602925: Today's actual load so far 11.1kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 17:35:02.633639: Inverter 0: Type SK Sunsynk
2026-08-18 17:35:02.633736: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:35:02.633914: Reserve min: 7%, battery_min: 7%
2026-08-18 17:35:02.633990: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:35:02.634236: Inverter 0 SoC: 5.36kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 536W, current battery voltage 51.2V, grid power -54W, load power 587W, PV Power 0W
2026-08-18 17:35:02.634381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:35:02.634464: Inverter 0 scheduled charge enable is False
2026-08-18 17:35:02.634492: Inverter 0 charge windows currently []
2026-08-18 17:35:02.634519: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:35:02.634630: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:35:02.634666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:35:02.634702: Inverter 0 scheduled discharge enable is False
2026-08-18 17:35:02.634845: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:35:02.634882: Inverter 0 discharge windows currently []
2026-08-18 17:35:02.634904: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:35:02.634941: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:35:02.634965: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:35:02.685138: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:35:02.685244: Plan was last updated on 2026-08-18 17:25:00+01:00 and is now 10.0 minutes old
2026-08-18 17:35:02.685485: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:35:02.685525: Best export window [  ]
2026-08-18 17:35:02.686308: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:35:02.689363: Load divergence over 8.0 hours mean 574.68W, min 330.0W, max 1248.0W, std dev 242.75W, divergence 21.12%
2026-08-18 17:35:02.704578: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:35:02.704680: LoadML is_calculating False
2026-08-18 17:35:02.704747: Creating pool of 12 processes to match your CPU count
2026-08-18 17:35:02.800648: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 643.61p, metric_keep 128.39kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.02kWh, PV 0.0kWh
2026-08-18 17:35:02.906668: Battery has 5.5 hours left - now at 5.36kWh
2026-08-18 17:35:02.942746: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 671.36p, metric_keep 129.45kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.02kWh, PV 0.0kWh
2026-08-18 17:35:03.023637: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 383.93p, metric_keep 5.25kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.02kWh, PV 0.0kWh
2026-08-18 17:35:03.096654: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 363.69p, metric_keep 1.54kWh, min_soc 1.13kWh @ 08-18 23:25:00, load 32.02kWh, PV 0.0kWh
2026-08-18 17:35:03.096741: Saving plan best values to HA entities
2026-08-18 17:35:03.238792: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:35:03.243847: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:35:03.248500: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.87kWh, house 0.0kWh, export 0.0kWh, metric 363.69p, metric10 383.93p
2026-08-18 17:35:03.323827: Marginal costs baseline metric (no standing charge): 317.0588
2026-08-18 17:35:03.550666: Marginal energy costs matrix computed: min=8.0 max=40.52
2026-08-18 17:35:03.624415: Rate array import [{'start': 1055, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1055, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:35:03.625143: - Your estimated bill for today is £1.85 and tomorrow is £1.94
2026-08-18 17:35:03.625193: - Import rates are very expensive (33.8p - 46.4p) for the next 5  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:35:03.625216: - The battery is currently at 34% and is in eco mode for the next 1  hours.
2026-08-18 17:35:03.625235: - For the next 48 hours there will be no solar generation.
2026-08-18 17:35:03.625261: - You have enough battery to reach the next charge.
2026-08-18 17:35:03.625297: - Your next charge slot will be in 1  hours where import rates will be very expensive (33.8p).
2026-08-18 17:35:03.625331: 
2026-08-18 17:35:03.680116: Plan calculation took 0.99 seconds
2026-08-18 17:35:03.683761: No high rate period found
2026-08-18 17:35:03.730742: Import threshold used for optimisation was 8.0p
2026-08-18 17:35:03.774985: Low import rate windows [0: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 1: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 2: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 3: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 4: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 5: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 6: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 7: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 8: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 9: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 23: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 24: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 25: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 26: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 27: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 28: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 29: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 30: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 31: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 32: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 33: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 34: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 35: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 36: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 37: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 38: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 39: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 40: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 41: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 42: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 43: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 44: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 45: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 46: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 47: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 48: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 49: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 50: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 51: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 52: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 53: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 54: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 55: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 56: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 57: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 58: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 59: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 60: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 61: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 62: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 63: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 64: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 65: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 66: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 67: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 68: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 69: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 70: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 71: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 72: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 73: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 74: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 75: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 76: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 77: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 78: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 79: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 80: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 81: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 82: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 83: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 84: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 85: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 86: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 87: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 88: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 89: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 90: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 91: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 92: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 93: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 94: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75]
2026-08-18 17:35:03.780440: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 34%, target 22%
2026-08-18 17:35:03.780579: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:35:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:35:03.780760: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:35:03.781094: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:35:03.781223: No export window planned
2026-08-18 17:35:03.781414: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:35:03.781458: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:35:03.781633: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:35:03.781861: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:35:03.781930: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:35:03.782041: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:35:03.782183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782232: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782490: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782950: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:03.782997: Inverter 0 count register writes 0
2026-08-18 17:35:03.798012: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 17:35:03.798135: Recompute is saving previous plan...
2026-08-18 17:35:03.800784: Best charge window [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0% ]
2026-08-18 17:35:03.800861: Best export window [  ]
2026-08-18 17:35:03.801517: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:35:03.804063: Load divergence over 8.0 hours mean 574.68W, min 330.0W, max 1248.0W, std dev 242.75W, divergence 21.12%
2026-08-18 17:35:03.820277: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:35:03.820371: LoadML is_calculating False
2026-08-18 17:35:03.820431: Creating pool of 12 processes to match your CPU count
2026-08-18 17:35:03.893501: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 17:35:03.895395: Optimise levels pass started at 2026-08-18 17:35:03
2026-08-18 17:35:03.895454: Optimise all windows, total charge 94 export 1
2026-08-18 17:35:04.278497: >> Region optimisation pass width 960 gives best_metric 419.44p, best_cost 456.15p, best_cycle 50.65kWh, best_import 37.29kWh
2026-08-18 17:35:04.427746: >> Region optimisation pass width 480 gives best_metric 419.44p, best_cost 456.15p, best_cycle 50.65kWh, best_import 37.29kWh
2026-08-18 17:35:04.708389: >> Region optimisation pass width 240 gives best_metric 419.44p, best_cost 456.15p, best_cycle 50.65kWh, best_import 37.29kWh
2026-08-18 17:35:06.028090: >> Region optimisation pass width 120 gives best_metric 415.37p, best_cost 428.9p, best_cycle 51.68kWh, best_import 33.89kWh
2026-08-18 17:35:06.028330: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 58
2026-08-18 17:35:06.028399: Optimise levels pass ended at 2026-08-18 17:35:06, duration 2.1 seconds tried 82 combinations
2026-08-18 17:35:06.028457: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 415.37p, best_keep 3.58kWh, best_cycle 51.68kWh, best_carbon 0kg, best_import 33.89kWh
2026-08-18 17:35:06.047377: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 17:35:11.854744: Tweak plan optimisation started metric 304.55p, cost 314.76p
2026-08-18 17:35:12.181686: Tweak optimisation finished metric 304.55p, cost 314.76p, metric_keep 1.19kWh, cycle 32.07kWh, carbon 0kg, import 19.58kWh, changed 8 window(s)
2026-08-18 17:35:12.201560: Swap charge optimisation started metric 304.55p, cost 314.76p, min_improvement_swap 0.1p
2026-08-18 17:35:17.218517: Swap charge optimisation finished metric 304.55p, cost 314.76p
2026-08-18 17:35:17.327868: Pruned 1 dead plan slot(s) in 11 trial(s), nominal metric 302.67p -> 302.68p, plan now metric 304.6p, cost 314.46p, cycle 32.1kWh, import 19.58kWh
2026-08-18 17:35:17.337459: Raw charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:35:17.337935: Unclipped charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:35:17.338140: Unfiltered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:35:17.338303: Filtered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:35:17.368341: Previous plan best metric is 303.37 (cost 312.99) and new plan best metric is 304.55 (cost 314.76)
2026-08-18 17:35:17.368527: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 17:35:17.368668: Plan valid is now true after recompute was False
2026-08-18 17:35:17.390838: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 642.02p, metric_keep 128.13kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.82kWh, PV 0.0kWh
2026-08-18 17:35:17.484183: Battery has 5.5 hours left - now at 5.36kWh
2026-08-18 17:35:17.545988: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 669.69p, metric_keep 129.19kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.81kWh, PV 0.0kWh
2026-08-18 17:35:17.617248: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 376.71p, metric_keep 5.23kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.81kWh, PV 0.0kWh
2026-08-18 17:35:17.694392: predict best end_record 08-19 23:30:00, final soc 1.32kWh, metric 355.44p, metric_keep 1.54kWh, min_soc 1.13kWh @ 08-18 23:25:00, load 31.82kWh, PV 0.0kWh
2026-08-18 17:35:17.695116: Saving plan best values to HA entities
2026-08-18 17:35:17.835981: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:35:17.840703: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:35:17.845431: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 18.84kWh, house 0.0kWh, export 0.0kWh, metric 355.44p, metric10 376.71p
2026-08-18 17:35:17.917063: Marginal costs baseline metric (no standing charge): 308.8042
2026-08-18 17:35:18.165111: Marginal energy costs matrix computed: min=8.0 max=40.52
2026-08-18 17:35:18.248842: Rate array import [{'start': 1055, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1055, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:35:18.249523: - Your estimated bill for today is £1.85 and tomorrow is £1.94
2026-08-18 17:35:18.249573: - Import rates are very expensive (33.8p - 46.4p) for the next 5  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:35:18.249606: - The battery is currently at 34% and is in eco mode for the next 1  hours.
2026-08-18 17:35:18.249644: - For the next 48 hours there will be no solar generation.
2026-08-18 17:35:18.249671: - You have enough battery to reach the next charge.
2026-08-18 17:35:18.249690: - Your next charge slot will be in 1  hours where import rates will be very expensive (33.8p).
2026-08-18 17:35:18.249732: 
2026-08-18 17:35:18.300341: Plan calculation took 14.50 seconds
2026-08-18 17:35:18.300655: Inverter 0: Type SK Sunsynk
2026-08-18 17:35:18.300699: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:35:18.300958: Reserve min: 7%, battery_min: 7%
2026-08-18 17:35:18.301043: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:35:18.301339: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 530W, current battery voltage 51.2V, grid power -54W, load power 581W, PV Power 0W
2026-08-18 17:35:18.301568: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:35:18.301677: Inverter 0 scheduled charge enable is False
2026-08-18 17:35:18.301729: Inverter 0 charge windows currently []
2026-08-18 17:35:18.301778: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:35:18.301902: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:35:18.301940: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:35:18.301985: Inverter 0 scheduled discharge enable is False
2026-08-18 17:35:18.302133: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:35:18.302168: Inverter 0 discharge windows currently []
2026-08-18 17:35:18.302194: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:35:18.302223: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:35:18.302250: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:35:18.353763: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 33%, target 22%
2026-08-18 17:35:18.353909: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:35:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:35:18.353979: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:35:18.354157: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:35:18.354268: No export window planned
2026-08-18 17:35:18.354394: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:35:18.354448: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:35:18.354610: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:35:18.354796: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:35:18.354855: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:35:18.354915: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:35:18.354999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355031: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355132: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355185: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:35:18.355457: Inverter 0 count register writes 0
2026-08-18 17:35:18.374244: Total inverter register writes now 867
2026-08-18 17:35:18.408069: Info: Completed run status Demand
2026-08-18 17:35:18.414939: Info: record_status Demand
2026-08-18 17:35:18.422294: Saved current settings to /config/predbat_config.json
2026-08-18 17:35:18.422613: Compare, best tariff: current metric 129.87p
2026-08-18 17:35:49.519789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:35:49.520053: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:35:49.520101: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:35:49.520233: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:35:49.520272: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:35:49.520293: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:35:49.520314: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:38:03.762370: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:38:03.762590: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:38:03.762624: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:38:03.762774: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:38:03.762815: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:38:03.762838: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:38:03.762856: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:40:00.969301: --------------- PredBat - update at 2026-08-18 17:40:00+01:00 with clock skew 0 minutes, minutes now 1060
2026-08-18 17:40:00.970267: Saved current settings to /config/predbat_config.json
2026-08-18 17:40:00.970417: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 17:40:00.970523: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:40:00.970629: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:40:00.993155: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:40:00.993286: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:40:00.993512: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:40:00.994081: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:40:00.994260: Predbat mode is set to Control charge & discharge
2026-08-18 17:40:01.211408: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:40:01.211557: Using load_power data to fill gaps in load_today data
2026-08-18 17:40:02.050540: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:40:02.051703: Zero load period starting at 2026-08-17T10:54:00+0100 (1846 minutes) for 189 minutes with base value 205.925
2026-08-18 17:40:02.053272: Processing 721 30-minute periods for power integration
2026-08-18 17:40:02.247360: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:40:02.249985: Car charging hold False, threshold 6.0kWh
2026-08-18 17:40:02.250113: Current data so far today: load 11.15kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:40:02.270249: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:40:02.270376: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:40:02.272303: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:40:02.275159: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:40:02.275279: Standing charge is set to 46.63p
2026-08-18 17:40:02.381857: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:40:02.382231: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:40:02.383271: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:40:02.384489: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:40:02.384671: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:40:02.386933: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:40:02.392603: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:40:02.393052: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:40:02.439194: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:40:02.439315: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:40:02.440832: High export rate found rates in range 99p to -99p
2026-08-18 17:40:02.544044: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:40:02.544182: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:40:02.555337: Battery level now 5.36kWh, -1hr ago 5.9kWh, at midnight 6.84kWh, battery value change in the last hour -3.74p, change today -10.17p, rate_forward 6.87p
2026-08-18 17:40:02.555683: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:40:02.608954: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:40:02.609122: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:40:02.702182: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:40:02.732245: Today's load divergence 100.76%, in-day adjustment 98.6%, damping 0.95x, yesterday 92.68% today 100.72% blend 26.39%
2026-08-18 17:40:02.732317: Today's predicted so far 11.0kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 11.0kWh forecast extra.
2026-08-18 17:40:02.732344: Today's actual load so far 11.12kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 17:40:02.763974: Inverter 0: Type SK Sunsynk
2026-08-18 17:40:02.764043: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:40:02.764238: Reserve min: 7%, battery_min: 7%
2026-08-18 17:40:02.764308: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:40:02.764616: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 548W, current battery voltage 51.2V, grid power -50W, load power 600W, PV Power 0W
2026-08-18 17:40:02.764789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:40:02.764863: Inverter 0 scheduled charge enable is False
2026-08-18 17:40:02.764892: Inverter 0 charge windows currently []
2026-08-18 17:40:02.764936: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:40:02.765030: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:40:02.765053: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:40:02.765106: Inverter 0 scheduled discharge enable is False
2026-08-18 17:40:02.765222: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:40:02.765245: Inverter 0 discharge windows currently []
2026-08-18 17:40:02.765263: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:40:02.765319: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:40:02.765334: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:40:02.817008: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:40:02.817095: Plan was last updated on 2026-08-18 17:35:00+01:00 and is now 5.0 minutes old
2026-08-18 17:40:02.817283: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:40:02.817317: Best export window [  ]
2026-08-18 17:40:02.817983: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:40:02.820635: Load divergence over 8.0 hours mean 573.19W, min 349.8W, max 1158.0W, std dev 227.09W, divergence 19.81%
2026-08-18 17:40:02.836260: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:40:02.836348: LoadML is_calculating False
2026-08-18 17:40:02.836406: Creating pool of 12 processes to match your CPU count
2026-08-18 17:40:02.946706: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 643.45p, metric_keep 128.42kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.91kWh, PV 0.0kWh
2026-08-18 17:40:03.069525: Battery has 5.42 hours left - now at 5.28kWh
2026-08-18 17:40:03.117254: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 671.07p, metric_keep 129.46kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.9kWh, PV 0.0kWh
2026-08-18 17:40:03.190106: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 380.77p, metric_keep 5.0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.9kWh, PV 0.0kWh
2026-08-18 17:40:03.282466: predict best end_record 08-19 23:35:00, final soc 1.72kWh, metric 359.99p, metric_keep 1.62kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.91kWh, PV 0.0kWh
2026-08-18 17:40:03.282573: Saving plan best values to HA entities
2026-08-18 17:40:03.456102: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:40:03.461047: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:40:03.466095: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.37kWh, house 0.0kWh, export 0.0kWh, metric 359.99p, metric10 380.77p
2026-08-18 17:40:03.541980: Marginal costs baseline metric (no standing charge): 313.3602
2026-08-18 17:40:03.801030: Marginal energy costs matrix computed: min=8.0 max=41.1
2026-08-18 17:40:03.867853: Rate array import [{'start': 1060, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1060, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:40:03.868479: - Your estimated bill for today is £1.86 and tomorrow is £1.94
2026-08-18 17:40:03.868525: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:40:03.868548: - The battery is currently at 33% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 17:40:03.868567: - For the next 48 hours there will be no solar generation.
2026-08-18 17:40:03.868593: - You have enough battery to reach the next charge.
2026-08-18 17:40:03.868612: - Your next charge slot will be in 1 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 17:40:03.868629: 
2026-08-18 17:40:03.920207: Plan calculation took 1.10 seconds
2026-08-18 17:40:03.923413: No high rate period found
2026-08-18 17:40:03.964971: Import threshold used for optimisation was 8.0p
2026-08-18 17:40:04.011216: Low import rate windows [0: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 1: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 2: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 3: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 4: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 5: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 6: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 7: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 8: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 9: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 23: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 24: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 25: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 26: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 27: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 28: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 29: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 30: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 31: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 32: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 33: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 34: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 35: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 36: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 37: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 38: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 39: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 40: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 41: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 42: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 43: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 44: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 45: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 46: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 47: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 48: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 49: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 50: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 51: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 52: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 53: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 54: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 55: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 56: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 57: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 58: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 59: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 60: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 61: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 62: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 63: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 64: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 65: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 66: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 67: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 68: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 69: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 70: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 71: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 72: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 73: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 74: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 75: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 76: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 77: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 78: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 79: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 80: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 81: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 82: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 83: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 84: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 85: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 86: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 87: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 88: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 89: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 90: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 91: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 92: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 93: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 94: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75]
2026-08-18 17:40:04.016560: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 33%, target 22%
2026-08-18 17:40:04.016680: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:40:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:40:04.016792: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:40:04.017113: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:40:04.017215: No export window planned
2026-08-18 17:40:04.017346: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:40:04.017382: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:40:04.017508: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:40:04.017681: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:40:04.017756: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:40:04.017823: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:40:04.017913: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.017952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.017982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018013: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018205: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:40:04.018355: Inverter 0 count register writes 0
2026-08-18 17:40:04.033467: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 17:40:04.038545: Total inverter register writes now 867
2026-08-18 17:40:04.066251: Info: Completed run status Demand
2026-08-18 17:40:04.072297: Info: record_status Demand
2026-08-18 17:40:04.078743: Saved current settings to /config/predbat_config.json
2026-08-18 17:40:04.079017: Compare, best tariff: current metric 129.87p
2026-08-18 17:40:34.170499: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:40:34.170847: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:40:34.170917: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:40:34.171189: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:40:34.171259: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:40:34.171306: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:40:34.171357: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:42:34.385479: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:42:34.385891: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:42:34.385969: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:42:34.386135: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:42:34.386191: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:42:34.386213: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:42:34.386231: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:44:34.625178: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:44:34.625377: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:44:34.625411: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:44:34.625521: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:44:34.625553: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:44:34.625579: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:44:34.625687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:45:00.757404: --------------- PredBat - update at 2026-08-18 17:45:00+01:00 with clock skew 0 minutes, minutes now 1065
2026-08-18 17:45:00.758146: Saved current settings to /config/predbat_config.json
2026-08-18 17:45:00.758271: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 17:45:00.758381: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:45:00.758465: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:45:00.778305: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:45:00.778423: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:45:00.778627: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:45:00.779138: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:45:00.779298: Predbat mode is set to Control charge & discharge
2026-08-18 17:45:00.969703: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:45:00.969845: Using load_power data to fill gaps in load_today data
2026-08-18 17:45:01.917666: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:45:01.919242: Zero load period starting at 2026-08-17T10:54:00+0100 (1851 minutes) for 189 minutes with base value 205.9
2026-08-18 17:45:01.920657: Processing 721 30-minute periods for power integration
2026-08-18 17:45:02.124658: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:45:02.124791: Car charging hold False, threshold 6.0kWh
2026-08-18 17:45:02.124835: Current data so far today: load 11.2kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:45:02.141313: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:45:02.141399: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:45:02.142113: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:45:02.142194: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:45:02.142246: Standing charge is set to 46.63p
2026-08-18 17:45:02.227388: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:45:02.227623: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:45:02.227838: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:45:02.228767: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:45:02.228885: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:45:02.229020: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:45:02.233930: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:45:02.234272: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:45:02.272768: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:45:02.272860: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:45:02.273955: High export rate found rates in range 99p to -99p
2026-08-18 17:45:02.356305: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:45:02.356438: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:45:02.367860: Battery level now 5.28kWh, -1hr ago 5.9kWh, at midnight 6.84kWh, battery value change in the last hour -4.29p, change today -10.72p, rate_forward 6.87p
2026-08-18 17:45:02.368262: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:45:02.442864: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:45:02.443042: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:45:02.547010: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:45:02.584696: Today's load divergence 100.9%, in-day adjustment 98.72%, damping 0.95x, yesterday 92.68% today 100.85% blend 26.04%
2026-08-18 17:45:02.584841: Today's predicted so far 11.01kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 11.01kWh forecast extra.
2026-08-18 17:45:02.584875: Today's actual load so far 11.16kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 17:45:02.626166: Inverter 0: Type SK Sunsynk
2026-08-18 17:45:02.626272: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:45:02.626428: Reserve min: 7%, battery_min: 7%
2026-08-18 17:45:02.626496: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:45:02.626727: Inverter 0 SoC: 5.26kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 550W, current battery voltage 51.2V, grid power -53W, load power 601W, PV Power 0W
2026-08-18 17:45:02.626876: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:45:02.626953: Inverter 0 scheduled charge enable is False
2026-08-18 17:45:02.627090: Inverter 0 charge windows currently []
2026-08-18 17:45:02.627127: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:45:02.627222: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:45:02.627251: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:45:02.627281: Inverter 0 scheduled discharge enable is False
2026-08-18 17:45:02.627380: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:45:02.627419: Inverter 0 discharge windows currently []
2026-08-18 17:45:02.627442: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:45:02.627465: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:45:02.627488: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:45:02.696907: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:45:02.697007: Plan was last updated on 2026-08-18 17:35:00+01:00 and is now 10.0 minutes old
2026-08-18 17:45:02.697246: Best charge window [ 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 22%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 17:30:00 @ 33.75p 100% ]
2026-08-18 17:45:02.697287: Best export window [  ]
2026-08-18 17:45:02.698151: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:45:02.701404: Load divergence over 8.0 hours mean 571.6W, min 331.8W, max 1061.4W, std dev 217.5W, divergence 19.03%
2026-08-18 17:45:02.719972: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:45:02.720069: LoadML is_calculating False
2026-08-18 17:45:02.720125: Creating pool of 12 processes to match your CPU count
2026-08-18 17:45:02.832436: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 643.47p, metric_keep 128.38kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.03kWh, PV 0.0kWh
2026-08-18 17:45:02.953916: Battery has 5.33 hours left - now at 5.26kWh
2026-08-18 17:45:02.998186: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 671.06p, metric_keep 129.41kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.02kWh, PV 0.0kWh
2026-08-18 17:45:03.078171: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 383.54p, metric_keep 5.19kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.02kWh, PV 0.0kWh
2026-08-18 17:45:03.153028: predict best end_record 08-19 23:40:00, final soc 2.1kWh, metric 363.85p, metric_keep 1.47kWh, min_soc 1.15kWh @ 08-18 23:25:00, load 32.03kWh, PV 0.0kWh
2026-08-18 17:45:03.153097: Saving plan best values to HA entities
2026-08-18 17:45:03.294335: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:45:03.298791: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:45:03.303075: Best charging limit SoC's [3.5, 2.5, 16.0, 14.25, 16.0]kWh, export []kWh gives import battery 19.87kWh, house 0kWh, export 0.0kWh, metric 363.85p, metric10 383.54p
2026-08-18 17:45:03.377103: Marginal costs baseline metric (no standing charge): 317.2129
2026-08-18 17:45:03.640225: Marginal energy costs matrix computed: min=8.0 max=41.47
2026-08-18 17:45:03.716442: Rate array import [{'start': 1065, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1065, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:45:03.717093: - Your estimated bill for today is £1.86 and tomorrow is £1.94
2026-08-18 17:45:03.717143: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:45:03.717166: - The battery is currently at 33% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 17:45:03.717207: - For the next 48 hours there will be no solar generation.
2026-08-18 17:45:03.717227: - You have enough battery to reach the next charge.
2026-08-18 17:45:03.717244: - Your next charge slot will be in 1 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 17:45:03.717270: 
2026-08-18 17:45:03.771639: Plan calculation took 1.07 seconds
2026-08-18 17:45:03.775154: No high rate period found
2026-08-18 17:45:03.822348: Import threshold used for optimisation was 8.0p
2026-08-18 17:45:03.879669: Low import rate windows [0: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 1: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 2: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 3: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 4: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 5: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 6: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 7: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 8: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 9: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 23: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 24: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 25: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 26: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 27: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 28: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 29: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 30: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 31: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 32: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 33: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 34: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 35: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 36: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 37: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 38: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 39: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 40: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 41: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 42: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 43: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 44: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 45: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 46: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 47: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 48: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 49: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 50: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 51: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 52: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 53: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 54: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 55: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 56: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 57: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 58: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 59: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 60: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 61: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 62: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 63: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 64: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 65: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 66: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 67: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 68: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 69: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 70: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 71: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 72: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 73: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 74: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 75: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 76: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 77: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 78: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 79: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 80: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 81: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 82: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 83: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 84: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 85: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 86: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 87: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 88: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 89: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 90: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 91: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 92: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 93: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 94: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75]
2026-08-18 17:45:03.886425: Inverter 0 Charge window will be: 2026-08-18 19:30:00+01:00 - 2026-08-18 20:00:00+01:00 - current SoC 33%, target 22%
2026-08-18 17:45:03.886556: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:45:00 target set_window_minutes 30 charge start time 08-18 19:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:45:03.886655: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:45:03.886929: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:45:03.887019: No export window planned
2026-08-18 17:45:03.887127: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:45:03.887172: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:45:03.887332: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:45:03.887524: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:45:03.887605: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:45:03.887662: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:45:03.887748: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887800: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887853: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887894: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.887992: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:03.888148: Inverter 0 count register writes 0
2026-08-18 17:45:03.905978: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 17:45:03.906152: Recompute is saving previous plan...
2026-08-18 17:45:03.908860: Best charge window [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0% ]
2026-08-18 17:45:03.908927: Best export window [  ]
2026-08-18 17:45:03.909643: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:45:03.912273: Load divergence over 8.0 hours mean 571.6W, min 331.8W, max 1061.4W, std dev 217.5W, divergence 19.03%
2026-08-18 17:45:03.926566: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:45:03.926661: LoadML is_calculating False
2026-08-18 17:45:03.926713: Creating pool of 12 processes to match your CPU count
2026-08-18 17:45:04.008134: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 17:45:04.009975: Optimise levels pass started at 2026-08-18 17:45:04
2026-08-18 17:45:04.010075: Optimise all windows, total charge 94 export 1
2026-08-18 17:45:04.464308: >> Region optimisation pass width 960 gives best_metric 420.04p, best_cost 458.1p, best_cycle 50.94kWh, best_import 37.56kWh
2026-08-18 17:45:04.721618: >> Region optimisation pass width 480 gives best_metric 420.04p, best_cost 458.1p, best_cycle 50.94kWh, best_import 37.56kWh
2026-08-18 17:45:05.079309: >> Region optimisation pass width 240 gives best_metric 420.04p, best_cost 458.1p, best_cycle 50.94kWh, best_import 37.56kWh
2026-08-18 17:45:06.615176: >> Region optimisation pass width 120 gives best_metric 415.89p, best_cost 428.67p, best_cycle 51.56kWh, best_import 33.88kWh
2026-08-18 17:45:06.615679: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 58
2026-08-18 17:45:06.616321: Optimise levels pass ended at 2026-08-18 17:45:06, duration 2.6 seconds tried 211 combinations
2026-08-18 17:45:06.616430: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 415.89p, best_keep 3.57kWh, best_cycle 51.56kWh, best_carbon 0kg, best_import 33.88kWh
2026-08-18 17:45:06.634551: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 17:45:12.319695: Tweak plan optimisation started metric 303.17p, cost 312.5p
2026-08-18 17:45:12.626727: Tweak optimisation finished metric 303.17p, cost 312.5p, metric_keep 1.45kWh, cycle 30.09kWh, carbon 0kg, import 19.36kWh, changed 8 window(s)
2026-08-18 17:45:12.642634: Swap charge optimisation started metric 303.17p, cost 312.5p, min_improvement_swap 0.1p
2026-08-18 17:45:17.785838: Swap charge optimisation finished metric 303.17p, cost 312.5p
2026-08-18 17:45:17.945882: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 301.26p -> 301.1p, plan now metric 303.59p, cost 310.49p, cycle 30.35kWh, import 19.11kWh
2026-08-18 17:45:17.958615: Raw charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:45:17.959314: Unclipped charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:45:17.959552: Unfiltered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:45:17.959727: Filtered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:45:17.998430: Previous plan best metric is 303.35 (cost 313.1) and new plan best metric is 303.17 (cost 312.5)
2026-08-18 17:45:17.998680: New plan is a cost-neutral improvement but less fragmented (3 vs 4 segments), using new plan
2026-08-18 17:45:17.998720: Plan valid is now true after recompute was False
2026-08-18 17:45:18.027272: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 641.86p, metric_keep 128.12kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.83kWh, PV 0.0kWh
2026-08-18 17:45:18.158180: Battery has 5.33 hours left - now at 5.26kWh
2026-08-18 17:45:18.215004: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 669.38p, metric_keep 129.16kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.81kWh, PV 0.0kWh
2026-08-18 17:45:18.301471: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 370.59p, metric_keep 4.49kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.81kWh, PV 0.0kWh
2026-08-18 17:45:18.373738: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 357.12p, metric_keep 1.45kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.83kWh, PV 0.0kWh
2026-08-18 17:45:18.373830: Saving plan best values to HA entities
2026-08-18 17:45:18.519117: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:45:18.524407: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:45:18.529552: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.07kWh, house 0.03kWh, export 0.0kWh, metric 357.12p, metric10 370.59p
2026-08-18 17:45:18.602335: Marginal costs baseline metric (no standing charge): 310.4894
2026-08-18 17:45:18.883487: Marginal energy costs matrix computed: min=8.0 max=40.95
2026-08-18 17:45:18.954452: Rate array import [{'start': 1065, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1065, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:45:18.955076: - Your estimated bill for today is £1.85 and tomorrow is £1.97
2026-08-18 17:45:18.955119: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:45:18.955142: - The battery is currently at 33% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 17:45:18.955160: - For the next 48 hours there will be no solar generation.
2026-08-18 17:45:18.955177: - You have enough battery to reach the next charge.
2026-08-18 17:45:18.955202: - Your next charge slot will be in 3 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 17:45:18.955220: 
2026-08-18 17:45:19.003362: Plan calculation took 15.10 seconds
2026-08-18 17:45:19.003836: Inverter 0: Type SK Sunsynk
2026-08-18 17:45:19.003892: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:45:19.004251: Reserve min: 7%, battery_min: 7%
2026-08-18 17:45:19.004341: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:45:19.004684: Inverter 0 SoC: 5.26kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 550W, current battery voltage 51.2V, grid power -53W, load power 601W, PV Power 0W
2026-08-18 17:45:19.005024: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:45:19.005162: Inverter 0 scheduled charge enable is False
2026-08-18 17:45:19.005225: Inverter 0 charge windows currently []
2026-08-18 17:45:19.005280: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:45:19.005422: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:45:19.005486: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:45:19.005554: Inverter 0 scheduled discharge enable is False
2026-08-18 17:45:19.005783: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:45:19.005852: Inverter 0 discharge windows currently []
2026-08-18 17:45:19.005877: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:45:19.005896: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:45:19.005914: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:45:19.059040: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 33%, target 16%
2026-08-18 17:45:19.059178: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:45:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:45:19.059243: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:45:19.059421: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:45:19.059505: No export window planned
2026-08-18 17:45:19.059609: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:45:19.059643: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:45:19.059792: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:45:19.059999: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:45:19.060060: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:45:19.060121: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:45:19.060204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060356: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060389: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:45:19.060627: Inverter 0 count register writes 0
2026-08-18 17:45:19.081110: Total inverter register writes now 867
2026-08-18 17:45:19.111306: Info: Completed run status Demand
2026-08-18 17:45:19.117537: Info: record_status Demand
2026-08-18 17:45:19.123835: Saved current settings to /config/predbat_config.json
2026-08-18 17:45:19.124159: Compare, best tariff: current metric 129.87p
2026-08-18 17:45:49.225239: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:45:49.225420: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:45:49.225448: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:45:49.225549: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:45:49.225581: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:45:49.225598: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:45:49.225612: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:47:49.435858: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:47:49.436112: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:47:49.436156: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:47:49.436288: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:47:49.436325: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:47:49.436347: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:47:49.436365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:49:25.515724: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 17:49:26.616140: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:49:26.616322: Zero load period starting at 2026-08-17T10:54:00+0100 (1851 minutes) for 189 minutes with base value 395.1
2026-08-18 17:49:26.617720: Processing 1345 30-minute periods for power integration
2026-08-18 17:49:26.739734: ML Component: Car charging hold False, car energy reported load False
2026-08-18 17:49:26.852113: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:49:26.960838: ML Temperature data points: 49336
2026-08-18 17:49:27.263796: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 17:49:27.306759: ML Component: Data fetch completed, load data age 60.0 days, 17324 data points
2026-08-18 17:49:27.306885: ML Component: No training needed, model age is 0.31 hours
2026-08-18 17:49:27.306943: ML Component: Generating predictions load data age 60.0 days, 17324 data points
2026-08-18 17:49:27.448581: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.047 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 17:49:27.968409: ML Component: Generated 576 predictions (total 32.53 kWh over 48h)
2026-08-18 17:49:28.012886: ML Component: Prediction cycle completed
2026-08-18 17:49:28.131125: ML Component: Saved 17324 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 17:50:00.680566: --------------- PredBat - update at 2026-08-18 17:50:00+01:00 with clock skew 0 minutes, minutes now 1070
2026-08-18 17:50:00.681591: Saved current settings to /config/predbat_config.json
2026-08-18 17:50:00.681760: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 17:50:00.681895: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:50:00.681991: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:50:00.701374: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:50:00.701496: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:50:00.701743: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:50:00.702311: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:50:00.702465: Predbat mode is set to Control charge & discharge
2026-08-18 17:50:00.902114: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:50:00.902240: Using load_power data to fill gaps in load_today data
2026-08-18 17:50:01.607623: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:50:01.607791: Zero load period starting at 2026-08-17T10:54:00+0100 (1856 minutes) for 189 minutes with base value 205.875
2026-08-18 17:50:01.608926: Processing 721 30-minute periods for power integration
2026-08-18 17:50:01.772640: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:50:01.772750: Car charging hold False, threshold 6.0kWh
2026-08-18 17:50:01.772807: Current data so far today: load 11.25kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:50:01.790025: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:50:01.790552: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:50:01.791489: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:50:01.791626: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:50:01.791729: Standing charge is set to 46.63p
2026-08-18 17:50:01.864943: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:50:01.865343: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:50:01.865550: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:50:01.867140: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:50:01.867313: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:50:01.867443: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:50:01.874170: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:50:01.874471: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:50:01.922657: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:50:01.922811: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:50:01.924791: High export rate found rates in range 99p to -99p
2026-08-18 17:50:02.052295: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:50:02.052420: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:50:02.069703: Battery level now 5.26kWh, -1hr ago 5.76kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today -10.83p, rate_forward 6.87p
2026-08-18 17:50:02.070027: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.16p, import 0.16p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 17:50:02.146122: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:50:02.146234: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:50:02.224847: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:50:02.252673: Today's load divergence 100.98%, in-day adjustment 98.81%, damping 0.95x, yesterday 92.68% today 100.93% blend 25.69%
2026-08-18 17:50:02.252742: Today's predicted so far 11.04kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 11.04kWh forecast extra.
2026-08-18 17:50:02.252767: Today's actual load so far 11.2kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 17:50:02.283347: Inverter 0: Type SK Sunsynk
2026-08-18 17:50:02.283446: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:50:02.283678: Reserve min: 7%, battery_min: 7%
2026-08-18 17:50:02.283749: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:50:02.284064: Inverter 0 SoC: 5.26kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 535W, current battery voltage 51.2V, grid power -54W, load power 588W, PV Power 0W
2026-08-18 17:50:02.284219: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:50:02.284290: Inverter 0 scheduled charge enable is False
2026-08-18 17:50:02.284315: Inverter 0 charge windows currently []
2026-08-18 17:50:02.284337: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:50:02.284452: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:50:02.284497: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:50:02.284538: Inverter 0 scheduled discharge enable is False
2026-08-18 17:50:02.284648: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:50:02.284678: Inverter 0 discharge windows currently []
2026-08-18 17:50:02.284697: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:50:02.284716: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:50:02.284764: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:50:02.336496: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:50:02.336610: Plan was last updated on 2026-08-18 17:45:00+01:00 and is now 5.0 minutes old
2026-08-18 17:50:02.336928: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 17:50:02.336975: Best export window [  ]
2026-08-18 17:50:02.337763: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:50:02.340900: Load divergence over 8.0 hours mean 568.57W, min 332.4W, max 1084.2W, std dev 220.97W, divergence 19.43%
2026-08-18 17:50:02.359843: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:50:02.359943: LoadML is_calculating False
2026-08-18 17:50:02.359995: Creating pool of 12 processes to match your CPU count
2026-08-18 17:50:02.463346: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 640.73p, metric_keep 127.91kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.92kWh, PV 0.0kWh
2026-08-18 17:50:02.561613: Battery has 5.33 hours left - now at 5.26kWh
2026-08-18 17:50:02.605479: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 668.17p, metric_keep 128.94kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.9kWh, PV 0.0kWh
2026-08-18 17:50:02.702474: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 372.1p, metric_keep 4.14kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.9kWh, PV 0.0kWh
2026-08-18 17:50:02.784210: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 359.93p, metric_keep 1.16kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.92kWh, PV 0.0kWh
2026-08-18 17:50:02.784304: Saving plan best values to HA entities
2026-08-18 17:50:02.934029: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:50:02.938542: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 17:50:02.945559: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.57kWh, house 0kWh, export 0.0kWh, metric 359.93p, metric10 372.1p
2026-08-18 17:50:03.013948: Marginal costs baseline metric (no standing charge): 313.2914
2026-08-18 17:50:03.276601: Marginal energy costs matrix computed: min=8.0 max=41.31
2026-08-18 17:50:03.349919: Rate array import [{'start': 1070, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1070, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:50:03.350670: - Your estimated bill for today is £1.84 and tomorrow is £1.96
2026-08-18 17:50:03.350720: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:50:03.350744: - The battery is currently at 33% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 17:50:03.350763: - For the next 48 hours there will be no solar generation.
2026-08-18 17:50:03.350796: - You have enough battery to reach the next charge.
2026-08-18 17:50:03.350824: - Your next charge slot will be in 3 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 17:50:03.350842: 
2026-08-18 17:50:03.403297: Plan calculation took 1.07 seconds
2026-08-18 17:50:03.406935: No high rate period found
2026-08-18 17:50:03.457023: Import threshold used for optimisation was 8.0p
2026-08-18 17:50:03.511060: Low import rate windows [0: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 1: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 2: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 3: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 4: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 5: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 6: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 7: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 8: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 9: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 23: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 24: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 25: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 26: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 27: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 28: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 29: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 30: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 31: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 32: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 33: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 34: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 35: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 36: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 37: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 38: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 39: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 40: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 41: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 42: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 43: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 44: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 45: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 46: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 47: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 48: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 49: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 50: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 51: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 52: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 53: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 54: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 55: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 56: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 57: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 58: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 59: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 60: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 61: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 62: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 63: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 64: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 65: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 66: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 67: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 68: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 69: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 70: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 71: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 72: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 73: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 74: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 75: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 76: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 77: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 78: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 79: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 80: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 81: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 82: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 83: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 84: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 85: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 86: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 87: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 88: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 89: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 90: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 91: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 92: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 93: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 94: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75]
2026-08-18 17:50:03.516392: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 33%, target 16%
2026-08-18 17:50:03.516503: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:50:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:50:03.516581: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:50:03.516808: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:50:03.516882: No export window planned
2026-08-18 17:50:03.516978: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:50:03.517001: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:50:03.517108: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:50:03.517253: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:50:03.517304: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:50:03.517359: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:50:03.517435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517654: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:50:03.517825: Inverter 0 count register writes 0
2026-08-18 17:50:03.533025: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 17:50:03.540072: Total inverter register writes now 867
2026-08-18 17:50:03.572000: Info: Completed run status Demand
2026-08-18 17:50:03.578190: Info: record_status Demand
2026-08-18 17:50:03.586770: Saved current settings to /config/predbat_config.json
2026-08-18 17:50:03.587130: Compare, best tariff: current metric 129.87p
2026-08-18 17:50:33.721551: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:50:33.721811: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:50:33.721857: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:50:33.722096: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:50:33.722140: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:50:33.722162: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:50:33.722180: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:52:33.961858: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:52:33.962086: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:52:33.962127: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:52:33.962260: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:52:33.962297: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:52:33.962319: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:52:33.962337: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:54:34.227698: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:54:34.228003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:54:34.228053: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:54:34.228186: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:54:34.228223: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:54:34.228263: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:54:34.228288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:55:00.330311: --------------- PredBat - update at 2026-08-18 17:55:00+01:00 with clock skew 0 minutes, minutes now 1075
2026-08-18 17:55:00.331148: Saved current settings to /config/predbat_config.json
2026-08-18 17:55:00.331288: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 17:55:00.331403: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 17:55:00.331501: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 17:55:00.347247: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 17:55:00.347348: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 17:55:00.347481: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 17:55:00.347937: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 17:55:00.348040: Predbat mode is set to Control charge & discharge
2026-08-18 17:55:00.532581: Found 21602 load_today datapoints going back 28 days
2026-08-18 17:55:00.532711: Using load_power data to fill gaps in load_today data
2026-08-18 17:55:01.281355: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 17:55:01.282237: Zero load period starting at 2026-08-17T10:54:00+0100 (1861 minutes) for 189 minutes with base value 205.85
2026-08-18 17:55:01.283940: Processing 721 30-minute periods for power integration
2026-08-18 17:55:01.453903: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 17:55:01.454022: Car charging hold False, threshold 6.0kWh
2026-08-18 17:55:01.454075: Current data so far today: load 11.3kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 17:55:01.468710: Car 0 using Octopus Intelligent is unplugged
2026-08-18 17:55:01.468793: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 17:55:01.469416: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:55:01.469485: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 17:55:01.469529: Standing charge is set to 46.63p
2026-08-18 17:55:01.551108: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:55:01.553640: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:55:01.555597: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 17:55:01.556856: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 17:55:01.557014: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 17:55:01.557279: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 17:55:01.562982: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 17:55:01.563548: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 17:55:01.609496: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 17:55:01.609647: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 17:55:01.610837: High export rate found rates in range 99p to -99p
2026-08-18 17:55:01.724212: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 17:55:01.726901: Car 0 on Octopus Intelligent, no active plan
2026-08-18 17:55:01.747411: Battery level now 5.26kWh, -1hr ago 5.76kWh, at midnight 6.84kWh, battery value change in the last hour -3.41p, change today -10.83p, rate_forward 6.87p
2026-08-18 17:55:01.749061: 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-18 17:55:01.824737: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 17:55:01.824930: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 17:55:01.920008: Using weighted-bucket historical load forecast over 14 days
2026-08-18 17:55:01.956375: Today's load divergence 101.19%, in-day adjustment 98.99%, damping 0.95x, yesterday 92.68% today 101.13% blend 25.35%
2026-08-18 17:55:01.956470: Today's predicted so far 11.07kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 11.07kWh forecast extra.
2026-08-18 17:55:01.956503: Today's actual load so far 11.26kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 17:55:01.990086: Inverter 0: Type SK Sunsynk
2026-08-18 17:55:01.990170: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:55:01.990355: Reserve min: 7%, battery_min: 7%
2026-08-18 17:55:01.990431: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:55:01.990683: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 444W, current battery voltage 51.2V, grid power -53W, load power 498W, PV Power 0W
2026-08-18 17:55:01.990850: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:55:01.990938: Inverter 0 scheduled charge enable is False
2026-08-18 17:55:01.990965: Inverter 0 charge windows currently []
2026-08-18 17:55:01.990991: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:55:01.991099: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:55:01.991132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:55:01.991166: Inverter 0 scheduled discharge enable is False
2026-08-18 17:55:01.991282: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:55:01.991317: Inverter 0 discharge windows currently []
2026-08-18 17:55:01.991339: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:55:01.991362: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:55:01.991379: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:55:02.047860: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 17:55:02.048004: Plan was last updated on 2026-08-18 17:45:00+01:00 and is now 10.0 minutes old
2026-08-18 17:55:02.048218: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 17:55:02.048260: Best export window [  ]
2026-08-18 17:55:02.049147: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:55:02.052271: Load divergence over 8.0 hours mean 565.79W, min 337.2W, max 1255.8W, std dev 238.33W, divergence 21.06%
2026-08-18 17:55:02.070724: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:55:02.070853: LoadML is_calculating False
2026-08-18 17:55:02.070913: Creating pool of 12 processes to match your CPU count
2026-08-18 17:55:02.177471: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 645.48p, metric_keep 128.59kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.04kWh, PV 0.0kWh
2026-08-18 17:55:02.297450: Battery has 5.17 hours left - now at 5.12kWh
2026-08-18 17:55:02.348424: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 672.98p, metric_keep 129.62kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.03kWh, PV 0.0kWh
2026-08-18 17:55:02.444008: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 379.76p, metric_keep 4.75kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.03kWh, PV 0.0kWh
2026-08-18 17:55:02.533300: predict best end_record 08-19 23:40:00, final soc 2.34kWh, metric 367.03p, metric_keep 1.75kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.04kWh, PV 0.0kWh
2026-08-18 17:55:02.533389: Saving plan best values to HA entities
2026-08-18 17:55:02.712353: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:55:02.718430: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:55:02.724120: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 20.08kWh, house 0.09kWh, export 0.0kWh, metric 367.03p, metric10 379.76p
2026-08-18 17:55:02.804778: Marginal costs baseline metric (no standing charge): 320.3933
2026-08-18 17:55:03.050530: Marginal energy costs matrix computed: min=8.0 max=42.01
2026-08-18 17:55:03.160125: Rate array import [{'start': 1075, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1075, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:55:03.160886: - Your estimated bill for today is £1.87 and tomorrow is £1.96
2026-08-18 17:55:03.161791: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:55:03.162298: - The battery is currently at 32% and is in eco mode for the next 3 and a half hours.
2026-08-18 17:55:03.162485: - For the next 48 hours there will be no solar generation.
2026-08-18 17:55:03.162526: - You have enough battery to reach the next charge.
2026-08-18 17:55:03.162547: - Your next charge slot will be in 3 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 17:55:03.162566: 
2026-08-18 17:55:03.214480: Plan calculation took 1.17 seconds
2026-08-18 17:55:03.218097: No high rate period found
2026-08-18 17:55:03.317241: Import threshold used for optimisation was 8.0p
2026-08-18 17:55:03.403782: Low import rate windows [0: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 1: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 2: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 3: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 4: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 5: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 6: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 7: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 8: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 9: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 23: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 24: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 25: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 26: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 27: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 28: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 29: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 30: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 31: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 32: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 33: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 34: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 35: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 36: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 37: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 38: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 39: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 40: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 41: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 42: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 43: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 44: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 45: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 46: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 47: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 48: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 49: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 50: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 51: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 52: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 53: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 54: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 55: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 56: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 57: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 58: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 59: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 60: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 61: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 62: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 63: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 64: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 65: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 66: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 67: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 68: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 69: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 70: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 71: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 72: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 73: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 74: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 75: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 76: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 77: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 78: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 79: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 80: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 81: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 82: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 83: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 84: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 85: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 86: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 87: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 88: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 89: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 90: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 91: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 92: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 93: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 94: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75]
2026-08-18 17:55:03.409115: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 32%, target 16%
2026-08-18 17:55:03.409243: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:55:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:55:03.409337: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:55:03.409582: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:55:03.409675: No export window planned
2026-08-18 17:55:03.409797: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:55:03.409871: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:55:03.410012: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:55:03.410202: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:55:03.410264: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:55:03.410335: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:55:03.410447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410552: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410632: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:03.410905: Inverter 0 count register writes 0
2026-08-18 17:55:03.427996: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 17:55:03.428255: Recompute is saving previous plan...
2026-08-18 17:55:03.432657: Best charge window [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0% ]
2026-08-18 17:55:03.432739: Best export window [  ]
2026-08-18 17:55:03.433621: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 17:55:03.437030: Load divergence over 8.0 hours mean 565.79W, min 337.2W, max 1255.8W, std dev 238.33W, divergence 21.06%
2026-08-18 17:55:03.454927: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 17:55:03.455018: LoadML is_calculating False
2026-08-18 17:55:03.455093: Creating pool of 12 processes to match your CPU count
2026-08-18 17:55:03.548296: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 17:55:03.549890: Optimise levels pass started at 2026-08-18 17:55:03
2026-08-18 17:55:03.549958: Optimise all windows, total charge 94 export 1
2026-08-18 17:55:03.973741: >> Region optimisation pass width 960 gives best_metric 422.72p, best_cost 459.85p, best_cycle 50.92kWh, best_import 37.61kWh
2026-08-18 17:55:04.164154: >> Region optimisation pass width 480 gives best_metric 422.72p, best_cost 459.85p, best_cycle 50.92kWh, best_import 37.61kWh
2026-08-18 17:55:04.486360: >> Region optimisation pass width 240 gives best_metric 422.72p, best_cost 459.85p, best_cycle 50.92kWh, best_import 37.61kWh
2026-08-18 17:55:06.164048: >> Region optimisation pass width 120 gives best_metric 418.27p, best_cost 432.25p, best_cycle 52.21kWh, best_import 33.98kWh
2026-08-18 17:55:06.164452: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 58
2026-08-18 17:55:06.164561: Optimise levels pass ended at 2026-08-18 17:55:06, duration 2.6 seconds tried 211 combinations
2026-08-18 17:55:06.164669: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 418.27p, best_keep 1.36kWh, best_cycle 52.21kWh, best_carbon 0kg, best_import 33.98kWh
2026-08-18 17:55:06.184696: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 17:55:11.575708: Tweak plan optimisation started metric 306.67p, cost 316.08p
2026-08-18 17:55:11.874450: Tweak optimisation finished metric 306.67p, cost 316.08p, metric_keep 1.36kWh, cycle 30.74kWh, carbon 0kg, import 19.46kWh, changed 8 window(s)
2026-08-18 17:55:11.894570: Swap charge optimisation started metric 306.67p, cost 316.08p, min_improvement_swap 0.1p
2026-08-18 17:55:18.349669: Swap charge optimisation finished metric 306.67p, cost 316.08p
2026-08-18 17:55:18.496950: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 304.83p -> 304.67p, plan now metric 307.15p, cost 314.07p, cycle 31.0kWh, import 19.21kWh
2026-08-18 17:55:18.509044: Raw charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 100%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:55:18.509592: Unclipped charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:55:18.509841: Unfiltered charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:55:18.510014: Filtered charge windows [ 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 100%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 17:55:18.547042: Previous plan best metric is 305.24 (cost 314.21) and new plan best metric is 306.67 (cost 316.08)
2026-08-18 17:55:18.547717: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 17:55:18.547864: Plan valid is now true after recompute was False
2026-08-18 17:55:18.576637: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 643.95p, metric_keep 128.34kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.85kWh, PV 0.0kWh
2026-08-18 17:55:18.682109: Battery has 5.17 hours left - now at 5.12kWh
2026-08-18 17:55:18.725420: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 671.38p, metric_keep 129.37kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.83kWh, PV 0.0kWh
2026-08-18 17:55:18.797672: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 372.61p, metric_keep 4.73kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.83kWh, PV 0.0kWh
2026-08-18 17:55:18.872956: predict best end_record 08-19 23:30:00, final soc 1.56kWh, metric 358.83p, metric_keep 1.75kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.85kWh, PV 0.0kWh
2026-08-18 17:55:18.873058: Saving plan best values to HA entities
2026-08-18 17:55:19.022064: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 17:55:19.027049: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 17:55:19.032396: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.06kWh, house 0.09kWh, export 0.0kWh, metric 358.83p, metric10 372.61p
2026-08-18 17:55:19.100389: Marginal costs baseline metric (no standing charge): 312.1978
2026-08-18 17:55:19.352247: Marginal energy costs matrix computed: min=8.0 max=42.01
2026-08-18 17:55:19.415325: Rate array import [{'start': 1075, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1075, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 17:55:19.415865: - Your estimated bill for today is £1.87 and tomorrow is £1.96
2026-08-18 17:55:19.415929: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 17:55:19.415953: - The battery is currently at 32% and is in eco mode for the next 3 and a half hours.
2026-08-18 17:55:19.415969: - For the next 48 hours there will be no solar generation.
2026-08-18 17:55:19.415986: - You have enough battery to reach the next charge.
2026-08-18 17:55:19.416001: - Your next charge slot will be in 3 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 17:55:19.416015: 
2026-08-18 17:55:19.465951: Plan calculation took 16.04 seconds
2026-08-18 17:55:19.466307: Inverter 0: Type SK Sunsynk
2026-08-18 17:55:19.466360: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 17:55:19.466617: Reserve min: 7%, battery_min: 7%
2026-08-18 17:55:19.466721: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 17:55:19.467093: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 496W, current battery voltage 51.2V, grid power -56W, load power 551W, PV Power 0W
2026-08-18 17:55:19.467512: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:55:19.467655: Inverter 0 scheduled charge enable is False
2026-08-18 17:55:19.467709: Inverter 0 charge windows currently []
2026-08-18 17:55:19.467759: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 17:55:19.467971: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:55:19.468043: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:55:19.468106: Inverter 0 scheduled discharge enable is False
2026-08-18 17:55:19.468287: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:55:19.468330: Inverter 0 discharge windows currently []
2026-08-18 17:55:19.468364: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:55:19.468400: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:55:19.468425: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:55:19.524635: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 32%, target 16%
2026-08-18 17:55:19.524776: Inverter 0 disabled charge window while waiting for schedule (now 08-18 17:55:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 17:55:19.524859: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:55:19.525041: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:55:19.525119: No export window planned
2026-08-18 17:55:19.525222: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 17:55:19.525257: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 17:55:19.525389: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 17:55:19.525549: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 17:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 17:55:19.525600: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 17:55:19.525659: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 17:55:19.525741: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.525780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.525826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526109: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 17:55:19.526490: Inverter 0 count register writes 0
2026-08-18 17:55:19.545209: Total inverter register writes now 867
2026-08-18 17:55:19.576114: Info: Completed run status Demand
2026-08-18 17:55:19.580963: Info: record_status Demand
2026-08-18 17:55:19.586621: Saved current settings to /config/predbat_config.json
2026-08-18 17:55:19.586962: Compare, best tariff: current metric 129.87p
2026-08-18 17:56:03.707694: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:56:03.707984: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:56:03.708038: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:56:03.708174: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:56:03.708227: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:56:03.708250: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:56:03.708268: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 17:56:38.964238: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 17:56:39.129259: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 17:58:03.947735: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 17:58:03.948045: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 17:58:03.948095: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 17:58:03.948226: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 17:58:03.948263: Note: Inverter does not support discharge freeze - disabled
2026-08-18 17:58:03.948284: Note: Inverter does not support charge freeze - disabled
2026-08-18 17:58:03.948302: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:00:00.166372: --------------- PredBat - update at 2026-08-18 18:00:00+01:00 with clock skew 0 minutes, minutes now 1080
2026-08-18 18:00:00.167162: Saved current settings to /config/predbat_config.json
2026-08-18 18:00:00.167293: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 18:00:00.167405: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:00:00.167509: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:00:00.209598: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:00:00.209779: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:00:00.210037: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:00:00.210731: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:00:00.210917: Predbat mode is set to Control charge & discharge
2026-08-18 18:00:00.476669: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:00:00.476814: Using load_power data to fill gaps in load_today data
2026-08-18 18:00:01.872475: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:00:01.873936: Zero load period starting at 2026-08-17T10:54:00+0100 (1866 minutes) for 189 minutes with base value 205.825
2026-08-18 18:00:01.875606: Processing 721 30-minute periods for power integration
2026-08-18 18:00:02.120635: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:00:02.121015: Car charging hold False, threshold 6.0kWh
2026-08-18 18:00:02.122014: Current data so far today: load 11.35kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:00:02.152213: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:00:02.152385: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:00:02.153714: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:00:02.153898: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:00:02.154008: Standing charge is set to 46.63p
2026-08-18 18:00:02.264882: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:00:02.265229: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:00:02.265486: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:00:02.266485: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:00:02.266643: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:00:02.266821: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:00:02.273966: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:00:02.275167: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-18 18:00:02.322724: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:00:02.323647: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:00:02.328330: High export rate found rates in range 99p to -99p
2026-08-18 18:00:02.480601: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:00:02.483036: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:00:02.528588: Battery level now 5.12kWh, -1hr ago 5.64kWh, at midnight 6.84kWh, battery value change in the last hour -3.57p, change today -11.82p, rate_forward 6.87p
2026-08-18 18:00:02.529390: 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-18 18:00:02.649139: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:00:02.649408: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:00:02.757370: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:00:02.795672: Today's load divergence 100.89%, in-day adjustment 98.81%, damping 0.95x, yesterday 92.68% today 100.85% blend 25.0%
2026-08-18 18:00:02.795807: Today's predicted so far 11.19kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 11.19kWh forecast extra.
2026-08-18 18:00:02.795862: Today's actual load so far 11.33kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 18:00:02.844771: Inverter 0: Type SK Sunsynk
2026-08-18 18:00:02.844880: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:00:02.845053: Reserve min: 7%, battery_min: 7%
2026-08-18 18:00:02.845115: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:00:02.845365: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -54W, load power 553W, PV Power 0W
2026-08-18 18:00:02.845526: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:00:02.845645: Inverter 0 scheduled charge enable is False
2026-08-18 18:00:02.845675: Inverter 0 charge windows currently []
2026-08-18 18:00:02.845698: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:00:02.845824: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:00:02.845874: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:00:02.845914: Inverter 0 scheduled discharge enable is False
2026-08-18 18:00:02.846051: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:00:02.846083: Inverter 0 discharge windows currently []
2026-08-18 18:00:02.846102: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:00:02.846117: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:00:02.846131: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:00:02.960670: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:00:02.960881: Plan was last updated on 2026-08-18 17:55:00+01:00 and is now 5.0 minutes old
2026-08-18 18:00:02.961337: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:00:02.961412: Best export window [  ]
2026-08-18 18:00:02.962917: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:00:02.970126: Load divergence over 8.0 hours mean 565.89W, min 323.4W, max 1247.4W, std dev 237.69W, divergence 21.0%
2026-08-18 18:00:03.009235: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:00:03.009390: LoadML is_calculating False
2026-08-18 18:00:03.009481: Creating pool of 12 processes to match your CPU count
2026-08-18 18:00:03.208078: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 642.38p, metric_keep 128.13kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.93kWh, PV 0.0kWh
2026-08-18 18:00:03.481746: Battery has 5.17 hours left - now at 5.12kWh
2026-08-18 18:00:03.550931: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 669.69p, metric_keep 129.15kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.91kWh, PV 0.0kWh
2026-08-18 18:00:03.706326: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 373.77p, metric_keep 4.36kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.91kWh, PV 0.0kWh
2026-08-18 18:00:03.832553: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 360.92p, metric_keep 1.39kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.93kWh, PV 0.0kWh
2026-08-18 18:00:03.832684: Saving plan best values to HA entities
2026-08-18 18:00:04.130583: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:00:04.142382: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 18:00:04.153060: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.58kWh, house 0.03kWh, export 0.0kWh, metric 360.92p, metric10 373.77p
2026-08-18 18:00:04.292636: Marginal costs baseline metric (no standing charge): 314.2819
2026-08-18 18:00:04.707362: Marginal energy costs matrix computed: min=8.0 max=42.43
2026-08-18 18:00:04.844796: Rate array import [{'start': 1080, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1080, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:00:04.846231: - Your estimated bill for today is £1.84 and tomorrow is £1.96
2026-08-18 18:00:04.846508: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:00:04.846704: - The battery is currently at 32% and is in eco mode for the next 3 and a half hours.
2026-08-18 18:00:04.846897: - For the next 48 hours there will be no solar generation.
2026-08-18 18:00:04.847061: - You have enough battery to reach the next charge.
2026-08-18 18:00:04.847209: - Your next charge slot will be in 3 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 18:00:04.847365: 
2026-08-18 18:00:04.941683: Plan calculation took 1.98 seconds
2026-08-18 18:00:04.946499: No high rate period found
2026-08-18 18:00:05.041352: Import threshold used for optimisation was 8.0p
2026-08-18 18:00:05.138417: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75]
2026-08-18 18:00:05.153367: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 32%, target 16%
2026-08-18 18:00:05.153966: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:00:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:00:05.154229: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:00:05.154820: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:00:05.155188: No export window planned
2026-08-18 18:00:05.155606: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:00:05.155794: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:00:05.156346: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:00:05.156860: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:00:05.157158: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:00:05.157424: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:00:05.157782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.157994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.158221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.158439: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.158641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.158826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.159048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.159348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.159513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.159707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.159956: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.160124: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.160340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.160530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:00:05.160707: Inverter 0 count register writes 0
2026-08-18 18:00:05.195218: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 18:00:05.205183: Total inverter register writes now 867
2026-08-18 18:00:05.273244: Info: Completed run status Demand
2026-08-18 18:00:05.285999: Info: record_status Demand
2026-08-18 18:00:05.299048: Saved current settings to /config/predbat_config.json
2026-08-18 18:00:05.299655: Compare, best tariff: current metric 129.87p
2026-08-18 18:00:49.490949: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:00:49.491217: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:00:49.491277: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:00:49.491478: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:00:49.491531: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:00:49.491568: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:00:49.491599: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:01:47.225771: Info: HAHistory: Pruning history data started.
2026-08-18 18:01:47.228829: Info: HAHistory: Pruning history data completed.
2026-08-18 18:03:03.738162: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:03:03.738421: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:03:03.738465: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:03:03.738599: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:03:03.738652: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:03:03.738681: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:03:03.738704: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:05:00.953322: --------------- PredBat - update at 2026-08-18 18:05:00+01:00 with clock skew 0 minutes, minutes now 1085
2026-08-18 18:05:00.954183: Saved current settings to /config/predbat_config.json
2026-08-18 18:05:00.954326: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 18:05:00.954460: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:05:00.955112: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:05:00.975793: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:05:00.975947: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:05:00.976138: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:05:00.976716: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:05:00.976890: Predbat mode is set to Control charge & discharge
2026-08-18 18:05:01.191428: Found 21602 load_today datapoints going back 27 days
2026-08-18 18:05:01.191563: Using load_power data to fill gaps in load_today data
2026-08-18 18:05:02.103807: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:05:02.104097: Zero load period starting at 2026-08-17T10:54:00+0100 (1871 minutes) for 189 minutes with base value 205.8
2026-08-18 18:05:02.105628: Processing 721 30-minute periods for power integration
2026-08-18 18:05:02.319602: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:05:02.319740: Car charging hold False, threshold 6.0kWh
2026-08-18 18:05:02.319807: Current data so far today: load 11.4kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:05:02.336582: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:05:02.336684: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:05:02.337418: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:05:02.337501: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:05:02.337559: Standing charge is set to 46.63p
2026-08-18 18:05:02.423969: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:05:02.424228: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:05:02.424411: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:05:02.425466: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:05:02.425571: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:05:02.425679: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:05:02.431006: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:05:02.431334: Import rates: min 8.0p, max 46.38p, average 27.55p
2026-08-18 18:05:02.474349: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:05:02.474459: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:05:02.475756: High export rate found rates in range 99p to -99p
2026-08-18 18:05:02.579156: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:05:02.579278: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:05:02.590743: Battery level now 5.12kWh, -1hr ago 5.64kWh, at midnight 6.84kWh, battery value change in the last hour -3.57p, change today -11.82p, rate_forward 6.87p
2026-08-18 18:05:02.591123: 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-18 18:05:02.642758: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:05:02.642899: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:05:02.717501: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:05:02.752564: Today's load divergence 100.73%, in-day adjustment 98.71%, damping 0.95x, yesterday 92.68% today 100.69% blend 24.65%
2026-08-18 18:05:02.752656: Today's predicted so far 11.28kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 11.28kWh forecast extra.
2026-08-18 18:05:02.752703: Today's actual load so far 11.39kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 18:05:02.791426: Inverter 0: Type SK Sunsynk
2026-08-18 18:05:02.791509: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:05:02.791655: Reserve min: 7%, battery_min: 7%
2026-08-18 18:05:02.791723: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:05:02.792060: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 539W, current battery voltage 51.2V, grid power -55W, load power 594W, PV Power 0W
2026-08-18 18:05:02.792200: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:05:02.792272: Inverter 0 scheduled charge enable is False
2026-08-18 18:05:02.792301: Inverter 0 charge windows currently []
2026-08-18 18:05:02.792327: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:05:02.793236: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:05:02.793286: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:05:02.793326: Inverter 0 scheduled discharge enable is False
2026-08-18 18:05:02.793438: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:05:02.795654: Inverter 0 discharge windows currently []
2026-08-18 18:05:02.795698: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:05:02.795723: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:05:02.795776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:05:02.895326: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:05:02.895467: Plan was last updated on 2026-08-18 17:55:00+01:00 and is now 10.0 minutes old
2026-08-18 18:05:02.895712: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:05:02.895760: Best export window [  ]
2026-08-18 18:05:02.896720: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:05:02.901381: Load divergence over 8.0 hours mean 565.93W, min 330.0W, max 1248.0W, std dev 247.92W, divergence 21.9%
2026-08-18 18:05:02.929577: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:05:02.929698: LoadML is_calculating False
2026-08-18 18:05:02.929774: Creating pool of 12 processes to match your CPU count
2026-08-18 18:05:03.057638: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 641.24p, metric_keep 127.94kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.03kWh, PV 0.0kWh
2026-08-18 18:05:03.190296: Battery has 5.08 hours left - now at 5.12kWh
2026-08-18 18:05:03.241968: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 668.49p, metric_keep 128.93kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.01kWh, PV 0.0kWh
2026-08-18 18:05:03.344804: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 375.36p, metric_keep 4.04kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.01kWh, PV 0.0kWh
2026-08-18 18:05:03.434574: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 363.86p, metric_keep 1.09kWh, min_soc 1.15kWh @ 08-18 23:25:00, load 32.03kWh, PV 0.0kWh
2026-08-18 18:05:03.434655: Saving plan best values to HA entities
2026-08-18 18:05:03.611690: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:05:03.622358: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:05:03.632910: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 20.07kWh, house 0.0kWh, export 0.0kWh, metric 363.86p, metric10 375.36p
2026-08-18 18:05:03.750175: Marginal costs baseline metric (no standing charge): 317.2257
2026-08-18 18:05:03.986215: Marginal energy costs matrix computed: min=7.33 max=41.21
2026-08-18 18:05:04.060447: Rate array import [{'start': 1085, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1085, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:05:04.061194: - Your estimated bill for today is £1.83 and tomorrow is £1.96
2026-08-18 18:05:04.061250: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:05:04.061292: - The battery is currently at 32% and is in eco mode for the next 3 and a half hours.
2026-08-18 18:05:04.061384: - For the next 48 hours there will be no solar generation.
2026-08-18 18:05:04.061458: - You have enough battery to reach the next charge.
2026-08-18 18:05:04.061502: - Your next charge slot will be in 3 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 18:05:04.061536: 
2026-08-18 18:05:04.119569: Plan calculation took 1.22 seconds
2026-08-18 18:05:04.123448: No high rate period found
2026-08-18 18:05:04.175604: Import threshold used for optimisation was 8.0p
2026-08-18 18:05:04.254396: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75]
2026-08-18 18:05:04.262410: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 32%, target 16%
2026-08-18 18:05:04.262623: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:05:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:05:04.262759: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:05:04.263053: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:05:04.263145: No export window planned
2026-08-18 18:05:04.263264: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:05:04.263300: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:05:04.263514: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:05:04.263756: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:05:04.263868: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:05:04.264015: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:05:04.264179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264444: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264472: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:04.264800: Inverter 0 count register writes 0
2026-08-18 18:05:04.283190: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 18:05:04.283395: Recompute is saving previous plan...
2026-08-18 18:05:04.286637: Best charge window [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 0% ]
2026-08-18 18:05:04.286731: Best export window [  ]
2026-08-18 18:05:04.287599: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:05:04.291758: Load divergence over 8.0 hours mean 565.93W, min 330.0W, max 1248.0W, std dev 247.92W, divergence 21.9%
2026-08-18 18:05:04.311311: Calculating data from yesterday for savings calculation
2026-08-18 18:05:04.323960: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 18:05:04.390150: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 18:05:04.407419: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 18:05:04.439419: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 18:05:04.483503: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 18:05:04.563654: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 18:05:04.563805: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 18:05:04.574937: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:05:04.575065: LoadML is_calculating False
2026-08-18 18:05:04.575144: Creating pool of 12 processes to match your CPU count
2026-08-18 18:05:04.664002: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 18:05:04.665554: Optimise levels pass started at 2026-08-18 18:05:04
2026-08-18 18:05:04.665610: Optimise all windows, total charge 94 export 1
2026-08-18 18:05:05.118975: >> Region optimisation pass width 960 gives best_metric 418.82p, best_cost 453.78p, best_cycle 50.74kWh, best_import 37.23kWh
2026-08-18 18:05:05.365993: >> Region optimisation pass width 480 gives best_metric 418.82p, best_cost 453.78p, best_cycle 50.74kWh, best_import 37.23kWh
2026-08-18 18:05:05.756064: >> Region optimisation pass width 240 gives best_metric 418.82p, best_cost 453.78p, best_cycle 50.74kWh, best_import 37.23kWh
2026-08-18 18:05:07.119146: >> Region optimisation pass width 120 gives best_metric 417.86p, best_cost 446.95p, best_cycle 51.63kWh, best_import 36.37kWh
2026-08-18 18:05:07.119385: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 57
2026-08-18 18:05:07.119473: Optimise levels pass ended at 2026-08-18 18:05:07, duration 2.5 seconds tried 219 combinations
2026-08-18 18:05:07.119554: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 417.86p, best_keep 3.14kWh, best_cycle 51.63kWh, best_carbon 0kg, best_import 36.37kWh
2026-08-18 18:05:07.138116: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 18:05:13.271756: Tweak plan optimisation started metric 301.29p, cost 310.27p
2026-08-18 18:05:13.597158: Tweak optimisation finished metric 301.29p, cost 310.27p, metric_keep 1.29kWh, cycle 31.03kWh, carbon 0kg, import 19.29kWh, changed 8 window(s)
2026-08-18 18:05:13.617111: Swap charge optimisation started metric 301.29p, cost 310.27p, min_improvement_swap 0.1p
2026-08-18 18:05:18.787051: Swap charge optimisation finished metric 301.29p, cost 310.27p
2026-08-18 18:05:18.914217: Raw charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:05:18.914951: Unclipped charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:05:18.915249: Unfiltered charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:05:18.915501: Filtered charge windows [ 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 19%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:05:18.963245: Previous plan best metric is 301.15 (cost 311.01) and new plan best metric is 301.29 (cost 310.27)
2026-08-18 18:05:18.963513: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 18:05:18.963673: Plan valid is now true after recompute was False
2026-08-18 18:05:18.999670: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 639.65p, metric_keep 127.69kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.83kWh, PV 0.0kWh
2026-08-18 18:05:19.119423: Battery has 5.08 hours left - now at 5.12kWh
2026-08-18 18:05:19.184628: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 666.83p, metric_keep 128.68kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.8kWh, PV 0.0kWh
2026-08-18 18:05:19.288331: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.14p, metric_keep 4.02kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.8kWh, PV 0.0kWh
2026-08-18 18:05:19.379259: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 355.61p, metric_keep 1.09kWh, min_soc 1.15kWh @ 08-18 23:25:00, load 31.83kWh, PV 0.0kWh
2026-08-18 18:05:19.379349: Saving plan best values to HA entities
2026-08-18 18:05:19.546560: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:05:19.550978: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:05:19.555284: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.03kWh, house 0.0kWh, export 0.0kWh, metric 355.61p, metric10 368.14p
2026-08-18 18:05:19.628078: Marginal costs baseline metric (no standing charge): 308.971
2026-08-18 18:05:19.865380: Marginal energy costs matrix computed: min=7.33 max=41.21
2026-08-18 18:05:19.928935: Rate array import [{'start': 1085, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1085, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:05:19.929478: - Your estimated bill for today is £1.83 and tomorrow is £1.96
2026-08-18 18:05:19.929523: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:05:19.929556: - The battery is currently at 32% and is in eco mode for the next 3 and a half hours.
2026-08-18 18:05:19.929584: - For the next 48 hours there will be no solar generation.
2026-08-18 18:05:19.929617: - You have enough battery to reach the next charge.
2026-08-18 18:05:19.929641: - Your next charge slot will be in 3 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 18:05:19.929656: 
2026-08-18 18:05:19.977979: Plan calculation took 15.69 seconds
2026-08-18 18:05:19.978262: Inverter 0: Type SK Sunsynk
2026-08-18 18:05:19.978298: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:05:19.978462: Reserve min: 7%, battery_min: 7%
2026-08-18 18:05:19.978524: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:05:19.978809: Inverter 0 SoC: 5.06kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 483W, current battery voltage 51.2V, grid power -57W, load power 541W, PV Power 0W
2026-08-18 18:05:19.979035: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:05:19.979142: Inverter 0 scheduled charge enable is False
2026-08-18 18:05:19.979179: Inverter 0 charge windows currently []
2026-08-18 18:05:19.979211: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:05:19.979339: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:05:19.979378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:05:19.979416: Inverter 0 scheduled discharge enable is False
2026-08-18 18:05:19.979561: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:05:19.979596: Inverter 0 discharge windows currently []
2026-08-18 18:05:19.979615: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:05:19.979668: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:05:19.979697: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:05:20.034036: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 32%, target 16%
2026-08-18 18:05:20.034158: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:05:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:05:20.034213: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:05:20.034361: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:05:20.034426: No export window planned
2026-08-18 18:05:20.034517: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:05:20.034545: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:05:20.034649: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:05:20.034776: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:05:20.034820: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:05:20.034879: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:05:20.034959: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.034991: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035057: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:05:20.035297: Inverter 0 count register writes 0
2026-08-18 18:05:20.055735: Total inverter register writes now 867
2026-08-18 18:05:20.086686: Info: Completed run status Demand
2026-08-18 18:05:20.092725: Info: record_status Demand
2026-08-18 18:05:20.099185: Saved current settings to /config/predbat_config.json
2026-08-18 18:05:20.099486: Compare, best tariff: current metric 129.87p
2026-08-18 18:06:04.214364: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:06:04.214631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:06:04.214666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:06:04.214792: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:06:04.214829: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:06:04.214850: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:06:04.214889: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:08:04.452128: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:08:04.452357: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:08:04.452428: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:08:04.452584: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:08:04.452625: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:08:04.452647: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:08:04.452670: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:10:00.681666: --------------- PredBat - update at 2026-08-18 18:10:00+01:00 with clock skew 0 minutes, minutes now 1090
2026-08-18 18:10:00.682709: Saved current settings to /config/predbat_config.json
2026-08-18 18:10:00.683097: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 18:10:00.683192: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:10:00.683308: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:10:00.702050: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:10:00.702177: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:10:00.702338: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:10:00.702815: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:10:00.702947: Predbat mode is set to Control charge & discharge
2026-08-18 18:10:00.897956: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:10:00.898093: Using load_power data to fill gaps in load_today data
2026-08-18 18:10:01.803021: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:10:01.803199: Zero load period starting at 2026-08-17T10:54:00+0100 (1876 minutes) for 189 minutes with base value 205.775
2026-08-18 18:10:01.804637: Processing 721 30-minute periods for power integration
2026-08-18 18:10:01.995577: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:10:01.995696: Car charging hold False, threshold 6.0kWh
2026-08-18 18:10:01.995740: Current data so far today: load 11.45kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:10:02.012399: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:10:02.012491: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:10:02.013249: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:10:02.013333: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:10:02.013412: Standing charge is set to 46.63p
2026-08-18 18:10:02.099654: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:10:02.100054: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:10:02.100364: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:10:02.102664: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:10:02.102839: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:10:02.103033: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:10:02.109761: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:10:02.110125: Import rates: min 8.0p, max 46.38p, average 27.53p
2026-08-18 18:10:02.156734: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:10:02.156848: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:10:02.158170: High export rate found rates in range 99p to -99p
2026-08-18 18:10:02.262333: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:10:02.262455: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:10:02.274989: Battery level now 5.12kWh, -1hr ago 5.6kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -11.82p, rate_forward 6.87p
2026-08-18 18:10:02.275364: 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-18 18:10:02.340680: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:10:02.340837: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:10:02.436350: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:10:02.473158: Today's load divergence 100.76%, in-day adjustment 98.77%, damping 0.95x, yesterday 92.68% today 100.72% blend 24.31%
2026-08-18 18:10:02.473254: Today's predicted so far 11.3kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 11.3kWh forecast extra.
2026-08-18 18:10:02.473285: Today's actual load so far 11.42kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 18:10:02.512809: Inverter 0: Type SK Sunsynk
2026-08-18 18:10:02.512905: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:10:02.513076: Reserve min: 7%, battery_min: 7%
2026-08-18 18:10:02.513145: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:10:02.513387: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 487W, current battery voltage 51.2V, grid power -52W, load power 541W, PV Power 0W
2026-08-18 18:10:02.513534: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:10:02.513619: Inverter 0 scheduled charge enable is False
2026-08-18 18:10:02.513653: Inverter 0 charge windows currently []
2026-08-18 18:10:02.513680: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:10:02.513790: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:10:02.513825: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:10:02.513860: Inverter 0 scheduled discharge enable is False
2026-08-18 18:10:02.514022: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:10:02.514060: Inverter 0 discharge windows currently []
2026-08-18 18:10:02.514083: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:10:02.514104: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:10:02.514121: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:10:02.575564: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:10:02.575659: Plan was last updated on 2026-08-18 18:05:00+01:00 and is now 5.0 minutes old
2026-08-18 18:10:02.575860: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:10:02.575953: Best export window [  ]
2026-08-18 18:10:02.576801: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:10:02.580467: Load divergence over 8.0 hours mean 567.34W, min 349.8W, max 1158.0W, std dev 230.17W, divergence 20.28%
2026-08-18 18:10:02.598666: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:10:02.599192: LoadML is_calculating False
2026-08-18 18:10:02.599266: Creating pool of 12 processes to match your CPU count
2026-08-18 18:10:02.715159: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 643.38p, metric_keep 128.4kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 31.91kWh, PV 0.0kWh
2026-08-18 18:10:02.848814: Battery has 4.92 hours left - now at 4.96kWh
2026-08-18 18:10:02.894681: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 670.5p, metric_keep 129.35kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.89kWh, PV 0.0kWh
2026-08-18 18:10:02.972203: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 374.49p, metric_keep 4.54kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.89kWh, PV 0.0kWh
2026-08-18 18:10:03.057586: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 362.07p, metric_keep 1.59kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.91kWh, PV 0.0kWh
2026-08-18 18:10:03.057673: Saving plan best values to HA entities
2026-08-18 18:10:03.224199: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:10:03.228634: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 18:10:03.234411: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.58kWh, house 0.06kWh, export 0.0kWh, metric 362.07p, metric10 374.49p
2026-08-18 18:10:03.317090: Marginal costs baseline metric (no standing charge): 315.4328
2026-08-18 18:10:03.608638: Marginal energy costs matrix computed: min=6.67 max=40.39
2026-08-18 18:10:03.668266: Rate array import [{'start': 1090, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1090, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:10:03.668783: - Your estimated bill for today is £1.85 and tomorrow is £1.96
2026-08-18 18:10:03.668818: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:10:03.668836: - The battery is currently at 31% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 18:10:03.668851: - For the next 48 hours there will be no solar generation.
2026-08-18 18:10:03.668865: - You have enough battery to reach the next charge.
2026-08-18 18:10:03.668895: - Your next charge slot will be in 3 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 18:10:03.668932: 
2026-08-18 18:10:03.715646: Plan calculation took 1.14 seconds
2026-08-18 18:10:03.718787: No high rate period found
2026-08-18 18:10:03.760439: Import threshold used for optimisation was 8.0p
2026-08-18 18:10:03.803706: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75]
2026-08-18 18:10:03.811543: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 31%, target 16%
2026-08-18 18:10:03.811661: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:10:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:10:03.811745: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:10:03.812013: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:10:03.812099: No export window planned
2026-08-18 18:10:03.812204: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:10:03.812234: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:10:03.812343: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:10:03.812484: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:10:03.812544: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:10:03.812601: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:10:03.812686: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812713: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812737: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812765: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812930: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.812995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.813015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.813034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:10:03.813055: Inverter 0 count register writes 0
2026-08-18 18:10:03.827103: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 18:10:03.831721: Total inverter register writes now 867
2026-08-18 18:10:03.860633: Info: Completed run status Demand
2026-08-18 18:10:03.865863: Info: record_status Demand
2026-08-18 18:10:03.871440: Saved current settings to /config/predbat_config.json
2026-08-18 18:10:03.871702: Compare, best tariff: current metric 129.87p
2026-08-18 18:10:33.966952: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:10:33.967291: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:10:33.967362: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:10:33.967618: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:10:33.967688: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:10:33.967733: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:10:33.967762: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:12:34.180332: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:12:34.181490: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:12:34.181560: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:12:34.181744: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:12:34.181793: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:12:34.181821: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:12:34.181871: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:14:34.424564: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:14:34.424838: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:14:34.424888: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:14:34.425023: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:14:34.425062: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:14:34.425083: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:14:34.425101: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:15:00.517389: --------------- PredBat - update at 2026-08-18 18:15:00+01:00 with clock skew 0 minutes, minutes now 1095
2026-08-18 18:15:00.518085: Saved current settings to /config/predbat_config.json
2026-08-18 18:15:00.518202: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 18:15:00.518341: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:15:00.518472: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:15:00.539687: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:15:00.539812: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:15:00.540053: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:15:00.540582: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:15:00.540701: Predbat mode is set to Control charge & discharge
2026-08-18 18:15:00.743406: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:15:00.743549: Using load_power data to fill gaps in load_today data
2026-08-18 18:15:01.565614: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:15:01.565758: Zero load period starting at 2026-08-17T10:54:00+0100 (1881 minutes) for 189 minutes with base value 205.75
2026-08-18 18:15:01.566807: Processing 721 30-minute periods for power integration
2026-08-18 18:15:01.722313: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:15:01.722460: Car charging hold False, threshold 6.0kWh
2026-08-18 18:15:01.722513: Current data so far today: load 11.5kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:15:01.736043: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:15:01.736136: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:15:01.736836: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:15:01.736936: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:15:01.737011: Standing charge is set to 46.63p
2026-08-18 18:15:01.834526: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:15:01.834817: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:15:01.835066: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:15:01.836636: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:15:01.836772: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:15:01.836929: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:15:01.842111: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:15:01.842410: Import rates: min 8.0p, max 46.38p, average 27.51p
2026-08-18 18:15:01.880630: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:15:01.880944: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:15:01.882158: High export rate found rates in range 99p to -99p
2026-08-18 18:15:01.975101: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:15:01.975484: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:15:01.996840: Battery level now 4.96kWh, -1hr ago 5.6kWh, at midnight 6.84kWh, battery value change in the last hour -4.4p, change today -12.92p, rate_forward 6.87p
2026-08-18 18:15:01.997165: 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-18 18:15:02.053905: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:15:02.054044: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:15:02.132790: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:15:02.161827: Today's load divergence 100.81%, in-day adjustment 98.83%, damping 0.95x, yesterday 92.68% today 100.77% blend 23.96%
2026-08-18 18:15:02.161900: Today's predicted so far 11.32kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 11.32kWh forecast extra.
2026-08-18 18:15:02.161926: Today's actual load so far 11.45kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 18:15:02.189847: Inverter 0: Type SK Sunsynk
2026-08-18 18:15:02.189914: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:15:02.190065: Reserve min: 7%, battery_min: 7%
2026-08-18 18:15:02.190121: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:15:02.190357: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 508W, current battery voltage 51.2V, grid power -54W, load power 556W, PV Power 0W
2026-08-18 18:15:02.190483: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:15:02.190569: Inverter 0 scheduled charge enable is False
2026-08-18 18:15:02.190599: Inverter 0 charge windows currently []
2026-08-18 18:15:02.190622: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:15:02.190710: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:15:02.190740: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:15:02.190769: Inverter 0 scheduled discharge enable is False
2026-08-18 18:15:02.190867: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:15:02.190897: Inverter 0 discharge windows currently []
2026-08-18 18:15:02.190915: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:15:02.190931: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:15:02.190944: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:15:02.240390: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:15:02.240470: Plan was last updated on 2026-08-18 18:05:00+01:00 and is now 10.0 minutes old
2026-08-18 18:15:02.240670: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:15:02.240706: Best export window [  ]
2026-08-18 18:15:02.241339: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:15:02.243836: Load divergence over 8.0 hours mean 568.81W, min 331.8W, max 1061.4W, std dev 218.75W, divergence 19.23%
2026-08-18 18:15:02.258967: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:15:02.259058: LoadML is_calculating False
2026-08-18 18:15:02.259111: Creating pool of 12 processes to match your CPU count
2026-08-18 18:15:02.357172: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 642.31p, metric_keep 128.15kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.02kWh, PV 0.0kWh
2026-08-18 18:15:02.480562: Battery has 4.92 hours left - now at 4.96kWh
2026-08-18 18:15:02.528741: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 669.38p, metric_keep 129.11kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.99kWh, PV 0.0kWh
2026-08-18 18:15:02.643601: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 376.15p, metric_keep 4.21kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.99kWh, PV 0.0kWh
2026-08-18 18:15:02.749152: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 364.26p, metric_keep 1.26kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.02kWh, PV 0.0kWh
2026-08-18 18:15:02.749247: Saving plan best values to HA entities
2026-08-18 18:15:02.935877: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 18:15:02.944127: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:15:02.951725: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 20.11kWh, house 0kWh, export 0.0kWh, metric 364.26p, metric10 376.15p
2026-08-18 18:15:03.047846: Marginal costs baseline metric (no standing charge): 317.631
2026-08-18 18:15:03.289887: Marginal energy costs matrix computed: min=6.0 max=39.23
2026-08-18 18:15:03.364487: Rate array import [{'start': 1095, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1095, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:15:03.365063: - Your estimated bill for today is £1.84 and tomorrow is £1.96
2026-08-18 18:15:03.365101: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:15:03.365119: - The battery is currently at 31% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 18:15:03.365135: - For the next 48 hours there will be no solar generation.
2026-08-18 18:15:03.365149: - You have enough battery to reach the next charge.
2026-08-18 18:15:03.365166: - Your next charge slot will be in 3 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 18:15:03.365180: 
2026-08-18 18:15:03.430690: Plan calculation took 1.19 seconds
2026-08-18 18:15:03.434604: No high rate period found
2026-08-18 18:15:03.492326: Import threshold used for optimisation was 8.0p
2026-08-18 18:15:03.553243: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75]
2026-08-18 18:15:03.560369: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 31%, target 16%
2026-08-18 18:15:03.560490: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:15:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:15:03.560598: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:15:03.560938: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:15:03.561035: No export window planned
2026-08-18 18:15:03.561154: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:15:03.561190: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:15:03.561356: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:15:03.561577: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:15:03.561646: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:15:03.561717: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:15:03.561816: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.561856: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.561888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.561918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.561943: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.561970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.561994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562086: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:03.562264: Inverter 0 count register writes 0
2026-08-18 18:15:03.580706: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 18:15:03.580869: Recompute is saving previous plan...
2026-08-18 18:15:03.584158: Best charge window [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 0% ]
2026-08-18 18:15:03.584243: Best export window [  ]
2026-08-18 18:15:03.585088: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:15:03.588410: Load divergence over 8.0 hours mean 568.81W, min 331.8W, max 1061.4W, std dev 218.75W, divergence 19.23%
2026-08-18 18:15:03.608269: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:15:03.608380: LoadML is_calculating False
2026-08-18 18:15:03.608469: Creating pool of 12 processes to match your CPU count
2026-08-18 18:15:03.699229: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 18:15:03.701198: Optimise levels pass started at 2026-08-18 18:15:03
2026-08-18 18:15:03.701264: Optimise all windows, total charge 94 export 1
2026-08-18 18:15:04.165737: >> Region optimisation pass width 960 gives best_metric 421.0p, best_cost 456.94p, best_cycle 50.98kWh, best_import 37.52kWh
2026-08-18 18:15:04.401133: >> Region optimisation pass width 480 gives best_metric 421.0p, best_cost 456.94p, best_cycle 50.98kWh, best_import 37.52kWh
2026-08-18 18:15:04.758086: >> Region optimisation pass width 240 gives best_metric 421.0p, best_cost 456.94p, best_cycle 50.98kWh, best_import 37.52kWh
2026-08-18 18:15:05.828787: >> Region optimisation pass width 120 gives best_metric 420.47p, best_cost 450.16p, best_cycle 51.86kWh, best_import 36.68kWh
2026-08-18 18:15:05.829053: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 57
2026-08-18 18:15:05.829160: Optimise levels pass ended at 2026-08-18 18:15:05, duration 2.1 seconds tried 215 combinations
2026-08-18 18:15:05.829235: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 420.47p, best_keep 3.35kWh, best_cycle 51.86kWh, best_carbon 0kg, best_import 36.68kWh
2026-08-18 18:15:05.849572: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 18:15:11.808922: Tweak plan optimisation started metric 301.76p, cost 311.37p
2026-08-18 18:15:12.141231: Tweak optimisation finished metric 301.76p, cost 311.37p, metric_keep 1.26kWh, cycle 29.79kWh, carbon 0kg, import 19.32kWh, changed 8 window(s)
2026-08-18 18:15:12.161632: Swap charge optimisation started metric 301.76p, cost 311.37p, min_improvement_swap 0.1p
2026-08-18 18:15:18.520473: Swap charge optimisation finished metric 301.76p, cost 311.37p
2026-08-18 18:15:18.685407: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 299.94p -> 299.78p, plan now metric 302.19p, cost 309.36p, cycle 30.05kWh, import 19.07kWh
2026-08-18 18:15:18.700686: Raw charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:15:18.701652: Unclipped charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:15:18.702030: Unfiltered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:15:18.703155: Filtered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:15:18.753211: Previous plan best metric is 301.76 (cost 311.37) and new plan best metric is 301.76 (cost 311.37)
2026-08-18 18:15:18.754903: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 18:15:18.755172: Plan valid is now true after recompute was False
2026-08-18 18:15:18.794370: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 640.7p, metric_keep 127.9kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.81kWh, PV 0.0kWh
2026-08-18 18:15:18.897288: Battery has 4.92 hours left - now at 4.96kWh
2026-08-18 18:15:18.940276: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 667.7p, metric_keep 128.86kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.78kWh, PV 0.0kWh
2026-08-18 18:15:19.027652: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.91p, metric_keep 4.19kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.78kWh, PV 0.0kWh
2026-08-18 18:15:19.103104: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 355.99p, metric_keep 1.26kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.81kWh, PV 0.0kWh
2026-08-18 18:15:19.103183: Saving plan best values to HA entities
2026-08-18 18:15:19.254150: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 18:15:19.260843: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:15:19.267554: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.07kWh, house 0kWh, export 0.0kWh, metric 355.99p, metric10 368.91p
2026-08-18 18:15:19.343428: Marginal costs baseline metric (no standing charge): 309.3555
2026-08-18 18:15:19.612875: Marginal energy costs matrix computed: min=6.0 max=39.23
2026-08-18 18:15:19.683390: Rate array import [{'start': 1095, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1095, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:15:19.684063: - Your estimated bill for today is £1.84 and tomorrow is £1.96
2026-08-18 18:15:19.684110: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:15:19.684133: - The battery is currently at 31% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 18:15:19.684152: - For the next 48 hours there will be no solar generation.
2026-08-18 18:15:19.684169: - You have enough battery to reach the next charge.
2026-08-18 18:15:19.684192: - Your next charge slot will be in 3 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 18:15:19.684209: 
2026-08-18 18:15:19.736737: Plan calculation took 16.16 seconds
2026-08-18 18:15:19.737049: Inverter 0: Type SK Sunsynk
2026-08-18 18:15:19.737092: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:15:19.737297: Reserve min: 7%, battery_min: 7%
2026-08-18 18:15:19.737373: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:15:19.737699: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 509W, current battery voltage 51.2V, grid power -59W, load power 562W, PV Power 0W
2026-08-18 18:15:19.737922: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:15:19.738024: Inverter 0 scheduled charge enable is False
2026-08-18 18:15:19.738059: Inverter 0 charge windows currently []
2026-08-18 18:15:19.738089: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:15:19.738200: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:15:19.738240: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:15:19.738275: Inverter 0 scheduled discharge enable is False
2026-08-18 18:15:19.738396: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:15:19.738433: Inverter 0 discharge windows currently []
2026-08-18 18:15:19.738455: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:15:19.738478: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:15:19.738495: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:15:19.792891: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 31%, target 16%
2026-08-18 18:15:19.793059: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:15:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:15:19.793161: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:15:19.793420: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:15:19.793530: No export window planned
2026-08-18 18:15:19.793707: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:15:19.793768: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:15:19.793999: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:15:19.794224: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:15:19.794294: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:15:19.794378: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:15:19.794545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794758: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794841: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794890: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.794981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:15:19.795289: Inverter 0 count register writes 0
2026-08-18 18:15:19.817877: Total inverter register writes now 867
2026-08-18 18:15:19.855118: Info: Completed run status Demand
2026-08-18 18:15:19.863274: Info: record_status Demand
2026-08-18 18:15:19.871116: Saved current settings to /config/predbat_config.json
2026-08-18 18:15:19.871494: Compare, best tariff: current metric 129.87p
2026-08-18 18:16:03.992968: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:16:03.993273: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:16:03.993329: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:16:03.993517: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:16:03.993562: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:16:03.993585: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:16:03.993613: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:18:04.213707: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:18:04.214123: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:18:04.214181: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:18:04.214787: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:18:04.214842: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:18:04.214925: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:18:04.214994: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:19:29.695668: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 18:19:30.652330: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:19:30.652502: Zero load period starting at 2026-08-17T10:54:00+0100 (1881 minutes) for 189 minutes with base value 394.3
2026-08-18 18:19:30.653613: Processing 1345 30-minute periods for power integration
2026-08-18 18:19:30.741054: ML Component: Car charging hold False, car energy reported load False
2026-08-18 18:19:30.829134: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:19:30.922668: ML Temperature data points: 49306
2026-08-18 18:19:31.216737: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 18:19:31.261071: ML Component: Data fetch completed, load data age 60.0 days, 17330 data points
2026-08-18 18:19:31.261224: ML Component: No training needed, model age is 0.81 hours
2026-08-18 18:19:31.261303: ML Component: Generating predictions load data age 60.0 days, 17330 data points
2026-08-18 18:19:31.411470: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0502 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 18:19:31.970479: ML Component: Generated 576 predictions (total 31.35 kWh over 48h)
2026-08-18 18:19:32.000942: ML Component: Prediction cycle completed
2026-08-18 18:19:32.088478: ML Component: Saved 17330 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 18:20:00.438126: --------------- PredBat - update at 2026-08-18 18:20:00+01:00 with clock skew 0 minutes, minutes now 1100
2026-08-18 18:20:00.438991: Saved current settings to /config/predbat_config.json
2026-08-18 18:20:00.439157: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 18:20:00.439255: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:20:00.439337: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:20:00.460142: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:20:00.460254: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:20:00.460414: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:20:00.460899: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:20:00.461015: Predbat mode is set to Control charge & discharge
2026-08-18 18:20:00.651006: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:20:00.651137: Using load_power data to fill gaps in load_today data
2026-08-18 18:20:01.347219: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:20:01.347403: Zero load period starting at 2026-08-17T10:54:00+0100 (1886 minutes) for 189 minutes with base value 205.725
2026-08-18 18:20:01.348571: Processing 721 30-minute periods for power integration
2026-08-18 18:20:01.518827: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:20:01.518939: Car charging hold False, threshold 6.0kWh
2026-08-18 18:20:01.518977: Current data so far today: load 11.55kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:20:01.532252: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:20:01.532333: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:20:01.532990: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:20:01.533087: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:20:01.533137: Standing charge is set to 46.63p
2026-08-18 18:20:01.610693: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:20:01.610895: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:20:01.611061: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:20:01.612142: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:20:01.612291: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:20:01.612446: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:20:01.617767: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:20:01.618149: Import rates: min 8.0p, max 46.38p, average 27.49p
2026-08-18 18:20:01.662458: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:20:01.662627: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:20:01.664394: High export rate found rates in range 99p to -99p
2026-08-18 18:20:01.764913: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:20:01.765517: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:20:01.783143: Battery level now 4.96kWh, -1hr ago 5.51kWh, at midnight 6.84kWh, battery value change in the last hour -3.79p, change today -12.92p, rate_forward 6.87p
2026-08-18 18:20:01.784130: 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-18 18:20:01.864498: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:20:01.864635: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:20:01.940971: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:20:01.968482: Today's load divergence 100.84%, in-day adjustment 98.88%, damping 0.95x, yesterday 92.68% today 100.8% blend 23.61%
2026-08-18 18:20:01.968548: Today's predicted so far 11.37kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 11.37kWh forecast extra.
2026-08-18 18:20:01.968575: Today's actual load so far 11.5kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 18:20:01.995303: Inverter 0: Type SK Sunsynk
2026-08-18 18:20:01.995372: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:20:01.995513: Reserve min: 7%, battery_min: 7%
2026-08-18 18:20:01.995567: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:20:01.995772: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 464W, current battery voltage 51.2V, grid power -54W, load power 514W, PV Power 0W
2026-08-18 18:20:01.995892: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:20:01.996008: Inverter 0 scheduled charge enable is False
2026-08-18 18:20:01.996047: Inverter 0 charge windows currently []
2026-08-18 18:20:01.996075: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:20:01.996169: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:20:01.996214: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:20:01.996245: Inverter 0 scheduled discharge enable is False
2026-08-18 18:20:01.996345: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:20:01.996374: Inverter 0 discharge windows currently []
2026-08-18 18:20:01.996392: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:20:01.996407: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:20:01.996421: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:20:02.051475: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:20:02.051577: Plan was last updated on 2026-08-18 18:15:00+01:00 and is now 5.0 minutes old
2026-08-18 18:20:02.051780: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:20:02.051820: Best export window [  ]
2026-08-18 18:20:02.052712: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:20:02.055890: Load divergence over 8.0 hours mean 568.68W, min 332.4W, max 1084.2W, std dev 220.95W, divergence 19.43%
2026-08-18 18:20:02.071523: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:20:02.071620: LoadML is_calculating False
2026-08-18 18:20:02.071676: Creating pool of 12 processes to match your CPU count
2026-08-18 18:20:02.197656: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.15p, metric_keep 127.61kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.89kWh, PV 0.0kWh
2026-08-18 18:20:02.317976: Battery has 4.92 hours left - now at 4.96kWh
2026-08-18 18:20:02.360112: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 666.08p, metric_keep 128.58kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.86kWh, PV 0.0kWh
2026-08-18 18:20:02.428137: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 370.02p, metric_keep 3.8kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.86kWh, PV 0.0kWh
2026-08-18 18:20:02.497475: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 358.3p, metric_keep 1.18kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.89kWh, PV 0.0kWh
2026-08-18 18:20:02.497547: Saving plan best values to HA entities
2026-08-18 18:20:02.655573: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:20:02.660802: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:20:02.666405: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.52kWh, house 0kWh, export 0.0kWh, metric 358.3p, metric10 370.02p
2026-08-18 18:20:02.759662: Marginal costs baseline metric (no standing charge): 311.6627
2026-08-18 18:20:03.004593: Marginal energy costs matrix computed: min=5.33 max=38.62
2026-08-18 18:20:03.069918: Rate array import [{'start': 1100, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1100, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:20:03.070594: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 18:20:03.070640: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:20:03.070663: - The battery is currently at 31% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 18:20:03.070698: - For the next 48 hours there will be no solar generation.
2026-08-18 18:20:03.070717: - You have enough battery to reach the next charge.
2026-08-18 18:20:03.070745: - Your next charge slot will be in 3 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 18:20:03.070763: 
2026-08-18 18:20:03.118372: Plan calculation took 1.07 seconds
2026-08-18 18:20:03.121980: No high rate period found
2026-08-18 18:20:03.174951: Import threshold used for optimisation was 8.0p
2026-08-18 18:20:03.230799: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75]
2026-08-18 18:20:03.237577: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 31%, target 16%
2026-08-18 18:20:03.237714: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:20:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:20:03.237821: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:20:03.238097: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:20:03.238199: No export window planned
2026-08-18 18:20:03.238322: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:20:03.238359: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:20:03.238494: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:20:03.238673: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:20:03.238734: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:20:03.238796: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:20:03.238897: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.238941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.238971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.238998: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239043: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:20:03.239394: Inverter 0 count register writes 0
2026-08-18 18:20:03.256187: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 18:20:03.261977: Total inverter register writes now 867
2026-08-18 18:20:03.293049: Info: Completed run status Demand
2026-08-18 18:20:03.299767: Info: record_status Demand
2026-08-18 18:20:03.306440: Saved current settings to /config/predbat_config.json
2026-08-18 18:20:03.306747: Compare, best tariff: current metric 129.87p
2026-08-18 18:20:34.411376: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:20:34.411678: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:20:34.411776: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:20:34.412042: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:20:34.412146: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:20:34.412174: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:20:34.412210: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:22:48.670679: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:22:48.670933: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:22:48.670979: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:22:48.671115: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:22:48.671153: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:22:48.671175: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:22:48.671193: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:24:48.909646: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:24:48.909832: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:24:48.909865: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:24:48.910000: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:24:48.910032: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:24:48.910050: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:24:48.910064: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:25:00.994883: --------------- PredBat - update at 2026-08-18 18:25:00+01:00 with clock skew 0 minutes, minutes now 1105
2026-08-18 18:25:00.995632: Saved current settings to /config/predbat_config.json
2026-08-18 18:25:00.995733: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 18:25:00.995794: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:25:00.995854: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:25:01.013906: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:25:01.014012: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:25:01.014206: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:25:01.014706: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:25:01.014851: Predbat mode is set to Control charge & discharge
2026-08-18 18:25:01.164404: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:25:01.164517: Using load_power data to fill gaps in load_today data
2026-08-18 18:25:02.007667: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:25:02.008935: Zero load period starting at 2026-08-17T10:54:00+0100 (1891 minutes) for 189 minutes with base value 205.7
2026-08-18 18:25:02.010334: Processing 721 30-minute periods for power integration
2026-08-18 18:25:02.208666: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:25:02.209057: Car charging hold False, threshold 6.0kWh
2026-08-18 18:25:02.209130: Current data so far today: load 11.6kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:25:02.225950: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:25:02.226026: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:25:02.226647: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:25:02.226713: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:25:02.226754: Standing charge is set to 46.63p
2026-08-18 18:25:02.316557: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:25:02.316787: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:25:02.316989: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:25:02.318192: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:25:02.318306: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:25:02.318438: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:25:02.323726: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:25:02.324173: Import rates: min 8.0p, max 46.38p, average 27.47p
2026-08-18 18:25:02.369388: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:25:02.369516: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:25:02.370947: High export rate found rates in range 99p to -99p
2026-08-18 18:25:02.474142: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:25:02.474260: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:25:02.486465: Battery level now 4.96kWh, -1hr ago 5.44kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -12.92p, rate_forward 6.87p
2026-08-18 18:25:02.486911: 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-18 18:25:02.553804: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:25:02.553935: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:25:02.652986: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:25:02.689291: Today's load divergence 101.0%, in-day adjustment 99.03%, damping 0.95x, yesterday 92.68% today 100.95% blend 23.26%
2026-08-18 18:25:02.689397: Today's predicted so far 11.39kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 11.39kWh forecast extra.
2026-08-18 18:25:02.689431: Today's actual load so far 11.55kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 18:25:02.724615: Inverter 0: Type SK Sunsynk
2026-08-18 18:25:02.724700: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:25:02.724888: Reserve min: 7%, battery_min: 7%
2026-08-18 18:25:02.724964: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:25:02.725208: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 519W, current battery voltage 51.2V, grid power -52W, load power 563W, PV Power 0W
2026-08-18 18:25:02.725354: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:25:02.725466: Inverter 0 scheduled charge enable is False
2026-08-18 18:25:02.725501: Inverter 0 charge windows currently []
2026-08-18 18:25:02.725528: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:25:02.725638: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:25:02.725673: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:25:02.725707: Inverter 0 scheduled discharge enable is False
2026-08-18 18:25:02.725823: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:25:02.725858: Inverter 0 discharge windows currently []
2026-08-18 18:25:02.725880: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:25:02.725902: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:25:02.725920: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:25:02.781708: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:25:02.781825: Plan was last updated on 2026-08-18 18:15:00+01:00 and is now 10.0 minutes old
2026-08-18 18:25:02.782091: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:25:02.782148: Best export window [  ]
2026-08-18 18:25:02.783079: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:25:02.786390: Load divergence over 8.0 hours mean 567.34W, min 337.2W, max 1255.8W, std dev 241.48W, divergence 21.28%
2026-08-18 18:25:02.805643: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:25:02.805735: LoadML is_calculating False
2026-08-18 18:25:02.805793: Creating pool of 12 processes to match your CPU count
2026-08-18 18:25:02.918973: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 639.24p, metric_keep 127.46kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.01kWh, PV 0.0kWh
2026-08-18 18:25:03.033940: Battery has 4.83 hours left - now at 4.96kWh
2026-08-18 18:25:03.071250: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.22p, metric_keep 128.4kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.98kWh, PV 0.0kWh
2026-08-18 18:25:03.136778: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 373.0p, metric_keep 3.63kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.98kWh, PV 0.0kWh
2026-08-18 18:25:03.204266: predict best end_record 08-19 23:40:00, final soc 2.34kWh, metric 360.79p, metric_keep 1.3kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.01kWh, PV 0.0kWh
2026-08-18 18:25:03.205052: Saving plan best values to HA entities
2026-08-18 18:25:03.350594: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:25:03.355070: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:25:03.359375: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.98kWh, house 0.01kWh, export 0.0kWh, metric 360.79p, metric10 373.0p
2026-08-18 18:25:03.426534: Marginal costs baseline metric (no standing charge): 314.1538
2026-08-18 18:25:03.639949: Marginal energy costs matrix computed: min=4.76 max=38.18
2026-08-18 18:25:03.704564: Rate array import [{'start': 1105, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1105, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:25:03.706465: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 18:25:03.706511: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:25:03.706531: - The battery is currently at 31% and is in eco mode for the next 3 hours.
2026-08-18 18:25:03.706546: - For the next 48 hours there will be no solar generation.
2026-08-18 18:25:03.706560: - You have enough battery to reach the next charge.
2026-08-18 18:25:03.706573: - Your next charge slot will be in 3 hours where import rates will be very expensive (33.8p).
2026-08-18 18:25:03.706587: 
2026-08-18 18:25:03.771717: Plan calculation took 0.99 seconds
2026-08-18 18:25:03.776056: No high rate period found
2026-08-18 18:25:03.836231: Import threshold used for optimisation was 8.0p
2026-08-18 18:25:03.897241: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75]
2026-08-18 18:25:03.903552: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 31%, target 16%
2026-08-18 18:25:03.903676: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:25:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:25:03.903778: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:25:03.904120: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:25:03.904242: No export window planned
2026-08-18 18:25:03.904385: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:25:03.904422: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:25:03.904557: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:25:03.904730: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:25:03.904792: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:25:03.904854: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:25:03.904955: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.904993: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905026: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905087: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:03.905436: Inverter 0 count register writes 0
2026-08-18 18:25:03.921550: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 18:25:03.921685: Recompute is saving previous plan...
2026-08-18 18:25:03.924203: Best charge window [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 0% ]
2026-08-18 18:25:03.924265: Best export window [  ]
2026-08-18 18:25:03.924926: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:25:03.927455: Load divergence over 8.0 hours mean 567.34W, min 337.2W, max 1255.8W, std dev 241.48W, divergence 21.28%
2026-08-18 18:25:03.941678: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:25:03.941760: LoadML is_calculating False
2026-08-18 18:25:03.941809: Creating pool of 12 processes to match your CPU count
2026-08-18 18:25:04.022581: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 18:25:04.024188: Optimise levels pass started at 2026-08-18 18:25:04
2026-08-18 18:25:04.024234: Optimise all windows, total charge 94 export 1
2026-08-18 18:25:04.409209: >> Region optimisation pass width 960 gives best_metric 417.79p, best_cost 453.61p, best_cycle 51.12kWh, best_import 37.42kWh
2026-08-18 18:25:04.618802: >> Region optimisation pass width 480 gives best_metric 417.79p, best_cost 453.61p, best_cycle 51.12kWh, best_import 37.42kWh
2026-08-18 18:25:04.966481: >> Region optimisation pass width 240 gives best_metric 417.79p, best_cost 453.61p, best_cycle 51.12kWh, best_import 37.42kWh
2026-08-18 18:25:05.919161: >> Region optimisation pass width 120 gives best_metric 417.26p, best_cost 446.77p, best_cycle 52.01kWh, best_import 36.57kWh
2026-08-18 18:25:05.919483: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 57
2026-08-18 18:25:05.919618: Optimise levels pass ended at 2026-08-18 18:25:05, duration 1.9 seconds tried 215 combinations
2026-08-18 18:25:05.919759: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 417.26p, best_keep 2.66kWh, best_cycle 52.01kWh, best_carbon 0kg, best_import 36.57kWh
2026-08-18 18:25:05.939296: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 18:25:11.861814: Tweak plan optimisation started metric 298.47p, cost 307.97p
2026-08-18 18:25:12.187708: Tweak optimisation finished metric 298.47p, cost 307.97p, metric_keep 1.3kWh, cycle 29.8kWh, carbon 0kg, import 19.22kWh, changed 8 window(s)
2026-08-18 18:25:12.203786: Swap charge optimisation started metric 298.47p, cost 307.97p, min_improvement_swap 0.1p
2026-08-18 18:25:17.562091: Swap charge optimisation finished metric 298.47p, cost 307.97p
2026-08-18 18:25:17.711688: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 296.66p -> 296.5p, plan now metric 298.95p, cost 305.96p, cycle 30.07kWh, import 18.97kWh
2026-08-18 18:25:17.725903: Raw charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:25:17.727217: Unclipped charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:25:17.729654: Unfiltered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:25:17.729863: Filtered charge windows [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:25:17.770153: Previous plan best metric is 298.47 (cost 307.97) and new plan best metric is 298.47 (cost 307.97)
2026-08-18 18:25:17.770429: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 18:25:17.770558: Plan valid is now true after recompute was False
2026-08-18 18:25:17.799528: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 637.71p, metric_keep 127.21kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.82kWh, PV 0.0kWh
2026-08-18 18:25:17.898430: Battery has 4.83 hours left - now at 4.96kWh
2026-08-18 18:25:17.935979: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 664.62p, metric_keep 128.15kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.78kWh, PV 0.0kWh
2026-08-18 18:25:18.012704: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 365.85p, metric_keep 3.61kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.78kWh, PV 0.0kWh
2026-08-18 18:25:18.082263: predict best end_record 08-19 23:30:00, final soc 1.56kWh, metric 352.59p, metric_keep 1.3kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.82kWh, PV 0.0kWh
2026-08-18 18:25:18.082361: Saving plan best values to HA entities
2026-08-18 18:25:18.275037: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:25:18.281906: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:25:18.288336: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.01kWh, export 0.0kWh, metric 352.59p, metric10 365.85p
2026-08-18 18:25:18.382465: Marginal costs baseline metric (no standing charge): 305.9583
2026-08-18 18:25:18.718674: Marginal energy costs matrix computed: min=4.76 max=38.18
2026-08-18 18:25:18.798319: Rate array import [{'start': 1105, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1105, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:25:18.799031: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 18:25:18.799089: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:25:18.799113: - The battery is currently at 31% and is in eco mode for the next 3 hours.
2026-08-18 18:25:18.799132: - For the next 48 hours there will be no solar generation.
2026-08-18 18:25:18.799149: - You have enough battery to reach the next charge.
2026-08-18 18:25:18.799170: - Your next charge slot will be in 3 hours where import rates will be very expensive (33.8p).
2026-08-18 18:25:18.799194: 
2026-08-18 18:25:18.865956: Plan calculation took 14.94 seconds
2026-08-18 18:25:18.866245: Inverter 0: Type SK Sunsynk
2026-08-18 18:25:18.866281: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:25:18.866471: Reserve min: 7%, battery_min: 7%
2026-08-18 18:25:18.866534: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:25:18.866801: Inverter 0 SoC: 4.86kW 30%, current charge rate 5000W, current discharge rate 5250W, current battery power 585W, current battery voltage 51.2V, grid power -50W, load power 528W, PV Power 0W
2026-08-18 18:25:18.866988: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:25:18.867074: Inverter 0 scheduled charge enable is False
2026-08-18 18:25:18.867109: Inverter 0 charge windows currently []
2026-08-18 18:25:18.867134: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:25:18.867224: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:25:18.867256: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:25:18.867287: Inverter 0 scheduled discharge enable is False
2026-08-18 18:25:18.867409: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:25:18.867442: Inverter 0 discharge windows currently []
2026-08-18 18:25:18.867461: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:25:18.867476: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:25:18.867490: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:25:18.920500: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 30%, target 16%
2026-08-18 18:25:18.920664: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:25:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:25:18.920760: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:25:18.920955: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:25:18.921049: No export window planned
2026-08-18 18:25:18.921201: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:25:18.921244: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:25:18.921429: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:25:18.921619: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:25:18.921684: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:25:18.921797: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:25:18.921918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.921974: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922022: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922069: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:25:18.922556: Inverter 0 count register writes 0
2026-08-18 18:25:18.944876: Total inverter register writes now 867
2026-08-18 18:25:18.976545: Info: Completed run status Demand
2026-08-18 18:25:18.984048: Info: record_status Demand
2026-08-18 18:25:18.990991: Saved current settings to /config/predbat_config.json
2026-08-18 18:25:18.991237: Compare, best tariff: current metric 129.87p
2026-08-18 18:25:49.094031: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:25:49.094224: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:25:49.094253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:25:49.094357: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:25:49.094389: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:25:49.094420: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:25:49.094436: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:27:49.296442: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:27:49.296684: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:27:49.296728: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:27:49.296862: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:27:49.296900: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:27:49.296921: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:27:49.296939: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:29:49.530559: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:29:49.530803: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:29:49.530838: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:29:49.530964: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:29:49.530994: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:29:49.531014: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:29:49.531031: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:30:00.617847: --------------- PredBat - update at 2026-08-18 18:30:00+01:00 with clock skew 0 minutes, minutes now 1110
2026-08-18 18:30:00.618437: Saved current settings to /config/predbat_config.json
2026-08-18 18:30:00.618570: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 18:30:00.618663: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:30:00.618770: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:30:00.634086: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:30:00.634184: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:30:00.634315: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:30:00.634752: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:30:00.634849: Predbat mode is set to Control charge & discharge
2026-08-18 18:30:00.823134: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:30:00.825290: Using load_power data to fill gaps in load_today data
2026-08-18 18:30:01.729101: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:30:01.729270: Zero load period starting at 2026-08-17T10:54:00+0100 (1896 minutes) for 189 minutes with base value 205.65
2026-08-18 18:30:01.730372: Processing 721 30-minute periods for power integration
2026-08-18 18:30:01.904881: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:30:01.906299: Car charging hold False, threshold 6.0kWh
2026-08-18 18:30:01.906383: Current data so far today: load 11.65kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:30:01.923743: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:30:01.923871: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:30:01.924624: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:30:01.925532: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:30:01.925647: Standing charge is set to 46.63p
2026-08-18 18:30:02.032298: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:30:02.032666: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:30:02.032939: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:30:02.034405: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:30:02.034630: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:30:02.034808: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:30:02.041628: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:30:02.043454: Import rates: min 8.0p, max 46.38p, average 27.44p
2026-08-18 18:30:02.089962: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:30:02.090074: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:30:02.091386: High export rate found rates in range 99p to -99p
2026-08-18 18:30:02.192629: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:30:02.192743: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:30:02.204407: Battery level now 4.96kWh, -1hr ago 5.44kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -12.92p, rate_forward 6.87p
2026-08-18 18:30:02.204789: 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-18 18:30:02.268281: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:30:02.268459: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:30:02.370703: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:30:02.427000: Today's load divergence 100.69%, in-day adjustment 98.83%, damping 0.95x, yesterday 92.68% today 100.66% blend 22.92%
2026-08-18 18:30:02.427124: Today's predicted so far 11.52kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 11.52kWh forecast extra.
2026-08-18 18:30:02.427161: Today's actual load so far 11.63kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 18:30:02.471746: Inverter 0: Type SK Sunsynk
2026-08-18 18:30:02.471838: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:30:02.472084: Reserve min: 7%, battery_min: 7%
2026-08-18 18:30:02.472177: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:30:02.472436: Inverter 0 SoC: 4.8kW 30%, current charge rate 5000W, current discharge rate 5250W, current battery power 499W, current battery voltage 51.2V, grid power -54W, load power 550W, PV Power 0W
2026-08-18 18:30:02.472656: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:30:02.472784: Inverter 0 scheduled charge enable is False
2026-08-18 18:30:02.472841: Inverter 0 charge windows currently []
2026-08-18 18:30:02.472891: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:30:02.473069: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:30:02.473113: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:30:02.473170: Inverter 0 scheduled discharge enable is False
2026-08-18 18:30:02.473349: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:30:02.473392: Inverter 0 discharge windows currently []
2026-08-18 18:30:02.473427: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:30:02.473492: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:30:02.473532: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:30:02.546765: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:30:02.546866: Plan was last updated on 2026-08-18 18:25:00+01:00 and is now 5.0 minutes old
2026-08-18 18:30:02.547091: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:30:02.547132: Best export window [  ]
2026-08-18 18:30:02.548040: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:30:02.551239: Load divergence over 8.0 hours mean 579.49W, min 323.4W, max 1315.8W, std dev 252.51W, divergence 21.79%
2026-08-18 18:30:02.571577: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:30:02.571712: LoadML is_calculating False
2026-08-18 18:30:02.571780: Creating pool of 12 processes to match your CPU count
2026-08-18 18:30:02.699208: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 640.86p, metric_keep 127.85kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 31.89kWh, PV 0.0kWh
2026-08-18 18:30:02.838563: Battery has 4.67 hours left - now at 4.8kWh
2026-08-18 18:30:02.884434: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 667.61p, metric_keep 128.78kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.85kWh, PV 0.0kWh
2026-08-18 18:30:02.974150: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 371.68p, metric_keep 3.99kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.85kWh, PV 0.0kWh
2026-08-18 18:30:03.064146: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 359.75p, metric_keep 1.16kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.89kWh, PV 0.0kWh
2026-08-18 18:30:03.064222: Saving plan best values to HA entities
2026-08-18 18:30:03.233508: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:30:03.239005: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 18:30:03.243692: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.56kWh, house 0.0kWh, export 0.0kWh, metric 359.75p, metric10 371.68p
2026-08-18 18:30:03.316542: Marginal costs baseline metric (no standing charge): 313.1204
2026-08-18 18:30:03.554716: Marginal energy costs matrix computed: min=6.65 max=37.62
2026-08-18 18:30:03.644728: Rate array import [{'start': 1110, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1110, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:30:03.645393: - Your estimated bill for today is £1.83 and tomorrow is £1.96
2026-08-18 18:30:03.645436: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:30:03.645459: - The battery is currently at 30% and is in eco mode for the next 3 hours.
2026-08-18 18:30:03.645477: - For the next 48 hours there will be no solar generation.
2026-08-18 18:30:03.645494: - You have enough battery to reach the next charge.
2026-08-18 18:30:03.645512: - Your next charge slot will be in 3 hours where import rates will be very expensive (33.8p).
2026-08-18 18:30:03.645530: 
2026-08-18 18:30:03.702435: Plan calculation took 1.16 seconds
2026-08-18 18:30:03.705448: No high rate period found
2026-08-18 18:30:03.746403: Import threshold used for optimisation was 8.0p
2026-08-18 18:30:03.798283: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75]
2026-08-18 18:30:03.805590: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 30%, target 16%
2026-08-18 18:30:03.805769: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:30:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:30:03.805941: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:30:03.806228: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:30:03.806349: No export window planned
2026-08-18 18:30:03.806516: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:30:03.806558: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:30:03.806742: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:30:03.806948: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:30:03.807024: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:30:03.807127: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:30:03.807271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807321: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807420: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807471: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807868: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.807970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.808040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.808102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:30:03.808148: Inverter 0 count register writes 0
2026-08-18 18:30:03.823596: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 18:30:03.828760: Total inverter register writes now 867
2026-08-18 18:30:03.863000: Info: Completed run status Demand
2026-08-18 18:30:03.868815: Info: record_status Demand
2026-08-18 18:30:03.876270: Saved current settings to /config/predbat_config.json
2026-08-18 18:30:03.876709: Compare, best tariff: current metric 129.87p
2026-08-18 18:30:33.986395: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:30:33.986746: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:30:33.986809: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:30:33.987084: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:30:33.987141: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:30:33.987189: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:30:33.987225: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:32:34.218079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:32:34.218398: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:32:34.218464: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:32:34.218711: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:32:34.218778: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:32:34.218822: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:32:34.218859: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:34:34.442344: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:34:34.442569: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:34:34.442609: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:34:34.442790: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:34:34.442853: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:34:34.442877: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:34:34.442895: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:35:00.547593: --------------- PredBat - update at 2026-08-18 18:35:00+01:00 with clock skew 0 minutes, minutes now 1115
2026-08-18 18:35:00.548446: Saved current settings to /config/predbat_config.json
2026-08-18 18:35:00.548568: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 18:35:00.548739: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:35:00.548878: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:35:00.566189: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:35:00.566379: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:35:00.566601: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:35:00.567105: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:35:00.567221: Predbat mode is set to Control charge & discharge
2026-08-18 18:35:00.755495: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:35:00.755647: Using load_power data to fill gaps in load_today data
2026-08-18 18:35:01.603439: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:35:01.603618: Zero load period starting at 2026-08-17T10:54:00+0100 (1901 minutes) for 189 minutes with base value 205.6
2026-08-18 18:35:01.604966: Processing 721 30-minute periods for power integration
2026-08-18 18:35:01.814289: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:35:01.814457: Car charging hold False, threshold 6.0kWh
2026-08-18 18:35:01.814505: Current data so far today: load 11.7kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:35:01.831061: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:35:01.832127: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:35:01.834077: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:35:01.834168: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:35:01.834288: Standing charge is set to 46.63p
2026-08-18 18:35:01.938860: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:35:01.940392: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:35:01.943353: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:35:01.945135: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:35:01.945286: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:35:01.945427: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:35:01.951833: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:35:01.952290: Import rates: min 8.0p, max 46.38p, average 27.42p
2026-08-18 18:35:02.010003: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:35:02.010131: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:35:02.012207: High export rate found rates in range 99p to -99p
2026-08-18 18:35:02.124563: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:35:02.124698: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:35:02.139976: Battery level now 4.8kWh, -1hr ago 5.36kWh, at midnight 6.84kWh, battery value change in the last hour -3.85p, change today -14.02p, rate_forward 6.87p
2026-08-18 18:35:02.140393: 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-18 18:35:02.194576: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:35:02.194750: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:35:02.290024: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:35:02.326807: Today's load divergence 100.33%, in-day adjustment 98.59%, damping 0.95x, yesterday 92.68% today 100.31% blend 22.57%
2026-08-18 18:35:02.326924: Today's predicted so far 11.64kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 11.64kWh forecast extra.
2026-08-18 18:35:02.326967: Today's actual load so far 11.69kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 18:35:02.357263: Inverter 0: Type SK Sunsynk
2026-08-18 18:35:02.357345: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:35:02.357519: Reserve min: 7%, battery_min: 7%
2026-08-18 18:35:02.357595: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:35:02.357886: Inverter 0 SoC: 4.8kW 30%, current charge rate 5000W, current discharge rate 5250W, current battery power 528W, current battery voltage 51.2V, grid power -57W, load power 582W, PV Power 0W
2026-08-18 18:35:02.358041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:35:02.358125: Inverter 0 scheduled charge enable is False
2026-08-18 18:35:02.358159: Inverter 0 charge windows currently []
2026-08-18 18:35:02.358205: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:35:02.358322: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:35:02.358357: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:35:02.358393: Inverter 0 scheduled discharge enable is False
2026-08-18 18:35:02.358513: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:35:02.358549: Inverter 0 discharge windows currently []
2026-08-18 18:35:02.358572: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:35:02.358590: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:35:02.358607: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:35:02.413612: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:35:02.413706: Plan was last updated on 2026-08-18 18:25:00+01:00 and is now 10.0 minutes old
2026-08-18 18:35:02.413944: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:35:02.413988: Best export window [  ]
2026-08-18 18:35:02.414886: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:35:02.418080: Load divergence over 8.0 hours mean 593.61W, min 330.0W, max 1461.0W, std dev 281.66W, divergence 23.72%
2026-08-18 18:35:02.436441: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:35:02.436519: LoadML is_calculating False
2026-08-18 18:35:02.436575: Creating pool of 12 processes to match your CPU count
2026-08-18 18:35:02.552774: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 638.53p, metric_keep 127.45kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.95kWh, PV 0.0kWh
2026-08-18 18:35:02.668929: Battery has 4.67 hours left - now at 4.8kWh
2026-08-18 18:35:02.711074: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 665.2p, metric_keep 128.36kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.92kWh, PV 0.0kWh
2026-08-18 18:35:02.785127: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 372.06p, metric_keep 3.5kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.92kWh, PV 0.0kWh
2026-08-18 18:35:02.862721: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 361.91p, metric_keep 0.9kWh, min_soc 1.18kWh @ 08-18 23:25:00, load 31.95kWh, PV 0.0kWh
2026-08-18 18:35:02.862812: Saving plan best values to HA entities
2026-08-18 18:35:03.007850: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 18:35:03.014162: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:35:03.020157: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.98kWh, house 0.0kWh, export 0.0kWh, metric 361.91p, metric10 372.06p
2026-08-18 18:35:03.107472: Marginal costs baseline metric (no standing charge): 315.2794
2026-08-18 18:35:03.355161: Marginal energy costs matrix computed: min=8.0 max=36.94
2026-08-18 18:35:03.420623: Rate array import [{'start': 1115, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1115, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:35:03.421336: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 18:35:03.421385: - Import rates are very expensive (33.8p - 46.4p) for the next 4  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:35:03.421434: - The battery is currently at 30% and is in eco mode for the next 2  hours.
2026-08-18 18:35:03.421478: - For the next 48 hours there will be no solar generation.
2026-08-18 18:35:03.421509: - You have enough battery to reach the next charge.
2026-08-18 18:35:03.421530: - Your next charge slot will be in 2  hours where import rates will be very expensive (33.8p).
2026-08-18 18:35:03.421562: 
2026-08-18 18:35:03.469837: Plan calculation took 1.06 seconds
2026-08-18 18:35:03.473339: No high rate period found
2026-08-18 18:35:03.517442: Import threshold used for optimisation was 8.0p
2026-08-18 18:35:03.560550: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75, 95: 08-20 18:30:00 - 08-20 19:00:00 @ 33.75]
2026-08-18 18:35:03.565883: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 30%, target 16%
2026-08-18 18:35:03.565983: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:35:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:35:03.566061: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:35:03.566265: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:35:03.566342: No export window planned
2026-08-18 18:35:03.566441: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:35:03.566470: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:35:03.566577: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:35:03.566743: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:35:03.566813: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:35:03.566870: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:35:03.566950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.566984: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567007: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567027: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:03.567313: Inverter 0 count register writes 0
2026-08-18 18:35:03.579977: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 18:35:03.580137: Recompute is saving previous plan...
2026-08-18 18:35:03.582690: Best charge window [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 0%, 20-08 18:30:00 - 20-08 19:00:00 @ 33.75p 0% ]
2026-08-18 18:35:03.582752: Best export window [  ]
2026-08-18 18:35:03.583393: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:35:03.586079: Load divergence over 8.0 hours mean 593.61W, min 330.0W, max 1461.0W, std dev 281.66W, divergence 23.72%
2026-08-18 18:35:03.600548: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:35:03.600630: LoadML is_calculating False
2026-08-18 18:35:03.600680: Creating pool of 12 processes to match your CPU count
2026-08-18 18:35:03.677339: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 18:35:03.678856: Optimise levels pass started at 2026-08-18 18:35:03
2026-08-18 18:35:03.678917: Optimise all windows, total charge 95 export 1
2026-08-18 18:35:04.042029: >> Region optimisation pass width 960 gives best_metric 418.35p, best_cost 451.07p, best_cycle 50.82kWh, best_import 37.14kWh
2026-08-18 18:35:04.269877: >> Region optimisation pass width 480 gives best_metric 418.35p, best_cost 451.07p, best_cycle 50.82kWh, best_import 37.14kWh
2026-08-18 18:35:04.596414: >> Region optimisation pass width 240 gives best_metric 418.35p, best_cost 451.07p, best_cycle 50.82kWh, best_import 37.14kWh
2026-08-18 18:35:05.893593: >> Region optimisation pass width 120 gives best_metric 417.59p, best_cost 446.73p, best_cycle 51.39kWh, best_import 36.6kWh
2026-08-18 18:35:05.893874: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 57
2026-08-18 18:35:05.893986: Optimise levels pass ended at 2026-08-18 18:35:05, duration 2.2 seconds tried 220 combinations
2026-08-18 18:35:05.894102: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 417.59p, best_keep 2.64kWh, best_cycle 51.39kWh, best_carbon 0kg, best_import 36.6kWh
2026-08-18 18:35:05.909958: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 18:35:11.964341: Tweak plan optimisation started metric 298.13p, cost 307.62p
2026-08-18 18:35:12.332897: Tweak optimisation finished metric 298.13p, cost 307.62p, metric_keep 1.44kWh, cycle 29.64kWh, carbon 0kg, import 19.21kWh, changed 8 window(s)
2026-08-18 18:35:12.355420: Swap charge optimisation started metric 298.13p, cost 307.62p, min_improvement_swap 0.1p
2026-08-18 18:35:18.269360: Swap charge optimisation finished metric 298.13p, cost 307.62p
2026-08-18 18:35:18.420838: Pruned 1 dead plan slot(s) in 13 trial(s), nominal metric 296.36p -> 296.12p, plan now metric 299.4p, cost 303.43p, cycle 29.64kWh, import 18.69kWh
2026-08-18 18:35:18.433698: Raw charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 89%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 89%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 89%, 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 89%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 89%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 89%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 100%, 20-08 18:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:35:18.434174: Unclipped charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:35:18.434384: Unfiltered charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:35:18.434579: Filtered charge windows [ 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:35:18.474562: Previous plan best metric is 298.82 (cost 309.07) and new plan best metric is 298.13 (cost 307.62)
2026-08-18 18:35:18.474807: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 18:35:18.474925: Plan valid is now true after recompute was False
2026-08-18 18:35:18.505209: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.95p, metric_keep 127.19kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.75kWh, PV 0.0kWh
2026-08-18 18:35:18.603657: Battery has 4.67 hours left - now at 4.8kWh
2026-08-18 18:35:18.639593: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 663.53p, metric_keep 128.11kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.71kWh, PV 0.0kWh
2026-08-18 18:35:18.702485: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 364.84p, metric_keep 3.48kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.71kWh, PV 0.0kWh
2026-08-18 18:35:18.784154: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 353.66p, metric_keep 0.9kWh, min_soc 1.18kWh @ 08-18 23:25:00, load 31.75kWh, PV 0.0kWh
2026-08-18 18:35:18.784254: Saving plan best values to HA entities
2026-08-18 18:35:18.929827: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 18:35:18.934875: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:35:18.939821: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.95kWh, house 0.0kWh, export 0.0kWh, metric 353.66p, metric10 364.84p
2026-08-18 18:35:19.007339: Marginal costs baseline metric (no standing charge): 307.0247
2026-08-18 18:35:19.269142: Marginal energy costs matrix computed: min=8.0 max=36.94
2026-08-18 18:35:19.326389: Rate array import [{'start': 1115, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1115, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:35:19.326991: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 18:35:19.327038: - Import rates are very expensive (33.8p - 46.4p) for the next 4  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:35:19.327092: - The battery is currently at 30% and is in eco mode for the next 2  hours.
2026-08-18 18:35:19.327130: - For the next 48 hours there will be no solar generation.
2026-08-18 18:35:19.327160: - You have enough battery to reach the next charge.
2026-08-18 18:35:19.327186: - Your next charge slot will be in 2  hours where import rates will be very expensive (33.8p).
2026-08-18 18:35:19.327218: 
2026-08-18 18:35:19.373325: Plan calculation took 15.79 seconds
2026-08-18 18:35:19.373670: Inverter 0: Type SK Sunsynk
2026-08-18 18:35:19.373714: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:35:19.373937: Reserve min: 7%, battery_min: 7%
2026-08-18 18:35:19.374015: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:35:19.374329: Inverter 0 SoC: 4.8kW 30%, current charge rate 5000W, current discharge rate 5250W, current battery power 509W, current battery voltage 51.2V, grid power -55W, load power 564W, PV Power 0W
2026-08-18 18:35:19.374555: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:35:19.374658: Inverter 0 scheduled charge enable is False
2026-08-18 18:35:19.374695: Inverter 0 charge windows currently []
2026-08-18 18:35:19.374725: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:35:19.374860: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:35:19.374902: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:35:19.374941: Inverter 0 scheduled discharge enable is False
2026-08-18 18:35:19.375068: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:35:19.375106: Inverter 0 discharge windows currently []
2026-08-18 18:35:19.375128: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:35:19.375147: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:35:19.375164: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:35:19.428060: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 30%, target 16%
2026-08-18 18:35:19.428209: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:35:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:35:19.428280: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:35:19.428454: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:35:19.428535: No export window planned
2026-08-18 18:35:19.428641: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:35:19.428676: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:35:19.428843: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:35:19.429021: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:35:19.429073: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:35:19.429128: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:35:19.429246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:35:19.429962: Inverter 0 count register writes 0
2026-08-18 18:35:19.450524: Total inverter register writes now 867
2026-08-18 18:35:19.480767: Info: Completed run status Demand
2026-08-18 18:35:19.487223: Info: record_status Demand
2026-08-18 18:35:19.494107: Saved current settings to /config/predbat_config.json
2026-08-18 18:35:19.494449: Compare, best tariff: current metric 129.87p
2026-08-18 18:35:49.612179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:35:49.612406: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:35:49.612447: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:35:49.612580: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:35:49.612619: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:35:49.612640: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:35:49.612657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:38:03.842782: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:38:03.843143: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:38:03.843218: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:38:03.843401: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:38:03.843445: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:38:03.843486: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:38:03.843534: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:40:00.059153: --------------- PredBat - update at 2026-08-18 18:40:00+01:00 with clock skew 0 minutes, minutes now 1120
2026-08-18 18:40:00.059929: Saved current settings to /config/predbat_config.json
2026-08-18 18:40:00.060078: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 18:40:00.060176: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:40:00.060257: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:40:00.081519: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:40:00.081662: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:40:00.081910: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:40:00.082585: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:40:00.082753: Predbat mode is set to Control charge & discharge
2026-08-18 18:40:00.280939: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:40:00.281080: Using load_power data to fill gaps in load_today data
2026-08-18 18:40:01.181792: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:40:01.181976: Zero load period starting at 2026-08-17T10:54:00+0100 (1906 minutes) for 189 minutes with base value 205.575
2026-08-18 18:40:01.183293: Processing 721 30-minute periods for power integration
2026-08-18 18:40:01.371234: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:40:01.371354: Car charging hold False, threshold 6.0kWh
2026-08-18 18:40:01.371397: Current data so far today: load 11.75kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:40:01.389411: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:40:01.389504: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:40:01.390229: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:40:01.390308: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:40:01.390359: Standing charge is set to 46.63p
2026-08-18 18:40:01.480525: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:40:01.480756: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:40:01.480937: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:40:01.482026: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:40:01.482131: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:40:01.482246: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:40:01.488476: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:40:01.488866: Import rates: min 8.0p, max 46.38p, average 27.4p
2026-08-18 18:40:01.532096: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:40:01.532201: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:40:01.533483: High export rate found rates in range 99p to -99p
2026-08-18 18:40:01.639379: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:40:01.639592: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:40:01.650762: Battery level now 4.8kWh, -1hr ago 5.28kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -14.02p, rate_forward 6.87p
2026-08-18 18:40:01.651134: 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-18 18:40:01.707389: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:40:01.707547: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:40:01.805981: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:40:01.850081: Today's load divergence 100.32%, in-day adjustment 98.61%, damping 0.95x, yesterday 92.68% today 100.3% blend 22.22%
2026-08-18 18:40:01.851025: Today's predicted so far 11.67kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 11.67kWh forecast extra.
2026-08-18 18:40:01.853381: Today's actual load so far 11.72kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 18:40:01.916847: Inverter 0: Type SK Sunsynk
2026-08-18 18:40:01.916955: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:40:01.917143: Reserve min: 7%, battery_min: 7%
2026-08-18 18:40:01.917218: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:40:01.917470: Inverter 0 SoC: 4.8kW 30%, current charge rate 5000W, current discharge rate 5250W, current battery power 496W, current battery voltage 51.2V, grid power -60W, load power 555W, PV Power 0W
2026-08-18 18:40:01.917623: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:40:01.917755: Inverter 0 scheduled charge enable is False
2026-08-18 18:40:01.917816: Inverter 0 charge windows currently []
2026-08-18 18:40:01.921481: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:40:01.921867: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:40:01.921919: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:40:01.922017: Inverter 0 scheduled discharge enable is False
2026-08-18 18:40:01.922300: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:40:01.922357: Inverter 0 discharge windows currently []
2026-08-18 18:40:01.922388: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:40:01.922432: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:40:01.922592: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:40:02.009150: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:40:02.009254: Plan was last updated on 2026-08-18 18:35:00+01:00 and is now 5.0 minutes old
2026-08-18 18:40:02.009462: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:40:02.009503: Best export window [  ]
2026-08-18 18:40:02.010337: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:40:02.014448: Load divergence over 8.0 hours mean 592.21W, min 349.8W, max 1428.0W, std dev 264.21W, divergence 22.31%
2026-08-18 18:40:02.033167: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:40:02.033280: LoadML is_calculating False
2026-08-18 18:40:02.033339: Creating pool of 12 processes to match your CPU count
2026-08-18 18:40:02.160555: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.19p, metric_keep 126.9kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.82kWh, PV 0.0kWh
2026-08-18 18:40:02.293310: Battery has 4.67 hours left - now at 4.8kWh
2026-08-18 18:40:02.339232: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 661.69p, metric_keep 127.82kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.78kWh, PV 0.0kWh
2026-08-18 18:40:02.421055: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 365.68p, metric_keep 3.35kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.78kWh, PV 0.0kWh
2026-08-18 18:40:02.497222: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 354.56p, metric_keep 1.1kWh, min_soc 1.15kWh @ 08-18 23:25:00, load 31.82kWh, PV 0.0kWh
2026-08-18 18:40:02.497296: Saving plan best values to HA entities
2026-08-18 18:40:02.648566: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:40:02.653536: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:40:02.658725: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.39kWh, house 0.0kWh, export 0.0kWh, metric 354.56p, metric10 365.68p
2026-08-18 18:40:02.743564: Marginal costs baseline metric (no standing charge): 307.9246
2026-08-18 18:40:03.012692: Marginal energy costs matrix computed: min=8.0 max=36.73
2026-08-18 18:40:03.098461: Rate array import [{'start': 1120, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1120, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:40:03.099090: - Your estimated bill for today is £1.78 and tomorrow is £1.96
2026-08-18 18:40:03.099133: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:40:03.099156: - The battery is currently at 30% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 18:40:03.099174: - For the next 48 hours there will be no solar generation.
2026-08-18 18:40:03.099192: - You have enough battery to reach the next charge.
2026-08-18 18:40:03.099209: - Your next charge slot will be in 2 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 18:40:03.099230: 
2026-08-18 18:40:03.147922: Plan calculation took 1.14 seconds
2026-08-18 18:40:03.152746: No high rate period found
2026-08-18 18:40:03.235456: Import threshold used for optimisation was 8.0p
2026-08-18 18:40:03.309317: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75, 95: 08-20 18:30:00 - 08-20 19:00:00 @ 33.75]
2026-08-18 18:40:03.316989: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 30%, target 16%
2026-08-18 18:40:03.317128: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:40:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:40:03.317222: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:40:03.317465: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:40:03.317554: No export window planned
2026-08-18 18:40:03.317680: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:40:03.317715: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:40:03.317851: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:40:03.318038: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:40:03.318103: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:40:03.318163: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:40:03.318260: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:40:03.318752: Inverter 0 count register writes 0
2026-08-18 18:40:03.333596: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 18:40:03.338464: Total inverter register writes now 867
2026-08-18 18:40:03.369615: Info: Completed run status Demand
2026-08-18 18:40:03.376136: Info: record_status Demand
2026-08-18 18:40:03.383599: Saved current settings to /config/predbat_config.json
2026-08-18 18:40:03.384040: Compare, best tariff: current metric 129.87p
2026-08-18 18:40:34.488234: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:40:34.488459: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:40:34.488506: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:40:34.488644: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:40:34.488687: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:40:34.488709: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:40:34.488727: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:42:48.731743: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:42:48.732020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:42:48.732094: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:42:48.732254: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:42:48.732293: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:42:48.732314: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:42:48.732333: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:44:48.940648: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:44:48.940932: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:44:48.941012: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:44:48.941209: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:44:48.941255: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:44:48.941278: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:44:48.941307: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:45:00.021650: --------------- PredBat - update at 2026-08-18 18:45:00+01:00 with clock skew 0 minutes, minutes now 1125
2026-08-18 18:45:00.022478: Saved current settings to /config/predbat_config.json
2026-08-18 18:45:00.022639: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 18:45:00.022735: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:45:00.022892: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:45:00.062533: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:45:00.062686: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:45:00.062857: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:45:00.063367: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:45:00.063486: Predbat mode is set to Control charge & discharge
2026-08-18 18:45:00.243817: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:45:00.243975: Using load_power data to fill gaps in load_today data
2026-08-18 18:45:00.967616: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:45:00.967770: Zero load period starting at 2026-08-17T10:54:00+0100 (1911 minutes) for 189 minutes with base value 205.55
2026-08-18 18:45:00.968866: Processing 721 30-minute periods for power integration
2026-08-18 18:45:01.122039: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:45:01.122147: Car charging hold False, threshold 6.0kWh
2026-08-18 18:45:01.122183: Current data so far today: load 11.8kWh, import 10.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:45:01.135485: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:45:01.135556: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:45:01.136223: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:45:01.136295: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:45:01.136338: Standing charge is set to 46.63p
2026-08-18 18:45:01.225569: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:45:01.225768: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:45:01.225926: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:45:01.226773: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:45:01.226863: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:45:01.226977: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:45:01.231473: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:45:01.231851: Import rates: min 8.0p, max 46.38p, average 27.38p
2026-08-18 18:45:01.270809: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:45:01.270910: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:45:01.272047: High export rate found rates in range 99p to -99p
2026-08-18 18:45:01.364271: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:45:01.364506: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:45:01.382710: Battery level now 4.8kWh, -1hr ago 5.26kWh, at midnight 6.84kWh, battery value change in the last hour -3.19p, change today -14.02p, rate_forward 6.87p
2026-08-18 18:45:01.385140: 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-18 18:45:01.451635: Today's energy total net 10.6kWh, import 10.6kWh, export 0.0kWh, cost 147.85p, import 101.22p, export 0.0p, carbon 0.0kg
2026-08-18 18:45:01.451757: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:45:01.526093: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:45:01.554793: Today's load divergence 100.43%, in-day adjustment 98.72%, damping 0.95x, yesterday 92.68% today 100.41% blend 21.88%
2026-08-18 18:45:01.555079: Today's predicted so far 11.69kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 11.69kWh forecast extra.
2026-08-18 18:45:01.555120: Today's actual load so far 11.75kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 18:45:01.581753: Inverter 0: Type SK Sunsynk
2026-08-18 18:45:01.581825: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:45:01.581972: Reserve min: 7%, battery_min: 7%
2026-08-18 18:45:01.582042: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:45:01.582313: Inverter 0 SoC: 4.64kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 498W, current battery voltage 51.2V, grid power -60W, load power 553W, PV Power 0W
2026-08-18 18:45:01.582442: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:45:01.582511: Inverter 0 scheduled charge enable is False
2026-08-18 18:45:01.582533: Inverter 0 charge windows currently []
2026-08-18 18:45:01.582554: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:45:01.582637: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:45:01.582666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:45:01.582693: Inverter 0 scheduled discharge enable is False
2026-08-18 18:45:01.582790: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:45:01.582819: Inverter 0 discharge windows currently []
2026-08-18 18:45:01.582837: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:45:01.582852: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:45:01.582871: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:45:01.629647: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:45:01.629728: Plan was last updated on 2026-08-18 18:35:00+01:00 and is now 10.0 minutes old
2026-08-18 18:45:01.629906: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:45:01.629956: Best export window [  ]
2026-08-18 18:45:01.630646: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:45:01.633201: Load divergence over 8.0 hours mean 590.74W, min 331.8W, max 1402.8W, std dev 253.12W, divergence 21.42%
2026-08-18 18:45:01.648869: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:45:01.648942: LoadML is_calculating False
2026-08-18 18:45:01.648990: Creating pool of 12 processes to match your CPU count
2026-08-18 18:45:01.743310: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 639.51p, metric_keep 127.64kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.93kWh, PV 0.0kWh
2026-08-18 18:45:01.855671: Battery has 4.5 hours left - now at 4.64kWh
2026-08-18 18:45:01.897467: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 665.98p, metric_keep 128.52kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.89kWh, PV 0.0kWh
2026-08-18 18:45:01.986122: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 372.75p, metric_keep 3.64kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.89kWh, PV 0.0kWh
2026-08-18 18:45:02.069595: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 362.29p, metric_keep 1.06kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.93kWh, PV 0.0kWh
2026-08-18 18:45:02.069682: Saving plan best values to HA entities
2026-08-18 18:45:02.225120: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 18:45:02.230519: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:45:02.235715: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 20.02kWh, house 0kWh, export 0.0kWh, metric 362.29p, metric10 372.75p
2026-08-18 18:45:02.310340: Marginal costs baseline metric (no standing charge): 315.6589
2026-08-18 18:45:02.587433: Marginal energy costs matrix computed: min=8.0 max=36.65
2026-08-18 18:45:02.697816: Rate array import [{'start': 1125, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1125, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:45:02.698446: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 18:45:02.698492: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:45:02.698516: - The battery is currently at 29% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 18:45:02.698535: - For the next 48 hours there will be no solar generation.
2026-08-18 18:45:02.698558: - You have enough battery to reach the next charge.
2026-08-18 18:45:02.698576: - Your next charge slot will be in 2 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 18:45:02.698593: 
2026-08-18 18:45:02.748635: Plan calculation took 1.12 seconds
2026-08-18 18:45:02.752397: No high rate period found
2026-08-18 18:45:02.811569: Import threshold used for optimisation was 8.0p
2026-08-18 18:45:02.897880: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75, 95: 08-20 18:30:00 - 08-20 19:00:00 @ 33.75]
2026-08-18 18:45:02.903776: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 18:45:02.903922: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:45:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:45:02.904029: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:45:02.904297: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:45:02.904389: No export window planned
2026-08-18 18:45:02.904516: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:45:02.904551: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:45:02.904684: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:45:02.904848: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:45:02.904909: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:45:02.904970: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:45:02.905085: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905213: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905238: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905268: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:02.905522: Inverter 0 count register writes 0
2026-08-18 18:45:02.920184: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 18:45:02.920346: Recompute is saving previous plan...
2026-08-18 18:45:02.923478: Best charge window [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 0%, 20-08 18:30:00 - 20-08 19:00:00 @ 33.75p 0% ]
2026-08-18 18:45:02.923656: Best export window [  ]
2026-08-18 18:45:02.924563: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:45:02.927687: Load divergence over 8.0 hours mean 590.74W, min 331.8W, max 1402.8W, std dev 253.12W, divergence 21.42%
2026-08-18 18:45:02.945353: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:45:02.945470: LoadML is_calculating False
2026-08-18 18:45:02.945533: Creating pool of 12 processes to match your CPU count
2026-08-18 18:45:03.039717: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 18:45:03.042546: Optimise levels pass started at 2026-08-18 18:45:03
2026-08-18 18:45:03.042634: Optimise all windows, total charge 95 export 1
2026-08-18 18:45:03.426661: >> Region optimisation pass width 960 gives best_metric 420.43p, best_cost 454.14p, best_cycle 51.07kWh, best_import 37.44kWh
2026-08-18 18:45:03.617702: >> Region optimisation pass width 480 gives best_metric 420.43p, best_cost 454.14p, best_cycle 51.07kWh, best_import 37.44kWh
2026-08-18 18:45:03.920030: >> Region optimisation pass width 240 gives best_metric 420.43p, best_cost 454.14p, best_cycle 51.07kWh, best_import 37.44kWh
2026-08-18 18:45:04.878944: >> Region optimisation pass width 120 gives best_metric 420.09p, best_cost 449.81p, best_cycle 51.63kWh, best_import 36.9kWh
2026-08-18 18:45:04.879194: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 57
2026-08-18 18:45:04.879426: Optimise levels pass ended at 2026-08-18 18:45:04, duration 1.8 seconds tried 215 combinations
2026-08-18 18:45:04.879486: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 420.09p, best_keep 2.84kWh, best_cycle 51.63kWh, best_carbon 0kg, best_import 36.9kWh
2026-08-18 18:45:04.894817: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 18:45:11.053208: Tweak plan optimisation started metric 298.88p, cost 308.54p
2026-08-18 18:45:11.350624: Tweak optimisation finished metric 298.88p, cost 308.54p, metric_keep 1.29kWh, cycle 29.48kWh, carbon 0kg, import 19.24kWh, changed 8 window(s)
2026-08-18 18:45:11.373069: Swap charge optimisation started metric 298.88p, cost 308.54p, min_improvement_swap 0.1p
2026-08-18 18:45:16.625375: Swap charge optimisation finished metric 298.88p, cost 308.54p
2026-08-18 18:45:16.753700: Pruned 1 dead plan slot(s) in 14 trial(s), nominal metric 297.14p -> 296.99p, plan now metric 299.31p, cost 306.53p, cycle 29.74kWh, import 18.99kWh
2026-08-18 18:45:16.766475: Raw charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 100%, 20-08 18:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:45:16.767102: Unclipped charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:45:16.767375: Unfiltered charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:45:16.767590: Filtered charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 25%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 22%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:45:16.804220: Previous plan best metric is 299.37 (cost 309.39) and new plan best metric is 298.88 (cost 308.54)
2026-08-18 18:45:16.804472: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 18:45:16.804623: Plan valid is now true after recompute was False
2026-08-18 18:45:16.833950: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 637.9p, metric_keep 127.39kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.73kWh, PV 0.0kWh
2026-08-18 18:45:16.967498: Battery has 4.5 hours left - now at 4.64kWh
2026-08-18 18:45:17.011878: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 664.3p, metric_keep 128.27kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.68kWh, PV 0.0kWh
2026-08-18 18:45:17.076702: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 365.51p, metric_keep 3.62kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.68kWh, PV 0.0kWh
2026-08-18 18:45:17.140148: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 354.02p, metric_keep 1.06kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.73kWh, PV 0.0kWh
2026-08-18 18:45:17.140219: Saving plan best values to HA entities
2026-08-18 18:45:17.268811: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 18:45:17.273964: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 18:45:17.279156: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.98kWh, house 0kWh, export 0.0kWh, metric 354.02p, metric10 365.51p
2026-08-18 18:45:17.348868: Marginal costs baseline metric (no standing charge): 307.3834
2026-08-18 18:45:17.577305: Marginal energy costs matrix computed: min=8.0 max=36.65
2026-08-18 18:45:17.690735: Rate array import [{'start': 1125, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1125, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:45:17.691530: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 18:45:17.691572: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:45:17.691595: - The battery is currently at 29% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 18:45:17.691615: - For the next 48 hours there will be no solar generation.
2026-08-18 18:45:17.691633: - You have enough battery to reach the next charge.
2026-08-18 18:45:17.691652: - Your next charge slot will be in 2 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 18:45:17.691671: 
2026-08-18 18:45:17.742737: Plan calculation took 14.82 seconds
2026-08-18 18:45:17.743184: Inverter 0: Type SK Sunsynk
2026-08-18 18:45:17.743260: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:45:17.743581: Reserve min: 7%, battery_min: 7%
2026-08-18 18:45:17.743704: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:45:17.744144: Inverter 0 SoC: 4.64kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 498W, current battery voltage 51.2V, grid power -60W, load power 553W, PV Power 0W
2026-08-18 18:45:17.744520: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:45:17.744669: Inverter 0 scheduled charge enable is False
2026-08-18 18:45:17.744722: Inverter 0 charge windows currently []
2026-08-18 18:45:17.744783: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:45:17.744931: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:45:17.745013: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:45:17.745085: Inverter 0 scheduled discharge enable is False
2026-08-18 18:45:17.745291: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:45:17.745335: Inverter 0 discharge windows currently []
2026-08-18 18:45:17.745370: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:45:17.745406: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:45:17.745455: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:45:17.794646: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 18:45:17.794794: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:45:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:45:17.794867: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:45:17.795072: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:45:17.795158: No export window planned
2026-08-18 18:45:17.795332: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:45:17.795374: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:45:17.795507: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:45:17.795642: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:45:17.795686: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:45:17.795728: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:45:17.795806: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.795838: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.795860: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.795883: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.795959: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796033: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:45:17.796296: Inverter 0 count register writes 0
2026-08-18 18:45:17.813710: Total inverter register writes now 867
2026-08-18 18:45:17.841431: Info: Completed run status Demand
2026-08-18 18:45:17.847747: Info: record_status Demand
2026-08-18 18:45:17.853546: Saved current settings to /config/predbat_config.json
2026-08-18 18:45:17.853796: Compare, best tariff: current metric 129.87p
2026-08-18 18:45:48.954005: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:45:48.954221: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:45:48.954265: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:45:48.954398: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:45:48.954435: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:45:48.954457: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:45:48.954475: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:47:49.169894: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:47:49.170119: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:47:49.170190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:47:49.170514: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:47:49.170580: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:47:49.170631: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:47:49.170665: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:49:33.679672: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 18:49:34.773635: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:49:34.773798: Zero load period starting at 2026-08-17T10:54:00+0100 (1911 minutes) for 189 minutes with base value 394.0
2026-08-18 18:49:34.775997: Processing 1345 30-minute periods for power integration
2026-08-18 18:49:34.906354: ML Component: Car charging hold False, car energy reported load False
2026-08-18 18:49:35.021188: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:49:35.139896: ML Temperature data points: 49276
2026-08-18 18:49:35.451716: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 18:49:35.497456: ML Component: Data fetch completed, load data age 60.0 days, 17336 data points
2026-08-18 18:49:35.498724: ML Component: No training needed, model age is 1.31 hours
2026-08-18 18:49:35.500138: ML Component: Generating predictions load data age 60.0 days, 17336 data points
2026-08-18 18:49:35.636280: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0497 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 18:49:36.240324: ML Component: Generated 576 predictions (total 31.39 kWh over 48h)
2026-08-18 18:49:36.271441: ML Component: Prediction cycle completed
2026-08-18 18:49:36.380620: ML Component: Saved 17336 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 18:50:00.675332: --------------- PredBat - update at 2026-08-18 18:50:00+01:00 with clock skew 0 minutes, minutes now 1130
2026-08-18 18:50:00.676526: Saved current settings to /config/predbat_config.json
2026-08-18 18:50:00.676721: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 18:50:00.676875: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:50:00.676948: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:50:00.693445: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:50:00.693585: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 18:50:00.693866: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:50:00.694460: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:50:00.694637: Predbat mode is set to Control charge & discharge
2026-08-18 18:50:00.883551: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:50:00.883688: Using load_power data to fill gaps in load_today data
2026-08-18 18:50:01.714550: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:50:01.714716: Zero load period starting at 2026-08-17T10:54:00+0100 (1916 minutes) for 189 minutes with base value 205.525
2026-08-18 18:50:01.716270: Processing 721 30-minute periods for power integration
2026-08-18 18:50:01.900123: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:50:01.900231: Car charging hold False, threshold 6.0kWh
2026-08-18 18:50:01.900272: Current data so far today: load 11.7kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:50:01.916676: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:50:01.916768: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:50:01.917627: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:50:01.917711: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:50:01.917769: Standing charge is set to 46.63p
2026-08-18 18:50:01.999802: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:50:02.000046: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:50:02.000202: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:50:02.001065: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:50:02.001152: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:50:02.001242: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:50:02.006193: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:50:02.006470: Import rates: min 8.0p, max 46.38p, average 27.36p
2026-08-18 18:50:02.044509: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:50:02.044612: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:50:02.045788: High export rate found rates in range 99p to -99p
2026-08-18 18:50:02.129250: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:50:02.129369: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:50:02.140147: Battery level now 4.64kWh, -1hr ago 5.26kWh, at midnight 6.84kWh, battery value change in the last hour -4.29p, change today -15.12p, rate_forward 6.87p
2026-08-18 18:50:02.140483: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 2.22p, import 2.22p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 18:50:02.189093: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 18:50:02.189219: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:50:02.265347: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:50:02.295521: Today's load divergence 99.69%, in-day adjustment 98.19%, damping 0.95x, yesterday 92.68% today 99.7% blend 21.53%
2026-08-18 18:50:02.295834: Today's predicted so far 11.72kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 11.72kWh forecast extra.
2026-08-18 18:50:02.295892: Today's actual load so far 11.67kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 18:50:02.321159: Inverter 0: Type SK Sunsynk
2026-08-18 18:50:02.321227: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:50:02.321371: Reserve min: 7%, battery_min: 7%
2026-08-18 18:50:02.321460: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:50:02.321684: Inverter 0 SoC: 4.64kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 494W, current battery voltage 51.2V, grid power -53W, load power 542W, PV Power 0W
2026-08-18 18:50:02.321808: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:50:02.321877: Inverter 0 scheduled charge enable is False
2026-08-18 18:50:02.321899: Inverter 0 charge windows currently []
2026-08-18 18:50:02.321920: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:50:02.322023: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:50:02.322055: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:50:02.322084: Inverter 0 scheduled discharge enable is False
2026-08-18 18:50:02.322184: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:50:02.322213: Inverter 0 discharge windows currently []
2026-08-18 18:50:02.322232: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:50:02.322246: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:50:02.322260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:50:02.372984: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:50:02.373090: Plan was last updated on 2026-08-18 18:45:00+01:00 and is now 5.0 minutes old
2026-08-18 18:50:02.373306: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:50:02.373357: Best export window [  ]
2026-08-18 18:50:02.374130: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:50:02.376687: Load divergence over 8.0 hours mean 590.75W, min 332.4W, max 1405.2W, std dev 255.48W, divergence 21.62%
2026-08-18 18:50:02.392147: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:50:02.392243: LoadML is_calculating False
2026-08-18 18:50:02.392294: Creating pool of 12 processes to match your CPU count
2026-08-18 18:50:02.511452: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.93p, metric_keep 127.07kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.65kWh, PV 0.0kWh
2026-08-18 18:50:02.617643: Battery has 4.5 hours left - now at 4.64kWh
2026-08-18 18:50:02.660272: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 666.21p, metric_keep 127.94kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.6kWh, PV 0.0kWh
2026-08-18 18:50:02.735823: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 370.14p, metric_keep 3.47kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.6kWh, PV 0.0kWh
2026-08-18 18:50:02.809783: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 359.92p, metric_keep 0.97kWh, min_soc 1.17kWh @ 08-18 23:25:00, load 31.65kWh, PV 0.0kWh
2026-08-18 18:50:02.809866: Saving plan best values to HA entities
2026-08-18 18:50:02.952362: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:50:02.957017: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 18:50:02.961640: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.42kWh, house 0kWh, export 0.0kWh, metric 359.92p, metric10 370.14p
2026-08-18 18:50:03.044361: Marginal costs baseline metric (no standing charge): 313.2876
2026-08-18 18:50:03.322650: Marginal energy costs matrix computed: min=8.0 max=36.45
2026-08-18 18:50:03.394532: Rate array import [{'start': 1130, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1130, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:50:03.395081: - Your estimated bill for today is £1.84 and tomorrow is £1.96
2026-08-18 18:50:03.395118: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:50:03.395136: - The battery is currently at 29% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 18:50:03.395151: - For the next 48 hours there will be no solar generation.
2026-08-18 18:50:03.395165: - You have enough battery to reach the next charge.
2026-08-18 18:50:03.395178: - Your next charge slot will be in 2 and three quarters hours where import rates will be very expensive (33.8p).
2026-08-18 18:50:03.395195: 
2026-08-18 18:50:03.448490: Plan calculation took 1.08 seconds
2026-08-18 18:50:03.453184: No high rate period found
2026-08-18 18:50:03.503516: Import threshold used for optimisation was 8.0p
2026-08-18 18:50:03.569854: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75, 95: 08-20 18:30:00 - 08-20 19:00:00 @ 33.75]
2026-08-18 18:50:03.577618: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 18:50:03.577754: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:50:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:50:03.577845: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:50:03.578113: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:50:03.578208: No export window planned
2026-08-18 18:50:03.578333: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:50:03.578367: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:50:03.578527: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:50:03.578706: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:50:03.578768: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:50:03.578823: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:50:03.578912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.578952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.578985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579027: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579084: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:50:03.579374: Inverter 0 count register writes 0
2026-08-18 18:50:03.597385: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 18:50:03.604043: Total inverter register writes now 867
2026-08-18 18:50:03.642092: Info: Completed run status Demand
2026-08-18 18:50:03.647838: Info: record_status Demand
2026-08-18 18:50:03.653846: Saved current settings to /config/predbat_config.json
2026-08-18 18:50:03.654167: Compare, best tariff: current metric 129.87p
2026-08-18 18:50:33.759960: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:50:33.760191: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:50:33.760239: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:50:33.760384: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:50:33.760427: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:50:33.760450: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:50:33.760474: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:52:34.001384: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:52:34.001694: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:52:34.001771: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:52:34.001976: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:52:34.002027: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:52:34.002069: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:52:34.002108: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:54:34.240641: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:54:34.240880: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:54:34.240915: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:54:34.241042: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:54:34.241072: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:54:34.241093: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:54:34.241111: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:55:00.363682: --------------- PredBat - update at 2026-08-18 18:55:00+01:00 with clock skew 0 minutes, minutes now 1135
2026-08-18 18:55:00.364491: Saved current settings to /config/predbat_config.json
2026-08-18 18:55:00.364649: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 18:55:00.364742: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 18:55:00.364877: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 18:55:00.382747: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 18:55: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-18 18:55:00.383023: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 18:55:00.383599: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 18:55:00.383719: Predbat mode is set to Control charge & discharge
2026-08-18 18:55:00.562252: Found 21602 load_today datapoints going back 28 days
2026-08-18 18:55:00.562381: Using load_power data to fill gaps in load_today data
2026-08-18 18:55:01.372474: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 18:55:01.372630: Zero load period starting at 2026-08-17T10:54:00+0100 (1921 minutes) for 189 minutes with base value 205.5
2026-08-18 18:55:01.373693: Processing 721 30-minute periods for power integration
2026-08-18 18:55:01.536168: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 18:55:01.536266: Car charging hold False, threshold 6.0kWh
2026-08-18 18:55:01.536303: Current data so far today: load 11.7kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 18:55:01.550278: Car 0 using Octopus Intelligent is unplugged
2026-08-18 18:55:01.550382: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 18:55:01.551220: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:55:01.551297: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 18:55:01.551343: Standing charge is set to 46.63p
2026-08-18 18:55:01.644681: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:55:01.644931: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:55:01.645113: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 18:55:01.646175: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 18:55:01.646279: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 18:55:01.646383: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 18:55:01.651686: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 18:55:01.652143: Import rates: min 8.0p, max 46.38p, average 27.34p
2026-08-18 18:55:01.695817: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 18:55:01.695972: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-18 18:55:01.697320: High export rate found rates in range 99p to -99p
2026-08-18 18:55:01.796293: Low Import rate found rates in range 8.0p to 33.75p
2026-08-18 18:55:01.796412: Car 0 on Octopus Intelligent, no active plan
2026-08-18 18:55:01.806689: Battery level now 4.64kWh, -1hr ago 5.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -15.12p, rate_forward 6.87p
2026-08-18 18:55:01.807039: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 2.06p, import 2.06p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 18:55:01.860308: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 18:55:01.860446: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 18:55:01.936325: Using weighted-bucket historical load forecast over 14 days
2026-08-18 18:55:01.965969: Today's load divergence 99.61%, in-day adjustment 98.15%, damping 0.95x, yesterday 92.68% today 99.62% blend 21.18%
2026-08-18 18:55:01.966117: Today's predicted so far 11.74kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 11.74kWh forecast extra.
2026-08-18 18:55:01.966183: Today's actual load so far 11.68kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 18:55:02.009833: Inverter 0: Type SK Sunsynk
2026-08-18 18:55:02.009939: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:55:02.010152: Reserve min: 7%, battery_min: 7%
2026-08-18 18:55:02.010254: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:55:02.010547: Inverter 0 SoC: 4.64kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 498W, current battery voltage 51.2V, grid power -54W, load power 555W, PV Power 0W
2026-08-18 18:55:02.010728: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:55:02.010836: Inverter 0 scheduled charge enable is False
2026-08-18 18:55:02.010884: Inverter 0 charge windows currently []
2026-08-18 18:55:02.010925: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:55:02.011070: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:55:02.011105: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:55:02.011138: Inverter 0 scheduled discharge enable is False
2026-08-18 18:55:02.011286: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:55:02.011321: Inverter 0 discharge windows currently []
2026-08-18 18:55:02.011340: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:55:02.011382: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:55:02.011433: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:55:02.078257: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 18:55:02.078384: Plan was last updated on 2026-08-18 18:45:00+01:00 and is now 10.0 minutes old
2026-08-18 18:55:02.078662: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 18:55:02.078709: Best export window [  ]
2026-08-18 18:55:02.079579: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:55:02.082772: Load divergence over 8.0 hours mean 590.39W, min 337.2W, max 1693.2W, std dev 285.79W, divergence 24.2%
2026-08-18 18:55:02.101251: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:55:02.101349: LoadML is_calculating False
2026-08-18 18:55:02.101568: Creating pool of 12 processes to match your CPU count
2026-08-18 18:55:02.200472: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 639.79p, metric_keep 126.9kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.71kWh, PV 0.0kWh
2026-08-18 18:55:02.300022: Battery has 4.42 hours left - now at 4.64kWh
2026-08-18 18:55:02.338456: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.14p, metric_keep 127.75kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.66kWh, PV 0.0kWh
2026-08-18 18:55:02.416647: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 372.92p, metric_keep 3.62kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.66kWh, PV 0.0kWh
2026-08-18 18:55:02.492428: predict best end_record 08-19 23:40:00, final soc 2.34kWh, metric 362.15p, metric_keep 1.05kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.71kWh, PV 0.0kWh
2026-08-18 18:55:02.492499: Saving plan best values to HA entities
2026-08-18 18:55:02.634509: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:55:02.639659: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 18:55:02.645790: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.88kWh, house 0.0kWh, export 0.0kWh, metric 362.15p, metric10 372.92p
2026-08-18 18:55:02.724074: Marginal costs baseline metric (no standing charge): 315.5201
2026-08-18 18:55:02.969354: Marginal energy costs matrix computed: min=8.0 max=36.67
2026-08-18 18:55:03.039232: Rate array import [{'start': 1135, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1135, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:55:03.039795: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 18:55:03.039836: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:55:03.039855: - The battery is currently at 29% and is in eco mode for the next 2 and a half hours.
2026-08-18 18:55:03.039870: - For the next 48 hours there will be no solar generation.
2026-08-18 18:55:03.039884: - You have enough battery to reach the next charge.
2026-08-18 18:55:03.039926: - Your next charge slot will be in 2 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 18:55:03.039962: 
2026-08-18 18:55:03.083983: Plan calculation took 1.01 seconds
2026-08-18 18:55:03.089261: No high rate period found
2026-08-18 18:55:03.140332: Import threshold used for optimisation was 8.0p
2026-08-18 18:55:03.202055: Low import rate windows [0: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 1: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 2: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 3: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 4: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 5: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 6: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 7: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 8: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 22: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 23: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 24: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 25: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 26: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 27: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 28: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 29: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 30: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 31: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 32: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 33: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 34: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 35: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 36: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 37: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 38: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 39: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 40: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 41: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 42: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 43: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 44: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 45: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 46: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 47: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75, 48: 08-19 19:00:00 - 08-19 19:30:00 @ 33.75, 49: 08-19 19:30:00 - 08-19 20:00:00 @ 33.75, 50: 08-19 20:00:00 - 08-19 20:30:00 @ 33.75, 51: 08-19 20:30:00 - 08-19 21:00:00 @ 33.75, 52: 08-19 21:00:00 - 08-19 21:30:00 @ 33.75, 53: 08-19 21:30:00 - 08-19 22:00:00 @ 33.75, 54: 08-19 22:00:00 - 08-19 22:30:00 @ 33.75, 55: 08-19 22:30:00 - 08-19 23:00:00 @ 33.75, 56: 08-19 23:00:00 - 08-19 23:30:00 @ 33.75, 57: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 58: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 59: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 60: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 61: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 62: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 63: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 64: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 65: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 66: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 67: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 68: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0, 69: 08-20 05:30:00 - 08-20 06:00:00 @ 33.75, 70: 08-20 06:00:00 - 08-20 06:30:00 @ 33.75, 71: 08-20 06:30:00 - 08-20 07:00:00 @ 33.75, 72: 08-20 07:00:00 - 08-20 07:30:00 @ 33.75, 73: 08-20 07:30:00 - 08-20 08:00:00 @ 33.75, 74: 08-20 08:00:00 - 08-20 08:30:00 @ 33.75, 75: 08-20 08:30:00 - 08-20 09:00:00 @ 33.75, 76: 08-20 09:00:00 - 08-20 09:30:00 @ 33.75, 77: 08-20 09:30:00 - 08-20 10:00:00 @ 33.75, 78: 08-20 10:00:00 - 08-20 10:30:00 @ 33.75, 79: 08-20 10:30:00 - 08-20 11:00:00 @ 33.75, 80: 08-20 11:00:00 - 08-20 11:30:00 @ 33.75, 81: 08-20 11:30:00 - 08-20 12:00:00 @ 33.75, 82: 08-20 12:00:00 - 08-20 12:30:00 @ 33.75, 83: 08-20 12:30:00 - 08-20 13:00:00 @ 33.75, 84: 08-20 13:00:00 - 08-20 13:30:00 @ 33.75, 85: 08-20 13:30:00 - 08-20 14:00:00 @ 33.75, 86: 08-20 14:00:00 - 08-20 14:30:00 @ 33.75, 87: 08-20 14:30:00 - 08-20 15:00:00 @ 33.75, 88: 08-20 15:00:00 - 08-20 15:30:00 @ 33.75, 89: 08-20 15:30:00 - 08-20 16:00:00 @ 33.75, 90: 08-20 16:00:00 - 08-20 16:30:00 @ 33.75, 91: 08-20 16:30:00 - 08-20 17:00:00 @ 33.75, 92: 08-20 17:00:00 - 08-20 17:30:00 @ 33.75, 93: 08-20 17:30:00 - 08-20 18:00:00 @ 33.75, 94: 08-20 18:00:00 - 08-20 18:30:00 @ 33.75, 95: 08-20 18:30:00 - 08-20 19:00:00 @ 33.75]
2026-08-18 18:55:03.207458: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 18:55:03.207563: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:55:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:55:03.207652: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:55:03.207853: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:55:03.207967: No export window planned
2026-08-18 18:55:03.208090: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:55:03.208120: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:55:03.208232: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:55:03.208376: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:55:03.208440: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:55:03.208496: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:55:03.208575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208693: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:03.208900: Inverter 0 count register writes 0
2026-08-18 18:55:03.221539: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 18:55:03.221663: Recompute is saving previous plan...
2026-08-18 18:55:03.224203: Best charge window [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 0%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 0%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 0%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 0%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 0%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 0%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 0%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 0%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 0%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 0%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 0%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 0%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 0%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 0%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 0%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 0%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 0%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 0%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 0%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 0%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 0%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 0%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 0%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 0%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 0%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 0%, 20-08 18:30:00 - 20-08 19:00:00 @ 33.75p 0% ]
2026-08-18 18:55:03.224285: Best export window [  ]
2026-08-18 18:55:03.224976: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 18:55:03.227544: Load divergence over 8.0 hours mean 590.39W, min 337.2W, max 1693.2W, std dev 285.79W, divergence 24.2%
2026-08-18 18:55:03.241945: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 18:55:03.242019: LoadML is_calculating False
2026-08-18 18:55:03.242067: Creating pool of 12 processes to match your CPU count
2026-08-18 18:55:03.318330: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 18:55:03.319744: Optimise levels pass started at 2026-08-18 18:55:03
2026-08-18 18:55:03.319794: Optimise all windows, total charge 95 export 1
2026-08-18 18:55:03.746880: >> Region optimisation pass width 960 gives best_metric 420.43p, best_cost 454.16p, best_cycle 51.19kWh, best_import 37.32kWh
2026-08-18 18:55:03.975755: >> Region optimisation pass width 480 gives best_metric 420.43p, best_cost 454.16p, best_cycle 51.19kWh, best_import 37.32kWh
2026-08-18 18:55:04.330960: >> Region optimisation pass width 240 gives best_metric 420.43p, best_cost 454.16p, best_cycle 51.19kWh, best_import 37.32kWh
2026-08-18 18:55:05.272825: >> Region optimisation pass width 120 gives best_metric 420.08p, best_cost 449.69p, best_cycle 51.78kWh, best_import 36.76kWh
2026-08-18 18:55:05.273173: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 57
2026-08-18 18:55:05.273233: Optimise levels pass ended at 2026-08-18 18:55:05, duration 2.0 seconds tried 215 combinations
2026-08-18 18:55:05.273290: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 420.08p, best_keep 2.1kWh, best_cycle 51.78kWh, best_carbon 0kg, best_import 36.76kWh
2026-08-18 18:55:05.288760: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 18:55:11.403437: Tweak plan optimisation started metric 299.08p, cost 308.86p
2026-08-18 18:55:11.710059: Tweak optimisation finished metric 299.08p, cost 308.86p, metric_keep 1.17kWh, cycle 29.46kWh, carbon 0kg, import 19.11kWh, changed 8 window(s)
2026-08-18 18:55:11.725679: Swap charge optimisation started metric 299.08p, cost 308.86p, min_improvement_swap 0.1p
2026-08-18 18:55:17.513986: Swap charge optimisation finished metric 299.08p, cost 308.86p
2026-08-18 18:55:17.669046: Pruned 2 dead plan slot(s) in 14 trial(s), nominal metric 297.42p -> 297.26p, plan now metric 299.61p, cost 306.84p, cycle 29.73kWh, import 18.86kWh
2026-08-18 18:55:17.680724: Raw charge windows [ 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 13%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 33.75p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 33.75p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 33.75p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 33.75p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 33.75p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.75p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 33.75p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 33.75p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 33.75p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100%, 20-08 05:30:00 - 20-08 06:00:00 @ 33.75p 100%, 20-08 06:00:00 - 20-08 06:30:00 @ 33.75p 100%, 20-08 06:30:00 - 20-08 07:00:00 @ 33.75p 100%, 20-08 07:00:00 - 20-08 07:30:00 @ 33.75p 100%, 20-08 07:30:00 - 20-08 08:00:00 @ 33.75p 100%, 20-08 08:00:00 - 20-08 08:30:00 @ 33.75p 100%, 20-08 08:30:00 - 20-08 09:00:00 @ 33.75p 100%, 20-08 09:00:00 - 20-08 09:30:00 @ 33.75p 100%, 20-08 09:30:00 - 20-08 10:00:00 @ 33.75p 100%, 20-08 10:00:00 - 20-08 10:30:00 @ 33.75p 100%, 20-08 10:30:00 - 20-08 11:00:00 @ 33.75p 100%, 20-08 11:00:00 - 20-08 11:30:00 @ 33.75p 100%, 20-08 11:30:00 - 20-08 12:00:00 @ 33.75p 100%, 20-08 12:00:00 - 20-08 12:30:00 @ 33.75p 100%, 20-08 12:30:00 - 20-08 13:00:00 @ 33.75p 100%, 20-08 13:00:00 - 20-08 13:30:00 @ 33.75p 100%, 20-08 13:30:00 - 20-08 14:00:00 @ 33.75p 100%, 20-08 14:00:00 - 20-08 14:30:00 @ 33.75p 100%, 20-08 14:30:00 - 20-08 15:00:00 @ 33.75p 100%, 20-08 15:00:00 - 20-08 15:30:00 @ 33.75p 100%, 20-08 15:30:00 - 20-08 16:00:00 @ 33.75p 100%, 20-08 16:00:00 - 20-08 16:30:00 @ 33.75p 100%, 20-08 16:30:00 - 20-08 17:00:00 @ 33.75p 100%, 20-08 17:00:00 - 20-08 17:30:00 @ 33.75p 100%, 20-08 17:30:00 - 20-08 18:00:00 @ 33.75p 100%, 20-08 18:00:00 - 20-08 18:30:00 @ 33.75p 100%, 20-08 18:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:55:17.681275: Unclipped charge windows [ 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 13%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:55:17.681516: Unfiltered charge windows [ 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 13%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:55:17.681689: Filtered charge windows [ 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 13%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-18 18:55:17.718219: Previous plan best metric is 299.37 (cost 309.34) and new plan best metric is 299.08 (cost 308.86)
2026-08-18 18:55:17.718466: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 18:55:17.718601: Plan valid is now true after recompute was False
2026-08-18 18:55:17.746456: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 638.26p, metric_keep 126.65kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.52kWh, PV 0.0kWh
2026-08-18 18:55:17.842794: Battery has 4.42 hours left - now at 4.64kWh
2026-08-18 18:55:17.885983: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 664.53p, metric_keep 127.49kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.46kWh, PV 0.0kWh
2026-08-18 18:55:17.963717: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 365.76p, metric_keep 3.6kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.46kWh, PV 0.0kWh
2026-08-18 18:55:18.042840: predict best end_record 08-19 23:30:00, final soc 1.56kWh, metric 353.96p, metric_keep 1.05kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.52kWh, PV 0.0kWh
2026-08-18 18:55:18.042924: Saving plan best values to HA entities
2026-08-18 18:55:18.204701: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 18:55:18.209971: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 18:55:18.214989: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.86kWh, house 0.0kWh, export 0.0kWh, metric 353.96p, metric10 365.76p
2026-08-18 18:55:18.277436: Marginal costs baseline metric (no standing charge): 307.3247
2026-08-18 18:55:18.532168: Marginal energy costs matrix computed: min=8.0 max=36.67
2026-08-18 18:55:18.596000: Rate array import [{'start': 1135, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1135, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 18:55:18.596636: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 18:55:18.596679: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 18:55:18.596702: - The battery is currently at 29% and is in eco mode for the next 2 and a half hours.
2026-08-18 18:55:18.596721: - For the next 48 hours there will be no solar generation.
2026-08-18 18:55:18.596742: - You have enough battery to reach the next charge.
2026-08-18 18:55:18.596761: - Your next charge slot will be in 2 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 18:55:18.596779: 
2026-08-18 18:55:18.646916: Plan calculation took 15.43 seconds
2026-08-18 18:55:18.647285: Inverter 0: Type SK Sunsynk
2026-08-18 18:55:18.647337: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 18:55:18.647606: Reserve min: 7%, battery_min: 7%
2026-08-18 18:55:18.647712: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 18:55:18.648112: Inverter 0 SoC: 4.64kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 507W, current battery voltage 51.2V, grid power -59W, load power 564W, PV Power 0W
2026-08-18 18:55:18.648402: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:55:18.648522: Inverter 0 scheduled charge enable is False
2026-08-18 18:55:18.648559: Inverter 0 charge windows currently []
2026-08-18 18:55:18.648596: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 18:55:18.648707: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:55:18.648747: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:55:18.648790: Inverter 0 scheduled discharge enable is False
2026-08-18 18:55:18.648921: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:55:18.648957: Inverter 0 discharge windows currently []
2026-08-18 18:55:18.648979: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:55:18.649000: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:55:18.649017: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:55:18.704418: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 18:55:18.704565: Inverter 0 disabled charge window while waiting for schedule (now 08-18 18:55:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 18:55:18.704637: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:55:18.704815: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:55:18.704894: No export window planned
2026-08-18 18:55:18.704996: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 18:55:18.705031: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 18:55:18.705163: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 18:55:18.705322: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 18:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 18:55:18.705391: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 18:55:18.705447: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 18:55:18.705531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705661: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 18:55:18.705990: Inverter 0 count register writes 0
2026-08-18 18:55:18.724108: Total inverter register writes now 867
2026-08-18 18:55:18.754589: Info: Completed run status Demand
2026-08-18 18:55:18.760531: Info: record_status Demand
2026-08-18 18:55:18.766117: Saved current settings to /config/predbat_config.json
2026-08-18 18:55:18.766416: Compare, best tariff: current metric 129.87p
2026-08-18 18:55:48.856070: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:55:48.856384: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:55:48.856448: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:55:48.856663: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:55:48.856725: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:55:48.856748: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:55:48.856767: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:56:42.896960: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 18:56:43.049972: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 18:57:49.072394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:57:49.072708: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:57:49.072770: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:57:49.072972: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:57:49.073019: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:57:49.073042: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:57:49.073084: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 18:59:49.305705: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 18:59:49.305935: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 18:59:49.305976: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 18:59:49.306129: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 18:59:49.306169: Note: Inverter does not support discharge freeze - disabled
2026-08-18 18:59:49.306191: Note: Inverter does not support charge freeze - disabled
2026-08-18 18:59:49.306216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:00:00.394189: --------------- PredBat - update at 2026-08-18 19:00:00+01:00 with clock skew 0 minutes, minutes now 1140
2026-08-18 19:00:00.394753: Saved current settings to /config/predbat_config.json
2026-08-18 19:00:00.394849: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 19:00:00.394922: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:00:00.395006: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:00:00.410719: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:00:00.410816: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:00:00.411000: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:00:00.411462: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:00:00.411609: Predbat mode is set to Control charge & discharge
2026-08-18 19:00:00.604533: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:00:00.604715: Using load_power data to fill gaps in load_today data
2026-08-18 19:00:01.490661: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:00:01.490829: Zero load period starting at 2026-08-17T10:54:00+0100 (1926 minutes) for 189 minutes with base value 205.475
2026-08-18 19:00:01.492007: Processing 721 30-minute periods for power integration
2026-08-18 19:00:01.652386: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:00:01.652503: Car charging hold False, threshold 6.0kWh
2026-08-18 19:00:01.652547: Current data so far today: load 11.82kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:00:01.669582: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:00:01.669689: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:00:01.670464: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:00:01.670561: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:00:01.670651: Standing charge is set to 46.63p
2026-08-18 19:00:01.759065: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:00:01.759492: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:00:01.759721: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:00:01.760944: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:00:01.761102: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:00:01.761272: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:00:01.766653: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:00:01.767011: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:00:01.810964: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:00:01.811097: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:00:01.812532: High export rate found rates in range 99p to -99p
2026-08-18 19:00:01.841209: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:00:01.841322: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:00:01.852843: Battery level now 4.64kWh, -1hr ago 5.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -15.12p, rate_forward 6.87p
2026-08-18 19:00:01.853322: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 1.9p, import 1.9p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:00:01.913742: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:00:01.913883: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:00:02.018657: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:00:02.052782: Today's load divergence 99.75%, in-day adjustment 98.29%, damping 0.95x, yesterday 92.68% today 99.76% blend 20.83%
2026-08-18 19:00:02.052881: Today's predicted so far 11.86kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 11.86kWh forecast extra.
2026-08-18 19:00:02.052928: Today's actual load so far 11.82kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 19:00:02.083193: Inverter 0: Type SK Sunsynk
2026-08-18 19:00:02.083273: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:00:02.083445: Reserve min: 7%, battery_min: 7%
2026-08-18 19:00:02.083514: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:00:02.083757: Inverter 0 SoC: 4.58kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 518W, current battery voltage 51.2V, grid power -58W, load power 571W, PV Power 0W
2026-08-18 19:00:02.083956: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:00:02.084072: Inverter 0 scheduled charge enable is False
2026-08-18 19:00:02.084103: Inverter 0 charge windows currently []
2026-08-18 19:00:02.084129: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:00:02.084238: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:00:02.084273: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:00:02.084308: Inverter 0 scheduled discharge enable is False
2026-08-18 19:00:02.084427: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:00:02.084463: Inverter 0 discharge windows currently []
2026-08-18 19:00:02.084485: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:00:02.084508: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:00:02.084526: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:00:02.145640: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:00:02.145746: Plan was last updated on 2026-08-18 18:55:00+01:00 and is now 5.0 minutes old
2026-08-18 19:00:02.145956: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 19:00:02.145996: Best export window [  ]
2026-08-18 19:00:02.146885: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:00:02.150061: Load divergence over 8.0 hours mean 590.54W, min 323.4W, max 1621.2W, std dev 273.74W, divergence 23.18%
2026-08-18 19:00:02.169004: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:00:02.169117: LoadML is_calculating False
2026-08-18 19:00:02.169201: Creating pool of 12 processes to match your CPU count
2026-08-18 19:00:02.304656: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.19p, metric_keep 126.86kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.69kWh, PV 0.0kWh
2026-08-18 19:00:02.423581: Battery has 4.33 hours left - now at 4.58kWh
2026-08-18 19:00:02.466039: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 665.33p, metric_keep 127.7kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.64kWh, PV 0.0kWh
2026-08-18 19:00:02.554375: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 369.4p, metric_keep 3.31kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.64kWh, PV 0.0kWh
2026-08-18 19:00:02.640451: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 358.25p, metric_keep 1.13kWh, min_soc 1.14kWh @ 08-18 23:25:00, load 31.69kWh, PV 0.0kWh
2026-08-18 19:00:02.640534: Saving plan best values to HA entities
2026-08-18 19:00:02.798434: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:00:02.804358: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 19:00:02.809615: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.39kWh, house 0.0kWh, export 0.0kWh, metric 358.25p, metric10 369.4p
2026-08-18 19:00:02.882028: Marginal costs baseline metric (no standing charge): 311.6184
2026-08-18 19:00:03.122746: Marginal energy costs matrix computed: min=8.0 max=36.81
2026-08-18 19:00:03.211871: Rate array import [{'start': 1140, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1140, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:00:03.212811: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 19:00:03.212877: - 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-18 19:00:03.212913: - The battery is currently at 29% and is in eco mode for the next 2 and a half hours.
2026-08-18 19:00:03.212975: - For the next 48 hours there will be no solar generation.
2026-08-18 19:00:03.213017: - You have enough battery to reach the next charge.
2026-08-18 19:00:03.213161: - Your next charge slot will be in 2 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 19:00:03.213222: 
2026-08-18 19:00:03.275320: Plan calculation took 1.13 seconds
2026-08-18 19:00:03.279485: No high rate period found
2026-08-18 19:00:03.332261: Import threshold used for optimisation was 8.0p
2026-08-18 19:00:03.392962: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:00:03.400522: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 19:00:03.400661: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:00:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:00:03.400806: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:00:03.401085: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:00:03.401185: No export window planned
2026-08-18 19:00:03.401305: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:00:03.401340: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:00:03.401472: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:00:03.401641: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:00:03.401703: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:00:03.401767: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:00:03.401898: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.401946: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.401975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402156: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:00:03.402527: Inverter 0 count register writes 0
2026-08-18 19:00:03.421358: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:00:03.427367: Total inverter register writes now 867
2026-08-18 19:00:03.465419: Info: Completed run status Demand
2026-08-18 19:00:03.472249: Info: record_status Demand
2026-08-18 19:00:03.479312: Saved current settings to /config/predbat_config.json
2026-08-18 19:00:03.479634: Compare, best tariff: current metric 129.87p
2026-08-18 19:00:14.404246: Successfully loaded apps.yaml from apps.yaml
2026-08-18 19:00:33.730923: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:00:33.731239: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:00:33.731296: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:00:33.731474: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:00:33.731524: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:00:33.731569: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:00:33.731613: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:02:00.805362: Info: HAHistory: Pruning history data started.
2026-08-18 19:02:00.807942: Info: HAHistory: Pruning history data completed.
2026-08-18 19:02:48.719960: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:02:48.720190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:02:48.720227: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:02:48.720355: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:02:48.720394: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:02:48.720416: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:02:48.720438: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:04:48.974929: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:04:48.975155: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:04:48.975225: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:04:48.975380: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:04:48.975418: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:04:48.975439: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:04:48.975457: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:05:00.058311: --------------- PredBat - update at 2026-08-18 19:05:00+01:00 with clock skew 0 minutes, minutes now 1145
2026-08-18 19:05:00.059060: Saved current settings to /config/predbat_config.json
2026-08-18 19:05:00.059194: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 19:05:00.059297: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:05:00.059390: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:05:00.077032: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:05:00.077135: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:05:00.077267: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:05:00.077672: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:05:00.077797: Predbat mode is set to Control charge & discharge
2026-08-18 19:05:00.288639: Found 21602 load_today datapoints going back 27 days
2026-08-18 19:05:00.288772: Using load_power data to fill gaps in load_today data
2026-08-18 19:05:00.980158: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:05:00.980333: Zero load period starting at 2026-08-17T10:54:00+0100 (1931 minutes) for 189 minutes with base value 205.45
2026-08-18 19:05:00.981692: Processing 721 30-minute periods for power integration
2026-08-18 19:05:01.142868: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:05:01.142986: Car charging hold False, threshold 6.0kWh
2026-08-18 19:05:01.143042: Current data so far today: load 11.85kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:05:01.156298: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:05:01.156395: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:05:01.157068: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:05:01.157167: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:05:01.157240: Standing charge is set to 46.63p
2026-08-18 19:05:01.254664: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:05:01.254945: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:05:01.255113: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:05:01.256087: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:05:01.256215: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:05:01.256368: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:05:01.261071: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:05:01.261430: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:05:01.298780: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:05:01.299267: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:05:01.300492: High export rate found rates in range 99p to -99p
2026-08-18 19:05:01.327258: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:05:01.327380: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:05:01.345265: Battery level now 4.58kWh, -1hr ago 5.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.74p, change today -15.56p, rate_forward 6.87p
2026-08-18 19:05:01.345661: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:05:01.413935: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:05:01.414103: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:05:01.532711: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:05:01.577913: Today's load divergence 99.43%, in-day adjustment 98.07%, damping 0.95x, yesterday 92.68% today 99.45% blend 20.49%
2026-08-18 19:05:01.577997: Today's predicted so far 11.95kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 11.95kWh forecast extra.
2026-08-18 19:05:01.578029: Today's actual load so far 11.86kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 19:05:01.621561: Inverter 0: Type SK Sunsynk
2026-08-18 19:05:01.621663: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:05:01.621910: Reserve min: 7%, battery_min: 7%
2026-08-18 19:05:01.622073: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:05:01.622509: Inverter 0 SoC: 4.58kW 29%, current charge rate 5000W, current discharge rate 5250W, current battery power 528W, current battery voltage 51.2V, grid power -56W, load power 573W, PV Power 0W
2026-08-18 19:05:01.623372: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:05:01.623504: Inverter 0 scheduled charge enable is False
2026-08-18 19:05:01.623567: Inverter 0 charge windows currently []
2026-08-18 19:05:01.623593: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:05:01.623739: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:05:01.626176: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:05:01.626265: Inverter 0 scheduled discharge enable is False
2026-08-18 19:05:01.626450: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:05:01.626544: Inverter 0 discharge windows currently []
2026-08-18 19:05:01.626577: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:05:01.626605: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:05:01.626642: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:05:01.690482: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:05:01.690570: Plan was last updated on 2026-08-18 18:55:00+01:00 and is now 10.0 minutes old
2026-08-18 19:05:01.690777: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 19:05:01.690816: Best export window [  ]
2026-08-18 19:05:01.691514: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:05:01.694163: Load divergence over 8.0 hours mean 590.59W, min 330.0W, max 1461.0W, std dev 282.8W, divergence 23.94%
2026-08-18 19:05:01.710187: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:05:01.710290: LoadML is_calculating False
2026-08-18 19:05:01.710339: Creating pool of 12 processes to match your CPU count
2026-08-18 19:05:01.820890: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.96p, metric_keep 126.65kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.76kWh, PV 0.0kWh
2026-08-18 19:05:01.965576: Battery has 4.25 hours left - now at 4.58kWh
2026-08-18 19:05:02.008017: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 664.09p, metric_keep 127.5kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.71kWh, PV 0.0kWh
2026-08-18 19:05:02.104544: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 370.95p, metric_keep 3.31kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.71kWh, PV 0.0kWh
2026-08-18 19:05:02.188440: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 360.69p, metric_keep 1.07kWh, min_soc 1.15kWh @ 08-18 23:25:00, load 31.76kWh, PV 0.0kWh
2026-08-18 19:05:02.188633: Saving plan best values to HA entities
2026-08-18 19:05:02.364985: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:05:02.370423: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:05:02.377143: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.85kWh, house 0.0kWh, export 0.0kWh, metric 360.69p, metric10 370.95p
2026-08-18 19:05:02.459736: Marginal costs baseline metric (no standing charge): 314.0561
2026-08-18 19:05:02.731126: Marginal energy costs matrix computed: min=8.0 max=36.68
2026-08-18 19:05:02.827434: Rate array import [{'start': 1145, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1145, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:05:02.828160: - Your estimated bill for today is £1.80 and tomorrow is £1.96
2026-08-18 19:05:02.828214: - 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-18 19:05:02.828255: - The battery is currently at 29% and is in eco mode for the next 2 and a half hours.
2026-08-18 19:05:02.828275: - For the next 48 hours there will be no solar generation.
2026-08-18 19:05:02.828293: - You have enough battery to reach the next charge.
2026-08-18 19:05:02.828318: - Your next charge slot will be in 2 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 19:05:02.828336: 
2026-08-18 19:05:02.882561: Plan calculation took 1.19 seconds
2026-08-18 19:05:02.885999: No high rate period found
2026-08-18 19:05:02.934239: Import threshold used for optimisation was 8.0p
2026-08-18 19:05:02.978801: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:05:02.988357: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 29%, target 16%
2026-08-18 19:05:02.988567: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:05:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:05:02.988669: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:05:02.988977: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:05:02.989144: No export window planned
2026-08-18 19:05:02.989276: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:05:02.989301: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:05:02.989496: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:05:02.989746: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:05:02.989812: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:05:02.989880: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:05:02.990065: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990095: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990289: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:02.990659: Inverter 0 count register writes 0
2026-08-18 19:05:03.012586: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 19:05:03.012733: Recompute is saving previous plan...
2026-08-18 19:05:03.013462: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 19:05:03.013502: Best export window [  ]
2026-08-18 19:05:03.014178: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:05:03.016641: Load divergence over 8.0 hours mean 590.59W, min 330.0W, max 1461.0W, std dev 282.8W, divergence 23.94%
2026-08-18 19:05:03.030323: Calculating data from yesterday for savings calculation
2026-08-18 19:05:03.040581: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 19:05:03.079659: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 19:05:03.092423: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.23p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 19:05:03.110626: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.57p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 19:05:03.151868: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.12kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh,  final_soc 6.7kWh and battery_value 46.05kWh
2026-08-18 19:05:03.229980: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.82p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 19:05:03.230103: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.05) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 19:05:03.241073: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:05:03.241176: LoadML is_calculating False
2026-08-18 19:05:03.241243: Creating pool of 12 processes to match your CPU count
2026-08-18 19:05:03.331254: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 19:05:03.332192: Optimise levels pass started at 2026-08-18 19:05:03
2026-08-18 19:05:03.332254: Optimise all windows, total charge 24 export 1
2026-08-18 19:05:03.684359: >> Region optimisation pass width 960 gives best_metric 419.35p, best_cost 450.5p, best_cycle 50.95kWh, best_import 37.01kWh
2026-08-18 19:05:03.842999: >> Region optimisation pass width 480 gives best_metric 419.35p, best_cost 450.5p, best_cycle 50.95kWh, best_import 37.01kWh
2026-08-18 19:05:04.059763: >> Region optimisation pass width 240 gives best_metric 419.35p, best_cost 450.5p, best_cycle 50.95kWh, best_import 37.01kWh
2026-08-18 19:05:04.976284: >> Region optimisation pass width 120 gives best_metric 418.76p, best_cost 448.47p, best_cycle 51.21kWh, best_import 36.76kWh
2026-08-18 19:05:04.976533: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 19:05:04.976635: Optimise levels pass ended at 2026-08-18 19:05:04, duration 1.6 seconds tried 61 combinations
2026-08-18 19:05:04.976749: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 418.76p, best_keep 1.85kWh, best_cycle 51.21kWh, best_carbon 0kg, best_import 36.76kWh
2026-08-18 19:05:04.995857: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 19:05:08.127198: Tweak plan optimisation started metric 297.89p, cost 307.05p
2026-08-18 19:05:08.496304: Tweak optimisation finished metric 297.89p, cost 307.05p, metric_keep 1.85kWh, cycle 29.42kWh, carbon 0kg, import 19.08kWh, changed 8 window(s)
2026-08-18 19:05:08.518912: Swap charge optimisation started metric 297.89p, cost 307.05p, min_improvement_swap 0.1p
2026-08-18 19:05:09.334603: Swap charge optimisation finished metric 297.89p, cost 307.05p
2026-08-18 19:05:09.447090: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 296.2p -> 295.96p, plan now metric 299.17p, cost 302.86p, cycle 29.43kWh, import 18.55kWh
2026-08-18 19:05:09.458293: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:05:09.458634: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:05:09.458868: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:05:09.459041: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:05:09.490088: Previous plan best metric is 297.78 (cost 307.84) and new plan best metric is 297.89 (cost 307.05)
2026-08-18 19:05:09.490249: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 19:05:09.490359: Plan valid is now true after recompute was False
2026-08-18 19:05:09.513651: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.38p, metric_keep 126.4kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.56kWh, PV 0.0kWh
2026-08-18 19:05:09.605681: Battery has 4.25 hours left - now at 4.58kWh
2026-08-18 19:05:09.653137: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 662.43p, metric_keep 127.24kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.5kWh, PV 0.0kWh
2026-08-18 19:05:09.773233: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 363.73p, metric_keep 3.29kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.5kWh, PV 0.0kWh
2026-08-18 19:05:09.865043: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 352.44p, metric_keep 1.07kWh, min_soc 1.15kWh @ 08-18 23:25:00, load 31.56kWh, PV 0.0kWh
2026-08-18 19:05:09.865137: Saving plan best values to HA entities
2026-08-18 19:05:10.022589: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:05:10.029768: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:05:10.036299: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.82kWh, house 0.0kWh, export 0.0kWh, metric 352.44p, metric10 363.73p
2026-08-18 19:05:10.116210: Marginal costs baseline metric (no standing charge): 305.8014
2026-08-18 19:05:10.397837: Marginal energy costs matrix computed: min=8.0 max=36.68
2026-08-18 19:05:10.464953: Rate array import [{'start': 1145, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1145, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:05:10.465656: - Your estimated bill for today is £1.80 and tomorrow is £1.96
2026-08-18 19:05:10.465704: - 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-18 19:05:10.465730: - The battery is currently at 29% and is in eco mode for the next 2 and a half hours.
2026-08-18 19:05:10.465774: - For the next 48 hours there will be no solar generation.
2026-08-18 19:05:10.465819: - You have enough battery to reach the next charge.
2026-08-18 19:05:10.465881: - Your next charge slot will be in 2 and a half hours where import rates will be very expensive (33.8p).
2026-08-18 19:05:10.465952: 
2026-08-18 19:05:10.517153: Plan calculation took 7.50 seconds
2026-08-18 19:05:10.517546: Inverter 0: Type SK Sunsynk
2026-08-18 19:05:10.517620: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:05:10.517964: Reserve min: 7%, battery_min: 7%
2026-08-18 19:05:10.518101: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:05:10.518461: Inverter 0 SoC: 4.48kW 28%, current charge rate 5000W, current discharge rate 5250W, current battery power 517W, current battery voltage 51.2V, grid power -60W, load power 563W, PV Power 0W
2026-08-18 19:05:10.518683: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:05:10.518782: Inverter 0 scheduled charge enable is False
2026-08-18 19:05:10.518818: Inverter 0 charge windows currently []
2026-08-18 19:05:10.518865: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:05:10.518982: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:05:10.519021: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:05:10.519056: Inverter 0 scheduled discharge enable is False
2026-08-18 19:05:10.519177: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:05:10.519212: Inverter 0 discharge windows currently []
2026-08-18 19:05:10.519234: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:05:10.519252: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:05:10.519276: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:05:10.591439: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 28%, target 16%
2026-08-18 19:05:10.591617: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:05:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:05:10.591718: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:05:10.592032: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:05:10.592130: No export window planned
2026-08-18 19:05:10.592302: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:05:10.592344: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:05:10.592519: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:05:10.592716: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:05:10.592778: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:05:10.592895: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:05:10.592997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593036: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593064: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593091: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593115: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593181: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593300: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:05:10.593428: Inverter 0 count register writes 0
2026-08-18 19:05:10.612970: Total inverter register writes now 867
2026-08-18 19:05:10.657245: Info: Completed run status Demand
2026-08-18 19:05:10.664550: Info: record_status Demand
2026-08-18 19:05:10.671426: Saved current settings to /config/predbat_config.json
2026-08-18 19:05:10.671749: Compare, best tariff: current metric 129.87p
2026-08-18 19:05:48.783333: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:05:48.783612: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:05:48.783675: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:05:48.783847: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:05:48.783889: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:05:48.783951: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:05:48.783987: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:07:49.065547: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:07:49.065864: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:07:49.065928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:07:49.066130: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:07:49.066178: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:07:49.066209: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:07:49.066244: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:09:49.277129: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:09:49.277403: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:09:49.277463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:09:49.277672: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:09:49.277737: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:09:49.277764: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:09:49.277798: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:10:00.367493: --------------- PredBat - update at 2026-08-18 19:10:00+01:00 with clock skew 0 minutes, minutes now 1150
2026-08-18 19:10:00.368260: Saved current settings to /config/predbat_config.json
2026-08-18 19:10:00.368376: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 19:10:00.368459: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:10:00.368530: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:10:00.387002: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:10:00.387114: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:10:00.387272: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:10:00.387774: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:10:00.387894: Predbat mode is set to Control charge & discharge
2026-08-18 19:10:00.541871: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:10:00.541991: Using load_power data to fill gaps in load_today data
2026-08-18 19:10:01.230600: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:10:01.230774: Zero load period starting at 2026-08-17T10:54:00+0100 (1936 minutes) for 189 minutes with base value 205.425
2026-08-18 19:10:01.231875: Processing 721 30-minute periods for power integration
2026-08-18 19:10:01.411552: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:10:01.411801: Car charging hold False, threshold 6.0kWh
2026-08-18 19:10:01.412327: Current data so far today: load 11.95kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:10:01.429630: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:10:01.430118: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:10:01.431571: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:10:01.431732: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:10:01.431817: Standing charge is set to 46.63p
2026-08-18 19:10:01.509765: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:10:01.510055: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:10:01.510296: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:10:01.511665: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:10:01.513532: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:10:01.515180: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:10:01.522438: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:10:01.522936: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:10:01.575361: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:10:01.576634: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:10:01.578930: High export rate found rates in range 99p to -99p
2026-08-18 19:10:01.611811: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:10:01.611971: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:10:01.630275: Battery level now 4.58kWh, -1hr ago 4.96kWh, at midnight 6.84kWh, battery value change in the last hour -2.64p, change today -15.56p, rate_forward 6.87p
2026-08-18 19:10:01.631796: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.47p, import 1.47p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:10:01.719187: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:10:01.719331: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:10:01.814080: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:10:01.856021: Today's load divergence 99.82%, in-day adjustment 98.39%, damping 0.95x, yesterday 92.68% today 99.83% blend 20.14%
2026-08-18 19:10:01.856140: Today's predicted so far 11.96kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 11.96kWh forecast extra.
2026-08-18 19:10:01.856191: Today's actual load so far 11.93kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 19:10:01.904869: Inverter 0: Type SK Sunsynk
2026-08-18 19:10:01.904946: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:10:01.905114: Reserve min: 7%, battery_min: 7%
2026-08-18 19:10:01.905181: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:10:01.905432: Inverter 0 SoC: 4.48kW 28%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -58W, load power 558W, PV Power 0W
2026-08-18 19:10:01.905579: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:10:01.905662: Inverter 0 scheduled charge enable is False
2026-08-18 19:10:01.905705: Inverter 0 charge windows currently []
2026-08-18 19:10:01.905734: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:10:01.905850: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:10:01.905885: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:10:01.905920: Inverter 0 scheduled discharge enable is False
2026-08-18 19:10:01.906041: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:10:01.906077: Inverter 0 discharge windows currently []
2026-08-18 19:10:01.906099: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:10:01.906117: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:10:01.906142: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:10:01.966420: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:10:01.966517: Plan was last updated on 2026-08-18 19:05:00+01:00 and is now 5.0 minutes old
2026-08-18 19:10:01.966742: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 19:10:01.966787: Best export window [  ]
2026-08-18 19:10:01.967665: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:10:01.971322: Load divergence over 8.0 hours mean 592.11W, min 349.8W, max 1428.0W, std dev 264.16W, divergence 22.31%
2026-08-18 19:10:01.989998: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:10:01.990086: LoadML is_calculating False
2026-08-18 19:10:01.990142: Creating pool of 12 processes to match your CPU count
2026-08-18 19:10:02.096169: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 638.82p, metric_keep 126.85kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.71kWh, PV 0.0kWh
2026-08-18 19:10:02.209307: Battery has 4.17 hours left - now at 4.48kWh
2026-08-18 19:10:02.252494: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 664.81p, metric_keep 127.66kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.66kWh, PV 0.0kWh
2026-08-18 19:10:02.365803: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 368.8p, metric_keep 3.25kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 32.66kWh, PV 0.0kWh
2026-08-18 19:10:02.474435: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 358.36p, metric_keep 1.06kWh, min_soc 1.16kWh @ 08-18 23:25:00, load 31.71kWh, PV 0.0kWh
2026-08-18 19:10:02.474644: Saving plan best values to HA entities
2026-08-18 19:10:02.739206: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:10:02.744040: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 19:10:02.748925: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.38kWh, house 0.0kWh, export 0.0kWh, metric 358.36p, metric10 368.8p
2026-08-18 19:10:02.825133: Marginal costs baseline metric (no standing charge): 311.7292
2026-08-18 19:10:03.085356: Marginal energy costs matrix computed: min=8.0 max=36.65
2026-08-18 19:10:03.152958: Rate array import [{'start': 1150, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1150, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:10:03.153559: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 19:10:03.153601: - 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-18 19:10:03.153624: - The battery is currently at 28% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 19:10:03.153643: - For the next 48 hours there will be no solar generation.
2026-08-18 19:10:03.153669: - You have enough battery to reach the next charge.
2026-08-18 19:10:03.153701: - Your next charge slot will be in 2 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 19:10:03.153721: 
2026-08-18 19:10:03.199724: Plan calculation took 1.23 seconds
2026-08-18 19:10:03.203420: No high rate period found
2026-08-18 19:10:03.246106: Import threshold used for optimisation was 8.0p
2026-08-18 19:10:03.291185: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:10:03.296387: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 28%, target 16%
2026-08-18 19:10:03.296502: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:10:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:10:03.296627: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:10:03.296897: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:10:03.296998: No export window planned
2026-08-18 19:10:03.297124: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:10:03.297158: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:10:03.297291: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:10:03.297464: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:10:03.297525: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:10:03.297588: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:10:03.297676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297732: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297762: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297788: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.297996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.298020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.298053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.298077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.298101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:10:03.298121: Inverter 0 count register writes 0
2026-08-18 19:10:03.313778: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:10:03.318914: Total inverter register writes now 867
2026-08-18 19:10:03.349815: Info: Completed run status Demand
2026-08-18 19:10:03.355964: Info: record_status Demand
2026-08-18 19:10:03.362538: Saved current settings to /config/predbat_config.json
2026-08-18 19:10:03.362940: Compare, best tariff: current metric 129.87p
2026-08-18 19:10:34.466044: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:10:34.466367: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:10:34.466423: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:10:34.466644: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:10:34.466731: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:10:34.466783: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:10:34.466812: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:12:48.693985: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:12:48.694263: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:12:48.694313: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:12:48.694477: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:12:48.694521: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:12:48.694543: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:12:48.694566: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:14:48.965776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:14:48.965999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:14:48.966032: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:14:48.966159: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:14:48.966197: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:14:48.966219: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:14:48.966237: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:15:00.057246: --------------- PredBat - update at 2026-08-18 19:15:00+01:00 with clock skew 0 minutes, minutes now 1155
2026-08-18 19:15:00.057946: Saved current settings to /config/predbat_config.json
2026-08-18 19:15:00.058060: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 19:15:00.058126: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:15:00.058231: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:15:00.076553: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:15:00.076705: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:15:00.076910: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:15:00.077435: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:15:00.077588: Predbat mode is set to Control charge & discharge
2026-08-18 19:15:00.285541: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:15:00.285690: Using load_power data to fill gaps in load_today data
2026-08-18 19:15:01.098807: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:15:01.099247: Zero load period starting at 2026-08-17T10:54:00+0100 (1941 minutes) for 189 minutes with base value 205.4
2026-08-18 19:15:01.100661: Processing 721 30-minute periods for power integration
2026-08-18 19:15:01.261907: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:15:01.262008: Car charging hold False, threshold 6.0kWh
2026-08-18 19:15:01.262043: Current data so far today: load 12.0kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:15:01.274998: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:15:01.275065: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:15:01.275691: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:15:01.275762: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:15:01.275805: Standing charge is set to 46.63p
2026-08-18 19:15:01.349732: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:15:01.350006: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:15:01.350290: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:15:01.351430: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:15:01.351556: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:15:01.351726: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:15:01.357221: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:15:01.357606: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:15:01.401375: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:15:01.401473: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:15:01.402789: High export rate found rates in range 99p to -99p
2026-08-18 19:15:01.430955: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:15:01.431032: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:15:01.442210: Battery level now 4.48kWh, -1hr ago 4.96kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -16.22p, rate_forward 6.87p
2026-08-18 19:15:01.442725: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.27p, import 1.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:15:01.501040: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:15:01.501190: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:15:01.598613: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:15:01.633985: Today's load divergence 100.01%, in-day adjustment 98.56%, damping 0.95x, yesterday 92.68% today 100.01% blend 19.79%
2026-08-18 19:15:01.634065: Today's predicted so far 11.96kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 11.96kWh forecast extra.
2026-08-18 19:15:01.634097: Today's actual load so far 11.96kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 19:15:01.665500: Inverter 0: Type SK Sunsynk
2026-08-18 19:15:01.665585: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:15:01.665802: Reserve min: 7%, battery_min: 7%
2026-08-18 19:15:01.665936: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:15:01.666255: Inverter 0 SoC: 4.48kW 28%, current charge rate 5000W, current discharge rate 5250W, current battery power 471W, current battery voltage 51.2V, grid power -54W, load power 522W, PV Power 0W
2026-08-18 19:15:01.666413: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:15:01.666501: Inverter 0 scheduled charge enable is False
2026-08-18 19:15:01.666549: Inverter 0 charge windows currently []
2026-08-18 19:15:01.666613: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:15:01.666844: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:15:01.666891: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:15:01.666930: Inverter 0 scheduled discharge enable is False
2026-08-18 19:15:01.667055: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:15:01.667092: Inverter 0 discharge windows currently []
2026-08-18 19:15:01.667115: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:15:01.667137: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:15:01.667154: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:15:01.728211: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:15:01.728310: Plan was last updated on 2026-08-18 19:05:00+01:00 and is now 10.0 minutes old
2026-08-18 19:15:01.728527: Best charge window [ 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 16%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 18:00:00 @ 33.75p 100% ]
2026-08-18 19:15:01.728568: Best export window [  ]
2026-08-18 19:15:01.729444: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:15:01.732604: Load divergence over 8.0 hours mean 593.59W, min 331.8W, max 1402.8W, std dev 251.16W, divergence 21.16%
2026-08-18 19:15:01.750911: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:15:01.751004: LoadML is_calculating False
2026-08-18 19:15:01.751062: Creating pool of 12 processes to match your CPU count
2026-08-18 19:15:01.872482: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 638.72p, metric_keep 126.78kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.85kWh, PV 0.0kWh
2026-08-18 19:15:02.031758: Battery has 4.08 hours left - now at 4.48kWh
2026-08-18 19:15:02.088383: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 664.72p, metric_keep 127.58kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.79kWh, PV 0.0kWh
2026-08-18 19:15:02.180705: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 371.49p, metric_keep 3.39kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.79kWh, PV 0.0kWh
2026-08-18 19:15:02.265098: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 362.27p, metric_keep 0.87kWh, min_soc 1.19kWh @ 08-18 23:25:00, load 31.85kWh, PV 0.0kWh
2026-08-18 19:15:02.265180: Saving plan best values to HA entities
2026-08-18 19:15:02.422916: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:15:02.427990: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:15:02.433411: Best charging limit SoC's [2.5, 16.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.87kWh, house 0kWh, export 0.0kWh, metric 362.27p, metric10 371.49p
2026-08-18 19:15:02.512474: Marginal costs baseline metric (no standing charge): 315.6394
2026-08-18 19:15:02.781509: Marginal energy costs matrix computed: min=8.0 max=36.26
2026-08-18 19:15:02.847819: Rate array import [{'start': 1155, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1155, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:15:02.848435: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 19:15:02.848485: - 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-18 19:15:02.848508: - The battery is currently at 28% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 19:15:02.848549: - For the next 48 hours there will be no solar generation.
2026-08-18 19:15:02.848569: - You have enough battery to reach the next charge.
2026-08-18 19:15:02.848586: - Your next charge slot will be in 2 and a quarter hours where import rates will be very expensive (33.8p).
2026-08-18 19:15:02.848627: 
2026-08-18 19:15:02.895364: Plan calculation took 1.17 seconds
2026-08-18 19:15:02.900532: No high rate period found
2026-08-18 19:15:02.941563: Import threshold used for optimisation was 8.0p
2026-08-18 19:15:02.994058: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:15:02.999373: Inverter 0 Charge window will be: 2026-08-18 21:30:00+01:00 - 2026-08-18 22:00:00+01:00 - current SoC 28%, target 16%
2026-08-18 19:15:02.999498: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:15:00 target set_window_minutes 30 charge start time 08-18 21:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:15:02.999789: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:15:03.000131: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:15:03.000241: No export window planned
2026-08-18 19:15:03.000404: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:15:03.000447: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:15:03.000587: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:15:03.000795: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:15:03.000857: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:15:03.000927: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:15:03.001024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001154: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001206: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:03.001483: Inverter 0 count register writes 0
2026-08-18 19:15:03.016297: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 19:15:03.016446: Recompute is saving previous plan...
2026-08-18 19:15:03.017322: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 19:15:03.017369: Best export window [  ]
2026-08-18 19:15:03.018253: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:15:03.021403: Load divergence over 8.0 hours mean 593.59W, min 331.8W, max 1402.8W, std dev 251.16W, divergence 21.16%
2026-08-18 19:15:03.039780: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:15:03.039870: LoadML is_calculating False
2026-08-18 19:15:03.039966: Creating pool of 12 processes to match your CPU count
2026-08-18 19:15:03.126524: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 19:15:03.127379: Optimise levels pass started at 2026-08-18 19:15:03
2026-08-18 19:15:03.127428: Optimise all windows, total charge 24 export 1
2026-08-18 19:15:03.472977: >> Region optimisation pass width 960 gives best_metric 420.83p, best_cost 453.35p, best_cycle 51.21kWh, best_import 37.3kWh
2026-08-18 19:15:03.625797: >> Region optimisation pass width 480 gives best_metric 420.83p, best_cost 453.35p, best_cycle 51.21kWh, best_import 37.3kWh
2026-08-18 19:15:03.862817: >> Region optimisation pass width 240 gives best_metric 420.83p, best_cost 453.35p, best_cycle 51.21kWh, best_import 37.3kWh
2026-08-18 19:15:04.494967: >> Region optimisation pass width 120 gives best_metric 420.67p, best_cost 451.34p, best_cycle 51.47kWh, best_import 37.05kWh
2026-08-18 19:15:04.495150: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 19:15:04.495218: Optimise levels pass ended at 2026-08-18 19:15:04, duration 1.4 seconds tried 61 combinations
2026-08-18 19:15:04.495290: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 420.67p, best_keep 1.97kWh, best_cycle 51.47kWh, best_carbon 0kg, best_import 37.05kWh
2026-08-18 19:15:04.513635: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 19:15:07.048418: Tweak plan optimisation started metric 298.7p, cost 307.75p
2026-08-18 19:15:07.407143: Tweak optimisation finished metric 298.7p, cost 307.75p, metric_keep 1.97kWh, cycle 29.33kWh, carbon 0kg, import 19.1kWh, changed 8 window(s)
2026-08-18 19:15:07.426823: Swap charge optimisation started metric 298.7p, cost 307.75p, min_improvement_swap 0.1p
2026-08-18 19:15:08.016353: Swap charge optimisation finished metric 298.7p, cost 307.75p
2026-08-18 19:15:08.121755: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 297.03p -> 296.87p, plan now metric 299.12p, cost 305.73p, cycle 29.59kWh, import 18.85kWh
2026-08-18 19:15:08.129503: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:15:08.129790: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:15:08.129994: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:15:08.130131: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:15:08.159162: Previous plan best metric is 298.98 (cost 309.38) and new plan best metric is 298.7 (cost 307.75)
2026-08-18 19:15:08.159317: New plan is a cost-neutral improvement but less fragmented (2 vs 3 segments), using new plan
2026-08-18 19:15:08.159347: Plan valid is now true after recompute was False
2026-08-18 19:15:08.182609: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 637.11p, metric_keep 126.52kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.64kWh, PV 0.0kWh
2026-08-18 19:15:08.288170: Battery has 4.08 hours left - now at 4.48kWh
2026-08-18 19:15:08.324275: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 663.04p, metric_keep 127.32kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.58kWh, PV 0.0kWh
2026-08-18 19:15:08.398076: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 364.25p, metric_keep 4.8kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.58kWh, PV 0.0kWh
2026-08-18 19:15:08.469817: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 352.37p, metric_keep 1.97kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.64kWh, PV 0.0kWh
2026-08-18 19:15:08.469893: Saving plan best values to HA entities
2026-08-18 19:15:08.616526: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:15:08.622543: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:15:08.628316: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.12kWh, export 0.0kWh, metric 352.37p, metric10 364.25p
2026-08-18 19:15:08.706110: Marginal costs baseline metric (no standing charge): 305.7346
2026-08-18 19:15:08.925698: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:15:08.990217: Rate array import [{'start': 1155, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1155, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:15:08.990732: - Your estimated bill for today is £1.80 and tomorrow is £1.97
2026-08-18 19:15:08.990768: - 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-18 19:15:08.990786: - The battery is currently at 28% and is in eco mode for the next 4 and a quarter hours.
2026-08-18 19:15:08.990801: - For the next 48 hours there will be no solar generation.
2026-08-18 19:15:08.990816: - You have enough battery to reach the next charge.
2026-08-18 19:15:08.990829: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 19:15:08.990843: 
2026-08-18 19:15:09.036053: Plan calculation took 6.02 seconds
2026-08-18 19:15:09.036472: Inverter 0: Type SK Sunsynk
2026-08-18 19:15:09.036530: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:15:09.036758: Reserve min: 7%, battery_min: 7%
2026-08-18 19:15:09.036839: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:15:09.037178: Inverter 0 SoC: 4.48kW 28%, current charge rate 5000W, current discharge rate 5250W, current battery power 471W, current battery voltage 51.2V, grid power -54W, load power 522W, PV Power 0W
2026-08-18 19:15:09.037475: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:15:09.037621: Inverter 0 scheduled charge enable is False
2026-08-18 19:15:09.037655: Inverter 0 charge windows currently []
2026-08-18 19:15:09.037687: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:15:09.037807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:15:09.037846: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:15:09.037882: Inverter 0 scheduled discharge enable is False
2026-08-18 19:15:09.038015: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:15:09.038051: Inverter 0 discharge windows currently []
2026-08-18 19:15:09.038098: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:15:09.038119: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:15:09.038141: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:15:09.087456: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 28%, target 100%
2026-08-18 19:15:09.087617: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:15:09.087695: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:15:09.087879: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:15:09.087986: No export window planned
2026-08-18 19:15:09.088104: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:15:09.088140: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:15:09.088273: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:15:09.088429: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:15:09.088480: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:15:09.088545: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:15:09.088656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088703: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088737: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088769: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088850: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088913: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.088977: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.089003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.089033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.089058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.089082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:15:09.089107: Inverter 0 count register writes 0
2026-08-18 19:15:09.108097: Total inverter register writes now 867
2026-08-18 19:15:09.137851: Info: Completed run status Demand
2026-08-18 19:15:09.145418: Info: record_status Demand
2026-08-18 19:15:09.152459: Saved current settings to /config/predbat_config.json
2026-08-18 19:15:09.152818: Compare, best tariff: current metric 129.87p
2026-08-18 19:15:49.273304: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:15:49.273529: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:15:49.273619: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:15:49.273757: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:15:49.273794: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:15:49.273816: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:15:49.273834: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:17:49.503973: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:17:49.504160: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:17:49.504188: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:17:49.504290: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:17:49.504321: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:17:49.504338: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:17:49.504353: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:19:38.642165: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 19:19:39.513961: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:19:39.514110: Zero load period starting at 2026-08-17T10:54:00+0100 (1941 minutes) for 189 minutes with base value 393.85
2026-08-18 19:19:39.515259: Processing 1345 30-minute periods for power integration
2026-08-18 19:19:39.598457: ML Component: Car charging hold False, car energy reported load False
2026-08-18 19:19:39.682581: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:19:39.768433: ML Temperature data points: 49246
2026-08-18 19:19:40.010802: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 19:19:40.048663: ML Component: Data fetch completed, load data age 60.0 days, 17342 data points
2026-08-18 19:19:40.050903: ML Component: No training needed, model age is 1.81 hours
2026-08-18 19:19:40.050993: ML Component: Generating predictions load data age 60.0 days, 17342 data points
2026-08-18 19:19:40.176049: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0405 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 19:19:40.694378: ML Component: Generated 576 predictions (total 31.33 kWh over 48h)
2026-08-18 19:19:40.726229: ML Component: Prediction cycle completed
2026-08-18 19:19:40.834261: ML Component: Saved 17342 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 19:20:00.747127: --------------- PredBat - update at 2026-08-18 19:20:00+01:00 with clock skew 0 minutes, minutes now 1160
2026-08-18 19:20:00.747945: Saved current settings to /config/predbat_config.json
2026-08-18 19:20:00.748143: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 19:20:00.748220: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:20:00.748289: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:20:00.765204: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:20:00.765316: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:20:00.765514: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:20:00.766022: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:20:00.766143: Predbat mode is set to Control charge & discharge
2026-08-18 19:20:00.965329: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:20:00.965497: Using load_power data to fill gaps in load_today data
2026-08-18 19:20:01.847241: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:20:01.847481: Zero load period starting at 2026-08-17T10:54:00+0100 (1946 minutes) for 189 minutes with base value 205.375
2026-08-18 19:20:01.849019: Processing 721 30-minute periods for power integration
2026-08-18 19:20:02.081851: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:20:02.082000: Car charging hold False, threshold 6.0kWh
2026-08-18 19:20:02.082964: Current data so far today: load 12.05kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:20:02.105178: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:20:02.105624: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:20:02.106418: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:20:02.107456: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:20:02.107569: Standing charge is set to 46.63p
2026-08-18 19:20:02.213873: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:20:02.214191: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:20:02.214364: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:20:02.215262: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:20:02.215362: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:20:02.215518: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:20:02.220440: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:20:02.220888: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:20:02.272115: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:20:02.272263: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:20:02.273706: High export rate found rates in range 99p to -99p
2026-08-18 19:20:02.304641: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:20:02.305419: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:20:02.317098: Battery level now 4.48kWh, -1hr ago 4.96kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -16.22p, rate_forward 6.87p
2026-08-18 19:20:02.317565: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.06p, import 1.06p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:20:02.375613: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:20:02.375760: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:20:02.468370: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:20:02.503051: Today's load divergence 100.08%, in-day adjustment 98.63%, damping 0.95x, yesterday 92.68% today 100.07% blend 19.44%
2026-08-18 19:20:02.503160: Today's predicted so far 11.99kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 11.99kWh forecast extra.
2026-08-18 19:20:02.503193: Today's actual load so far 12.0kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 19:20:02.536165: Inverter 0: Type SK Sunsynk
2026-08-18 19:20:02.536246: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:20:02.536411: Reserve min: 7%, battery_min: 7%
2026-08-18 19:20:02.536495: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:20:02.536744: Inverter 0 SoC: 4.48kW 28%, current charge rate 5000W, current discharge rate 5250W, current battery power 558W, current battery voltage 51.2V, grid power -50W, load power 606W, PV Power 0W
2026-08-18 19:20:02.536891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:20:02.536975: Inverter 0 scheduled charge enable is False
2026-08-18 19:20:02.537011: Inverter 0 charge windows currently []
2026-08-18 19:20:02.537037: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:20:02.537138: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:20:02.537173: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:20:02.537209: Inverter 0 scheduled discharge enable is False
2026-08-18 19:20:02.537324: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:20:02.537360: Inverter 0 discharge windows currently []
2026-08-18 19:20:02.537382: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:20:02.537405: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:20:02.537422: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:20:02.593189: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:20:02.593273: Plan was last updated on 2026-08-18 19:15:00+01:00 and is now 5.0 minutes old
2026-08-18 19:20:02.593495: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:20:02.593535: Best export window [  ]
2026-08-18 19:20:02.594326: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:20:02.597010: Load divergence over 8.0 hours mean 596.75W, min 332.4W, max 1405.2W, std dev 251.48W, divergence 21.07%
2026-08-18 19:20:02.613775: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:20:02.613872: LoadML is_calculating False
2026-08-18 19:20:02.613927: Creating pool of 12 processes to match your CPU count
2026-08-18 19:20:02.714407: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.05p, metric_keep 126.35kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.74kWh, PV 0.0kWh
2026-08-18 19:20:02.816684: Battery has 4.08 hours left - now at 4.48kWh
2026-08-18 19:20:02.855067: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 661.9p, metric_keep 127.11kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.67kWh, PV 0.0kWh
2026-08-18 19:20:02.923833: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 365.84p, metric_keep 4.44kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.67kWh, PV 0.0kWh
2026-08-18 19:20:02.992352: predict best end_record 08-19 23:35:00, final soc 1.97kWh, metric 354.79p, metric_keep 1.67kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.74kWh, PV 0.0kWh
2026-08-18 19:20:02.992461: Saving plan best values to HA entities
2026-08-18 19:20:03.164579: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:20:03.169625: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:20:03.174666: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.07kWh, export 0.0kWh, metric 354.79p, metric10 365.84p
2026-08-18 19:20:03.254369: Marginal costs baseline metric (no standing charge): 308.1595
2026-08-18 19:20:03.519214: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:20:03.589822: Rate array import [{'start': 1160, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1160, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:20:03.590741: - Your estimated bill for today is £1.79 and tomorrow is £1.97
2026-08-18 19:20:03.590810: - 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-18 19:20:03.590851: - The battery is currently at 28% and is in eco mode for the next 4 and a quarter hours.
2026-08-18 19:20:03.590891: - For the next 48 hours there will be no solar generation.
2026-08-18 19:20:03.590927: - You have enough battery to reach the next charge.
2026-08-18 19:20:03.590953: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 19:20:03.590982: 
2026-08-18 19:20:03.640677: Plan calculation took 1.05 seconds
2026-08-18 19:20:03.643641: No high rate period found
2026-08-18 19:20:03.692552: Import threshold used for optimisation was 8.0p
2026-08-18 19:20:03.741220: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:20:03.746807: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 28%, target 100%
2026-08-18 19:20:03.746925: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:20:03.747030: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:20:03.747271: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:20:03.747367: No export window planned
2026-08-18 19:20:03.747512: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:20:03.747549: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:20:03.747683: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:20:03.747859: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:20:03.747987: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:20:03.748064: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:20:03.748161: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748236: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748262: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748315: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:03.748618: Inverter 0 count register writes 0
2026-08-18 19:20:03.764697: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:20:03.770790: Total inverter register writes now 867
2026-08-18 19:20:03.804776: Info: Completed run status Demand
2026-08-18 19:20:03.810842: Info: record_status Demand
2026-08-18 19:20:03.817012: Saved current settings to /config/predbat_config.json
2026-08-18 19:20:03.817385: Compare, best tariff: current metric 129.87p
2026-08-18 19:20:04.884164: Info: Refresh config entities due to their age of 480.0 minutes
2026-08-18 19:20:04.884289: Refreshing Predbat configuration
2026-08-18 19:20:05.539483: Saved current settings to /config/predbat_config.json
2026-08-18 19:20:05.540797: Validation of apps.yaml was successful
2026-08-18 19:20:05.540947: --------------- PredBat - update at 2026-08-18 19:20:00+01:00 with clock skew 0 minutes, minutes now 1160
2026-08-18 19:20:05.541466: Saved current settings to /config/predbat_config.json
2026-08-18 19:20:05.541605: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.1 minutes
2026-08-18 19:20:05.541729: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:20:05.541808: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:20:05.556527: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:20:05.556662: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:20:05.556868: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:20:05.557307: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:20:05.557429: Predbat mode is set to Control charge & discharge
2026-08-18 19:20:05.734547: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:20:05.734673: Using load_power data to fill gaps in load_today data
2026-08-18 19:20:06.590765: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:20:06.591036: Zero load period starting at 2026-08-17T10:54:00+0100 (1946 minutes) for 189 minutes with base value 205.375
2026-08-18 19:20:06.592526: Processing 721 30-minute periods for power integration
2026-08-18 19:20:06.788792: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:20:06.788917: Car charging hold False, threshold 6.0kWh
2026-08-18 19:20:06.788972: Current data so far today: load 12.05kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:20:06.806429: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:20:06.807641: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:20:06.808485: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:20:06.808585: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:20:06.808649: Standing charge is set to 46.63p
2026-08-18 19:20:06.912223: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:20:06.913029: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:20:06.913307: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:20:06.914464: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:20:06.914581: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:20:06.914705: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:20:06.923135: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:20:06.926763: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:20:06.983374: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:20:06.984333: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:20:06.987896: High export rate found rates in range 99p to -99p
2026-08-18 19:20:07.011305: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:20:07.012289: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:20:07.039980: Battery level now 4.48kWh, -1hr ago 4.96kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -16.22p, rate_forward 6.87p
2026-08-18 19:20:07.040403: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.06p, import 1.06p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:20:07.104937: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:20:07.105052: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:20:07.180855: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:20:07.210019: Today's load divergence 100.06%, in-day adjustment 98.62%, damping 0.95x, yesterday 92.68% today 100.06% blend 19.44%
2026-08-18 19:20:07.210090: Today's predicted so far 11.99kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 11.99kWh forecast extra.
2026-08-18 19:20:07.210117: Today's actual load so far 12.0kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 19:20:07.242173: Inverter 0: Type SK Sunsynk
2026-08-18 19:20:07.242259: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:20:07.242433: Reserve min: 7%, battery_min: 7%
2026-08-18 19:20:07.242528: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:20:07.242797: Inverter 0 SoC: 4.48kW 28%, current charge rate 5000W, current discharge rate 5250W, current battery power 558W, current battery voltage 51.2V, grid power -50W, load power 606W, PV Power 0W
2026-08-18 19:20:07.242953: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:20:07.243043: Inverter 0 scheduled charge enable is False
2026-08-18 19:20:07.243079: Inverter 0 charge windows currently []
2026-08-18 19:20:07.243109: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:20:07.243224: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:20:07.243264: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:20:07.243300: Inverter 0 scheduled discharge enable is False
2026-08-18 19:20:07.243423: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:20:07.243482: Inverter 0 discharge windows currently []
2026-08-18 19:20:07.243506: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:20:07.243524: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:20:07.243546: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:20:07.303164: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:20:07.303240: Will recompute the plan as it is invalid
2026-08-18 19:20:07.303334: Recompute is saving previous plan...
2026-08-18 19:20:07.304609: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 19:20:07.304676: Best export window [  ]
2026-08-18 19:20:07.305571: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:20:07.308806: Load divergence over 8.0 hours mean 596.75W, min 332.4W, max 1405.2W, std dev 251.48W, divergence 21.07%
2026-08-18 19:20:07.329015: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:20:07.329131: LoadML is_calculating False
2026-08-18 19:20:07.329189: Creating pool of 12 processes to match your CPU count
2026-08-18 19:20:07.412727: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 19:20:07.413658: Optimise levels pass started at 2026-08-18 19:20:07
2026-08-18 19:20:07.413729: Optimise all windows, total charge 24 export 1
2026-08-18 19:20:07.767988: >> Region optimisation pass width 960 gives best_metric 419.15p, best_cost 449.48p, best_cycle 50.99kWh, best_import 36.98kWh
2026-08-18 19:20:07.919764: >> Region optimisation pass width 480 gives best_metric 419.15p, best_cost 449.48p, best_cycle 50.99kWh, best_import 36.98kWh
2026-08-18 19:20:08.175651: >> Region optimisation pass width 240 gives best_metric 419.15p, best_cost 449.48p, best_cycle 50.99kWh, best_import 36.98kWh
2026-08-18 19:20:08.986885: >> Region optimisation pass width 120 gives best_metric 418.58p, best_cost 447.49p, best_cycle 51.25kWh, best_import 36.73kWh
2026-08-18 19:20:08.987090: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 19:20:08.987163: Optimise levels pass ended at 2026-08-18 19:20:08, duration 1.6 seconds tried 61 combinations
2026-08-18 19:20:08.987243: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 418.58p, best_keep 1.67kWh, best_cycle 51.25kWh, best_carbon 0kg, best_import 36.73kWh
2026-08-18 19:20:09.001863: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 19:20:11.679049: Tweak plan optimisation started metric 296.63p, cost 306.03p
2026-08-18 19:20:12.003991: Tweak optimisation finished metric 296.63p, cost 306.03p, metric_keep 1.67kWh, cycle 29.32kWh, carbon 0kg, import 19.05kWh, changed 8 window(s)
2026-08-18 19:20:12.019155: Swap charge optimisation started metric 296.63p, cost 306.03p, min_improvement_swap 0.1p
2026-08-18 19:20:12.790513: Swap charge optimisation finished metric 296.63p, cost 306.03p
2026-08-18 19:20:12.918851: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 294.98p -> 294.72p, plan now metric 297.86p, cost 301.89p, cycle 29.32kWh, import 18.53kWh
2026-08-18 19:20:12.927295: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:20:12.928550: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:20:12.930764: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:20:12.930977: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:20:12.971337: Previous plan best metric is 296.63 (cost 306.03) and new plan best metric is 296.63 (cost 306.03)
2026-08-18 19:20:12.971646: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 19:20:12.972736: Plan valid is now true after recompute was False
2026-08-18 19:20:13.003786: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.26p, metric_keep 126.22kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.64kWh, PV 0.0kWh
2026-08-18 19:20:13.121225: Battery has 4.08 hours left - now at 4.48kWh
2026-08-18 19:20:13.164117: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 661.09p, metric_keep 126.98kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.57kWh, PV 0.0kWh
2026-08-18 19:20:13.232904: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 362.24p, metric_keep 4.42kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.57kWh, PV 0.0kWh
2026-08-18 19:20:13.298807: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 350.67p, metric_keep 1.67kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.64kWh, PV 0.0kWh
2026-08-18 19:20:13.298880: Saving plan best values to HA entities
2026-08-18 19:20:13.438209: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:20:13.443712: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:20:13.448980: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.07kWh, export 0.0kWh, metric 350.67p, metric10 362.24p
2026-08-18 19:20:13.513230: Marginal costs baseline metric (no standing charge): 304.0351
2026-08-18 19:20:13.726638: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:20:13.786933: Rate array import [{'start': 1160, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1160, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:20:13.787446: - Your estimated bill for today is £1.79 and tomorrow is £1.97
2026-08-18 19:20:13.787482: - 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-18 19:20:13.787500: - The battery is currently at 28% and is in eco mode for the next 4 and a quarter hours.
2026-08-18 19:20:13.787515: - For the next 48 hours there will be no solar generation.
2026-08-18 19:20:13.787530: - You have enough battery to reach the next charge.
2026-08-18 19:20:13.787543: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 19:20:13.787557: 
2026-08-18 19:20:13.832650: Plan calculation took 6.53 seconds
2026-08-18 19:20:13.838308: Saved plan to storage
2026-08-18 19:20:13.842972: No high rate period found
2026-08-18 19:20:13.893932: Import threshold used for optimisation was 8.0p
2026-08-18 19:20:13.934935: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:20:13.940201: Inverter 0: Type SK Sunsynk
2026-08-18 19:20:13.940276: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:20:13.940574: Reserve min: 7%, battery_min: 7%
2026-08-18 19:20:13.940695: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:20:13.941082: Inverter 0 SoC: 4.36kW 27%, current charge rate 5000W, current discharge rate 5250W, current battery power 535W, current battery voltage 51.2V, grid power -54W, load power 590W, PV Power 0W
2026-08-18 19:20:13.941350: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:20:13.941503: Inverter 0 scheduled charge enable is False
2026-08-18 19:20:13.941563: Inverter 0 charge windows currently []
2026-08-18 19:20:13.941619: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:20:13.941799: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:20:13.941849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:20:13.941888: Inverter 0 scheduled discharge enable is False
2026-08-18 19:20:13.942023: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:20:13.942060: Inverter 0 discharge windows currently []
2026-08-18 19:20:13.942084: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:20:13.942106: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:20:13.942124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:20:13.989682: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 27%, target 100%
2026-08-18 19:20:13.989833: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:20:13.989891: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:20:13.990034: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:20:13.990102: No export window planned
2026-08-18 19:20:13.990187: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:20:13.990215: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:20:13.990322: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:20:13.990470: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:20:13.990516: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:20:13.990589: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:20:13.990663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990695: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990761: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990800: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:20:13.990987: Inverter 0 count register writes 0
2026-08-18 19:20:14.009921: Total inverter register writes now 867
2026-08-18 19:20:14.040623: Info: Completed run status Demand
2026-08-18 19:20:14.046615: Info: record_status Demand
2026-08-18 19:20:14.058313: Saved current settings to /config/predbat_config.json
2026-08-18 19:20:14.058617: Compare, best tariff: current metric 129.87p
2026-08-18 19:20:14.126340: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-18 19:20:49.166589: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:20:49.166817: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:20:49.166859: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:20:49.166995: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:20:49.167033: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:20:49.167054: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:20:49.167072: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:22:49.387707: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:22:49.388058: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:22:49.388120: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:22:49.388354: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:22:49.388412: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:22:49.388453: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:22:49.388495: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:24:49.622170: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:24:49.622388: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:24:49.622421: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:24:49.622606: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:24:49.622644: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:24:49.622666: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:24:49.622685: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:25:00.708706: --------------- PredBat - update at 2026-08-18 19:25:00+01:00 with clock skew 0 minutes, minutes now 1165
2026-08-18 19:25:00.709490: Saved current settings to /config/predbat_config.json
2026-08-18 19:25:00.709590: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 19:25:00.709686: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:25:00.709774: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:25:00.737041: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:25:00.737181: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:25:00.737339: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:25:00.737853: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:25:00.738601: Predbat mode is set to Control charge & discharge
2026-08-18 19:25:00.904363: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:25:00.904644: Using load_power data to fill gaps in load_today data
2026-08-18 19:25:01.752767: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:25:01.752950: Zero load period starting at 2026-08-17T10:54:00+0100 (1951 minutes) for 189 minutes with base value 205.35
2026-08-18 19:25:01.754296: Processing 721 30-minute periods for power integration
2026-08-18 19:25:01.939986: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:25:01.940117: Car charging hold False, threshold 6.0kWh
2026-08-18 19:25:01.940181: Current data so far today: load 12.1kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:25:01.957364: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:25:01.957452: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:25:01.958385: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:25:01.958472: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:25:01.958550: Standing charge is set to 46.63p
2026-08-18 19:25:02.047789: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:25:02.048061: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:25:02.048324: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:25:02.049484: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:25:02.049592: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:25:02.049762: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:25:02.055082: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:25:02.055940: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:25:02.098376: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:25:02.098473: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:25:02.099713: High export rate found rates in range 99p to -99p
2026-08-18 19:25:02.128270: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:25:02.128356: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:25:02.139259: Battery level now 4.48kWh, -1hr ago 4.96kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -16.22p, rate_forward 6.87p
2026-08-18 19:25:02.139606: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:25:02.192340: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:25:02.192478: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:25:02.285326: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:25:02.321127: Today's load divergence 100.24%, in-day adjustment 98.78%, damping 0.95x, yesterday 92.68% today 100.22% blend 19.1%
2026-08-18 19:25:02.321217: Today's predicted so far 12.01kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 12.01kWh forecast extra.
2026-08-18 19:25:02.321250: Today's actual load so far 12.05kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 19:25:02.351956: Inverter 0: Type SK Sunsynk
2026-08-18 19:25:02.352029: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:25:02.352284: Reserve min: 7%, battery_min: 7%
2026-08-18 19:25:02.352398: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:25:02.352769: Inverter 0 SoC: 4.36kW 27%, current charge rate 5000W, current discharge rate 5250W, current battery power 525W, current battery voltage 51.2V, grid power -54W, load power 576W, PV Power 0W
2026-08-18 19:25:02.352968: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:25:02.353080: Inverter 0 scheduled charge enable is False
2026-08-18 19:25:02.353135: Inverter 0 charge windows currently []
2026-08-18 19:25:02.353163: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:25:02.353322: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:25:02.353365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:25:02.353403: Inverter 0 scheduled discharge enable is False
2026-08-18 19:25:02.353530: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:25:02.353587: Inverter 0 discharge windows currently []
2026-08-18 19:25:02.353642: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:25:02.353664: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:25:02.353684: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:25:02.408669: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:25:02.408770: Plan was last updated on 2026-08-18 19:20:00+01:00 and is now 5.0 minutes old
2026-08-18 19:25:02.408986: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:25:02.409026: Best export window [  ]
2026-08-18 19:25:02.409823: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:25:02.413063: Load divergence over 8.0 hours mean 599.77W, min 337.2W, max 1693.2W, std dev 280.17W, divergence 23.36%
2026-08-18 19:25:02.429418: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:25:02.429507: LoadML is_calculating False
2026-08-18 19:25:02.429559: Creating pool of 12 processes to match your CPU count
2026-08-18 19:25:02.530857: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.03p, metric_keep 126.69kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.75kWh, PV 0.0kWh
2026-08-18 19:25:02.652381: Battery has 3.92 hours left - now at 4.36kWh
2026-08-18 19:25:02.701184: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 664.91p, metric_keep 127.4kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.69kWh, PV 0.0kWh
2026-08-18 19:25:02.788527: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 368.91p, metric_keep 4.79kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.69kWh, PV 0.0kWh
2026-08-18 19:25:02.880777: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 357.25p, metric_keep 2.01kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.75kWh, PV 0.0kWh
2026-08-18 19:25:02.881241: Saving plan best values to HA entities
2026-08-18 19:25:03.035677: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:25:03.041056: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 19:25:03.046124: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.23kWh, house 0.15kWh, export 0.0kWh, metric 357.25p, metric10 368.91p
2026-08-18 19:25:03.119403: Marginal costs baseline metric (no standing charge): 310.6144
2026-08-18 19:25:03.354328: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:25:03.410317: Rate array import [{'start': 1165, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1165, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:25:03.410911: - Your estimated bill for today is £1.81 and tomorrow is £1.96
2026-08-18 19:25:03.410957: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 19:25:03.410991: - The battery is currently at 27% and is in eco mode for the next 4 hours.
2026-08-18 19:25:03.411021: - For the next 48 hours there will be no solar generation.
2026-08-18 19:25:03.411051: - You have enough battery to reach the next charge.
2026-08-18 19:25:03.411079: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-18 19:25:03.411133: 
2026-08-18 19:25:03.460856: Plan calculation took 1.05 seconds
2026-08-18 19:25:03.464612: No high rate period found
2026-08-18 19:25:03.519037: Import threshold used for optimisation was 8.0p
2026-08-18 19:25:03.567569: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:25:03.572315: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 27%, target 100%
2026-08-18 19:25:03.572411: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:25:03.572493: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:25:03.572695: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:25:03.572771: No export window planned
2026-08-18 19:25:03.572871: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:25:03.572900: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:25:03.573008: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:25:03.573171: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:25:03.573224: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:25:03.573279: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:25:03.573355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573381: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573431: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573477: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:25:03.573721: Inverter 0 count register writes 0
2026-08-18 19:25:03.586246: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:25:03.590500: Total inverter register writes now 867
2026-08-18 19:25:03.620192: Info: Completed run status Demand
2026-08-18 19:25:03.626340: Info: record_status Demand
2026-08-18 19:25:03.632437: Saved current settings to /config/predbat_config.json
2026-08-18 19:25:03.632694: Compare, best tariff: current metric 129.87p
2026-08-18 19:25:33.738565: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:25:33.738893: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:25:33.738967: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:25:33.739247: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:25:33.739307: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:25:33.739331: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:25:33.739350: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:27:33.978807: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:27:33.979093: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:27:33.979151: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:27:33.979357: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:27:33.979415: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:27:33.979440: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:27:33.979471: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:29:34.205953: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:29:34.206175: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:29:34.206209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:29:34.206335: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:29:34.206373: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:29:34.206395: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:29:34.206413: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:30:00.307113: --------------- PredBat - update at 2026-08-18 19:30:00+01:00 with clock skew 0 minutes, minutes now 1170
2026-08-18 19:30:00.308236: Saved current settings to /config/predbat_config.json
2026-08-18 19:30:00.308409: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 19:30:00.308534: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:30:00.308656: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:30:00.330978: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:30:00.331184: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:30:00.331379: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:30:00.331949: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:30:00.332086: Predbat mode is set to Control charge & discharge
2026-08-18 19:30:00.515956: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:30:00.516228: Using load_power data to fill gaps in load_today data
2026-08-18 19:30:01.240647: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:30:01.240823: Zero load period starting at 2026-08-17T10:54:00+0100 (1956 minutes) for 189 minutes with base value 205.325
2026-08-18 19:30:01.241911: Processing 721 30-minute periods for power integration
2026-08-18 19:30:01.412584: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:30:01.412697: Car charging hold False, threshold 6.0kWh
2026-08-18 19:30:01.412734: Current data so far today: load 12.15kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:30:01.426614: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:30:01.426725: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:30:01.427378: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:30:01.427479: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:30:01.427556: Standing charge is set to 46.63p
2026-08-18 19:30:01.505103: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:30:01.505510: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:30:01.506252: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:30:01.507155: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:30:01.507244: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:30:01.507345: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:30:01.511761: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:30:01.512103: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:30:01.546406: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:30:01.546494: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:30:01.547551: High export rate found rates in range 99p to -99p
2026-08-18 19:30:01.571972: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:30:01.572073: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:30:01.581801: Battery level now 4.36kWh, -1hr ago 4.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.02p, change today -17.04p, rate_forward 6.87p
2026-08-18 19:30:01.582182: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.64p, import 0.64p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:30:01.635819: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:30:01.636031: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:30:01.712278: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:30:01.742659: Today's load divergence 99.93%, in-day adjustment 98.57%, damping 0.95x, yesterday 92.68% today 99.93% blend 18.75%
2026-08-18 19:30:01.742740: Today's predicted so far 12.14kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 12.14kWh forecast extra.
2026-08-18 19:30:01.742767: Today's actual load so far 12.13kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 19:30:01.772702: Inverter 0: Type SK Sunsynk
2026-08-18 19:30:01.772776: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:30:01.772960: Reserve min: 7%, battery_min: 7%
2026-08-18 19:30:01.773026: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:30:01.773243: Inverter 0 SoC: 4.32kW 27%, current charge rate 5000W, current discharge rate 5250W, current battery power 520W, current battery voltage 51.2V, grid power -54W, load power 573W, PV Power 0W
2026-08-18 19:30:01.773369: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:30:01.773440: Inverter 0 scheduled charge enable is False
2026-08-18 19:30:01.773464: Inverter 0 charge windows currently []
2026-08-18 19:30:01.773485: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:30:01.773568: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:30:01.773597: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:30:01.773626: Inverter 0 scheduled discharge enable is False
2026-08-18 19:30:01.773726: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:30:01.773756: Inverter 0 discharge windows currently []
2026-08-18 19:30:01.773774: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:30:01.773789: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:30:01.773803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:30:01.826681: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:30:01.826781: Plan was last updated on 2026-08-18 19:20:00+01:00 and is now 10.0 minutes old
2026-08-18 19:30:01.827003: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:30:01.827045: Best export window [  ]
2026-08-18 19:30:01.827871: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:30:01.833176: Load divergence over 8.0 hours mean 599.78W, min 323.4W, max 1621.2W, std dev 268.0W, divergence 22.34%
2026-08-18 19:30:01.851585: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:30:01.851971: LoadML is_calculating False
2026-08-18 19:30:01.852049: Creating pool of 12 processes to match your CPU count
2026-08-18 19:30:01.957424: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 638.44p, metric_keep 126.62kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.82kWh, PV 0.0kWh
2026-08-18 19:30:02.088734: Battery has 3.83 hours left - now at 4.32kWh
2026-08-18 19:30:02.146033: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 664.2p, metric_keep 127.32kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.76kWh, PV 0.0kWh
2026-08-18 19:30:02.231028: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 371.05p, metric_keep 4.53kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.76kWh, PV 0.0kWh
2026-08-18 19:30:02.307500: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 360.31p, metric_keep 1.82kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.82kWh, PV 0.0kWh
2026-08-18 19:30:02.307595: Saving plan best values to HA entities
2026-08-18 19:30:02.470687: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 19:30:02.475637: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:30:02.480598: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.73kWh, house 0.12kWh, export 0.0kWh, metric 360.31p, metric10 371.05p
2026-08-18 19:30:02.548353: Marginal costs baseline metric (no standing charge): 313.6806
2026-08-18 19:30:02.772368: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:30:02.844431: Rate array import [{'start': 1170, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1170, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:30:02.845161: - Your estimated bill for today is £1.80 and tomorrow is £1.96
2026-08-18 19:30:02.845230: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 19:30:02.845272: - The battery is currently at 27% and is in eco mode for the next 4 hours.
2026-08-18 19:30:02.845294: - For the next 48 hours there will be no solar generation.
2026-08-18 19:30:02.845312: - You have enough battery to reach the next charge.
2026-08-18 19:30:02.845329: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-18 19:30:02.845362: 
2026-08-18 19:30:02.910377: Plan calculation took 1.08 seconds
2026-08-18 19:30:02.913508: No high rate period found
2026-08-18 19:30:02.961026: Import threshold used for optimisation was 8.0p
2026-08-18 19:30:03.009572: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:30:03.015801: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 27%, target 100%
2026-08-18 19:30:03.015999: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:30:03.016103: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:30:03.016358: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:30:03.016449: No export window planned
2026-08-18 19:30:03.016611: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:30:03.016656: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:30:03.016796: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:30:03.016992: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:30:03.017056: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:30:03.017124: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:30:03.017214: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017366: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017625: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:03.017673: Inverter 0 count register writes 0
2026-08-18 19:30:03.035750: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 19:30:03.036008: Recompute is saving previous plan...
2026-08-18 19:30:03.036915: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 19:30:03.036963: Best export window [  ]
2026-08-18 19:30:03.037749: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:30:03.040913: Load divergence over 8.0 hours mean 599.78W, min 323.4W, max 1621.2W, std dev 268.0W, divergence 22.34%
2026-08-18 19:30:03.058763: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:30:03.058889: LoadML is_calculating False
2026-08-18 19:30:03.058953: Creating pool of 12 processes to match your CPU count
2026-08-18 19:30:03.194288: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 19:30:03.194951: Optimise levels pass started at 2026-08-18 19:30:03
2026-08-18 19:30:03.195050: Optimise all windows, total charge 24 export 1
2026-08-18 19:30:03.566387: >> Region optimisation pass width 960 gives best_metric 421.64p, best_cost 453.18p, best_cycle 51.22kWh, best_import 37.29kWh
2026-08-18 19:30:03.725944: >> Region optimisation pass width 480 gives best_metric 421.64p, best_cost 453.18p, best_cycle 51.22kWh, best_import 37.29kWh
2026-08-18 19:30:03.984537: >> Region optimisation pass width 240 gives best_metric 421.64p, best_cost 453.18p, best_cycle 51.22kWh, best_import 37.29kWh
2026-08-18 19:30:04.674257: >> Region optimisation pass width 120 gives best_metric 421.48p, best_cost 451.14p, best_cycle 51.49kWh, best_import 37.04kWh
2026-08-18 19:30:04.674456: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 19:30:04.674522: Optimise levels pass ended at 2026-08-18 19:30:04, duration 1.5 seconds tried 61 combinations
2026-08-18 19:30:04.674582: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 421.48p, best_keep 1.82kWh, best_cycle 51.49kWh, best_carbon 0kg, best_import 37.04kWh
2026-08-18 19:30:04.693204: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 19:30:07.536339: Tweak plan optimisation started metric 298.36p, cost 307.59p
2026-08-18 19:30:07.926232: Tweak optimisation finished metric 298.36p, cost 307.59p, metric_keep 1.82kWh, cycle 29.17kWh, carbon 0kg, import 19.09kWh, changed 8 window(s)
2026-08-18 19:30:07.943776: Swap charge optimisation started metric 298.36p, cost 307.59p, min_improvement_swap 0.1p
2026-08-18 19:30:08.537034: Swap charge optimisation finished metric 298.36p, cost 307.59p
2026-08-18 19:30:08.658418: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 296.73p -> 296.57p, plan now metric 298.8p, cost 305.56p, cycle 29.44kWh, import 18.84kWh
2026-08-18 19:30:08.666322: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:30:08.666577: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:30:08.666773: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:30:08.666942: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:30:08.699170: Previous plan best metric is 298.36 (cost 307.59) and new plan best metric is 298.36 (cost 307.59)
2026-08-18 19:30:08.699340: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 19:30:08.699462: Plan valid is now true after recompute was False
2026-08-18 19:30:08.721846: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.98p, metric_keep 126.37kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.64kWh, PV 0.0kWh
2026-08-18 19:30:08.858716: Battery has 3.83 hours left - now at 4.32kWh
2026-08-18 19:30:08.906910: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 662.67p, metric_keep 127.07kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.56kWh, PV 0.0kWh
2026-08-18 19:30:08.994669: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 363.96p, metric_keep 4.51kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.56kWh, PV 0.0kWh
2026-08-18 19:30:09.071392: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 352.19p, metric_keep 1.82kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.64kWh, PV 0.0kWh
2026-08-18 19:30:09.071612: Saving plan best values to HA entities
2026-08-18 19:30:09.212997: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 19:30:09.217591: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:30:09.222023: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.72kWh, house 0.12kWh, export 0.0kWh, metric 352.19p, metric10 363.96p
2026-08-18 19:30:09.285789: Marginal costs baseline metric (no standing charge): 305.5563
2026-08-18 19:30:09.521515: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:30:09.594572: Rate array import [{'start': 1170, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1170, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:30:09.595263: - Your estimated bill for today is £1.80 and tomorrow is £1.96
2026-08-18 19:30:09.595315: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 19:30:09.595339: - The battery is currently at 27% and is in eco mode for the next 4 hours.
2026-08-18 19:30:09.595358: - For the next 48 hours there will be no solar generation.
2026-08-18 19:30:09.595376: - You have enough battery to reach the next charge.
2026-08-18 19:30:09.595393: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-18 19:30:09.595413: 
2026-08-18 19:30:09.649590: Plan calculation took 6.61 seconds
2026-08-18 19:30:09.649959: Inverter 0: Type SK Sunsynk
2026-08-18 19:30:09.650015: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:30:09.650281: Reserve min: 7%, battery_min: 7%
2026-08-18 19:30:09.650388: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:30:09.650809: Inverter 0 SoC: 4.32kW 27%, current charge rate 5000W, current discharge rate 5250W, current battery power 520W, current battery voltage 51.2V, grid power -54W, load power 573W, PV Power 0W
2026-08-18 19:30:09.651124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:30:09.651258: Inverter 0 scheduled charge enable is False
2026-08-18 19:30:09.651311: Inverter 0 charge windows currently []
2026-08-18 19:30:09.651369: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:30:09.651529: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:30:09.651587: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:30:09.651658: Inverter 0 scheduled discharge enable is False
2026-08-18 19:30:09.651847: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:30:09.651893: Inverter 0 discharge windows currently []
2026-08-18 19:30:09.651965: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:30:09.652003: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:30:09.652061: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:30:09.706236: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 27%, target 100%
2026-08-18 19:30:09.706381: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:30:09.706461: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:30:09.706641: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:30:09.706724: No export window planned
2026-08-18 19:30:09.706848: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:30:09.706887: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:30:09.707024: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:30:09.707201: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:30:09.707285: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:30:09.707391: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:30:09.707531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707607: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707657: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707685: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707710: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.707968: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.708030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.708060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.708110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.708136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.708166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:30:09.708187: Inverter 0 count register writes 0
2026-08-18 19:30:09.734269: Total inverter register writes now 867
2026-08-18 19:30:09.782395: Info: Completed run status Demand
2026-08-18 19:30:09.789857: Info: record_status Demand
2026-08-18 19:30:09.798008: Saved current settings to /config/predbat_config.json
2026-08-18 19:30:09.798332: Compare, best tariff: current metric 129.87p
2026-08-18 19:30:41.484181: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 19:30:42.391170: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:30:42.391323: Zero load period starting at 2026-08-17T10:54:00+0100 (1956 minutes) for 189 minutes with base value 393.775
2026-08-18 19:30:42.392547: Processing 1345 30-minute periods for power integration
2026-08-18 19:30:42.475640: ML Component: Car charging hold False, car energy reported load False
2026-08-18 19:30:42.559833: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:30:42.642428: ML Temperature data points: 49231
2026-08-18 19:30:42.858206: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 19:30:42.891632: ML Component: Data fetch completed, load data age 60.0 days, 17345 data points
2026-08-18 19:30:42.891727: ML Component: Starting fine-tune training (2h interval), model age is 2.0601224627777777 hours
2026-08-18 19:30:42.891748: ML Component: Doing training...
2026-08-18 19:30:42.903607: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=57.0 days)
2026-08-18 19:30:42.903996: ML Predictor: Curriculum training - 5 passes, window 57.0→60.0 days + final full pass (60.2 days)
2026-08-18 19:30:42.953500: ML Predictor: Curriculum pass 1/5: window=57.0 days (1368 hours of data)
2026-08-18 19:30:42.953600: ML Predictor: Starting initial training with 30 epochs
2026-08-18 19:30:43.584261: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 19:30:48.613340: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 19:30:48.852192: ML Predictor: Normalization stats [fit] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7466 std=4.5738) import_rate(mean=16.5928 std=8.3605) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5283)
2026-08-18 19:30:49.111829: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:30:49.112094: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:30:49.112140: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:30:49.112282: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:30:49.112330: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:30:49.112352: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:30:49.112370: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:31:04.385093: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0105 val_mae=0.0039 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-18 19:31:18.705667: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0162 val_mae=0.0036 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-18 19:31:34.157424: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0134 val_mae=0.0038 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-18 19:31:46.765741: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0122 val_mae=0.0035 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-18 19:32:00.455658: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0028 kWh val_bias=+0.0010 kWh (+1.3%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-18 19:32:13.613909: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0095 val_mae=0.0031 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 19:32:28.622275: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0097 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 19:32:42.197910: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0089 val_mae=0.0038 kWh val_bias=-0.0027 kWh (-3.4%) combined=0.0039 kWh ema_combined=0.0027 kWh
2026-08-18 19:32:49.416418: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:32:49.417397: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:32:49.417556: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:32:49.417919: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:32:49.418057: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:32:49.418216: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:32:49.418352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:32:54.932482: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0076 val_mae=0.0028 kWh val_bias=+0.0014 kWh (+1.8%) combined=0.0029 kWh ema_combined=0.0027 kWh
2026-08-18 19:33:09.044964: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0071 val_mae=0.0032 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0026 kWh ema_combined=0.0027 kWh
2026-08-18 19:33:22.766144: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0074 val_mae=0.0026 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0023 kWh
2026-08-18 19:33:37.712740: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0083 val_mae=0.0031 kWh val_bias=+0.0018 kWh (+2.3%) combined=0.0028 kWh ema_combined=0.0024 kWh
2026-08-18 19:33:51.737299: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0094 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-18 19:34:05.890972: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0064 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-18 19:34:19.141696: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0062 val_mae=0.0021 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-18 19:34:33.478444: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0061 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 19:34:45.354851: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 19:35:00.311113: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0058 val_mae=0.0028 kWh val_bias=+0.0018 kWh (+2.3%) combined=0.0026 kWh ema_combined=0.0019 kWh
2026-08-18 19:35:00.818221: --------------- PredBat - update at 2026-08-18 19:35:00+01:00 with clock skew 0 minutes, minutes now 1175
2026-08-18 19:35:00.819138: Saved current settings to /config/predbat_config.json
2026-08-18 19:35:01.245925: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:35:01.246198: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:35:01.297272: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:35:01.297445: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:35:01.297777: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:35:01.298493: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:35:01.298705: Predbat mode is set to Control charge & discharge
2026-08-18 19:35:01.569910: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:35:01.570228: Using load_power data to fill gaps in load_today data
2026-08-18 19:35:02.958054: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:35:02.958673: Zero load period starting at 2026-08-17T10:54:00+0100 (1961 minutes) for 189 minutes with base value 205.3
2026-08-18 19:35:02.961023: Processing 721 30-minute periods for power integration
2026-08-18 19:35:03.227664: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:35:03.227779: Car charging hold False, threshold 6.0kWh
2026-08-18 19:35:03.227820: Current data so far today: load 12.2kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:35:03.242523: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:35:03.242736: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:35:03.243702: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:35:03.243998: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:35:03.244130: Standing charge is set to 46.63p
2026-08-18 19:35:03.320954: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:35:03.321155: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:35:03.321306: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:35:03.322173: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:35:03.322262: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:35:03.322356: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:35:03.326591: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:35:03.326857: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:35:03.366850: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:35:03.366966: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:35:03.368749: High export rate found rates in range 99p to -99p
2026-08-18 19:35:03.408180: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:35:03.408306: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:35:03.421475: Battery level now 4.32kWh, -1hr ago 4.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -17.32p, rate_forward 6.87p
2026-08-18 19:35:03.421911: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.42p, import 0.42p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:35:03.496243: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:35:03.496419: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:35:03.644041: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:35:03.695880: Today's load divergence 99.6%, in-day adjustment 98.34%, damping 0.95x, yesterday 92.68% today 99.62% blend 18.4%
2026-08-18 19:35:03.696003: Today's predicted so far 12.25kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 12.25kWh forecast extra.
2026-08-18 19:35:03.696037: Today's actual load so far 12.19kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 19:35:03.758430: Inverter 0: Type SK Sunsynk
2026-08-18 19:35:03.758527: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:35:03.758751: Reserve min: 7%, battery_min: 7%
2026-08-18 19:35:03.758960: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:35:03.759360: Inverter 0 SoC: 4.32kW 27%, current charge rate 5000W, current discharge rate 5250W, current battery power 582W, current battery voltage 51.2V, grid power -52W, load power 635W, PV Power 0W
2026-08-18 19:35:03.759603: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:35:03.759774: Inverter 0 scheduled charge enable is False
2026-08-18 19:35:03.759825: Inverter 0 charge windows currently []
2026-08-18 19:35:03.759929: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:35:03.760146: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:35:03.760196: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:35:03.760244: Inverter 0 scheduled discharge enable is False
2026-08-18 19:35:03.760444: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:35:03.760586: Inverter 0 discharge windows currently []
2026-08-18 19:35:03.760698: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:35:03.760742: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:35:03.760768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:35:03.889641: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:35:03.889883: Plan was last updated on 2026-08-18 19:30:00+01:00 and is now 5.0 minutes old
2026-08-18 19:35:03.890200: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:35:03.890319: Best export window [  ]
2026-08-18 19:35:03.891514: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:35:03.896055: Load divergence over 8.0 hours mean 599.76W, min 333.6W, max 1461.0W, std dev 277.25W, divergence 23.11%
2026-08-18 19:35:03.928348: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:35:03.928762: LoadML is_calculating True
2026-08-18 19:35:03.928940: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:35:03.993426: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.06p, metric_keep 126.06kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.71kWh, PV 0.0kWh
2026-08-18 19:35:04.229540: Battery has 3.83 hours left - now at 4.32kWh
2026-08-18 19:35:04.304256: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 660.67p, metric_keep 126.74kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.64kWh, PV 0.0kWh
2026-08-18 19:35:04.444918: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 364.75p, metric_keep 4.1kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.64kWh, PV 0.0kWh
2026-08-18 19:35:04.578881: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 353.66p, metric_keep 1.39kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.71kWh, PV 0.0kWh
2026-08-18 19:35:04.578991: Saving plan best values to HA entities
2026-08-18 19:35:04.906363: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:35:04.918468: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 19:35:04.931606: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.04kWh, export 0.0kWh, metric 353.66p, metric10 364.75p
2026-08-18 19:35:05.131620: Marginal costs baseline metric (no standing charge): 307.0262
2026-08-18 19:35:05.541361: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:35:05.697048: Rate array import [{'start': 1175, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1175, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:35:05.697971: - Your estimated bill for today is £1.77 and tomorrow is £1.96
2026-08-18 19:35:05.698025: - Import rates are very expensive (33.8p) for the next 3  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 19:35:05.698055: - The battery is currently at 27% and is in eco mode for the next 3  hours.
2026-08-18 19:35:05.698089: - For the next 48 hours there will be no solar generation.
2026-08-18 19:35:05.698113: - You have enough battery to reach the next charge.
2026-08-18 19:35:05.698146: - Your next charge slot will be in 3  hours where import rates will be cheap (8.0p).
2026-08-18 19:35:05.698170: 
2026-08-18 19:35:05.737826: Plan calculation took 1.85 seconds
2026-08-18 19:35:05.740637: No high rate period found
2026-08-18 19:35:05.807832: Import threshold used for optimisation was 8.0p
2026-08-18 19:35:05.879703: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:35:05.888144: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 27%, target 100%
2026-08-18 19:35:05.888275: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:35:05.888408: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:35:05.888918: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:35:05.889093: No export window planned
2026-08-18 19:35:05.889417: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:35:05.889466: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:35:05.889708: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:35:05.889903: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:35:05.889959: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:35:05.890045: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:35:05.890300: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.891815: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.891876: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.891941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.891974: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892002: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892253: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:35:05.892300: Inverter 0 count register writes 0
2026-08-18 19:35:05.914147: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:35:05.921606: Total inverter register writes now 867
2026-08-18 19:35:05.993052: Info: Completed run status Demand
2026-08-18 19:35:06.017028: Info: record_status Demand
2026-08-18 19:35:06.025851: Saved current settings to /config/predbat_config.json
2026-08-18 19:35:06.026051: Compare, best tariff: current metric 129.87p
2026-08-18 19:35:17.805664: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0061 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-18 19:35:30.604410: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 19:35:45.249620: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0019 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 19:35:49.191692: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:35:49.192020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:35:49.192081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:35:49.192271: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:35:49.192324: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:35:49.192378: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:35:49.192418: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:35:56.512869: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0056 val_mae=0.0020 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 19:36:12.918664: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0052 val_mae=0.0018 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 19:36:26.024827: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0052 val_mae=0.0017 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 19:36:41.695537: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0051 val_mae=0.0017 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 19:36:53.833706: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-18 19:37:06.419562: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0010 kWh ema_combined=0.0013 kWh
2026-08-18 19:37:17.761302: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0018 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0009 kWh ema_combined=0.0012 kWh
2026-08-18 19:37:30.104225: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0017 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0009 kWh ema_combined=0.0011 kWh
2026-08-18 19:37:44.429751: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-18 19:37:44.431080: ML Predictor: Restored best weights from epoch with val_mae=0.0017 kWh val_bias=+0.0000 kWh (+0.0%)
2026-08-18 19:37:44.431221: ML Predictor: Training complete, final val_mae=0.0017 kWh val_bias=+0.0000 kWh (+0.0%)
2026-08-18 19:37:45.367781: ML Predictor: AR rollout over holdout: ar_mae=0.0018 kWh ar_bias=+0.0000 kWh (+0.0%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 19:37:45.409007: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0017 kWh
2026-08-18 19:37:45.494318: ML Predictor: Curriculum pass 2/5: window=58.0 days (1392 hours of data)
2026-08-18 19:37:45.494426: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 19:37:46.111521: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 19:37:50.206828: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:37:50.222627: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:37:50.227849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:37:50.233278: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:37:50.238448: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:37:50.243638: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:37:50.248821: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:37:50.868782: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 19:37:50.925119: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7412 std=4.5728) import_rate(mean=16.5777 std=8.3608) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1973 std=0.5285)
2026-08-18 19:37:51.019086: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 19:37:51.034334: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 19:37:51.061951: ML Predictor: Baseline (pre-finetune) val_mae=0.0020 kWh val_bias=-0.0001 kWh
2026-08-18 19:38:07.423524: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0086 val_mae=0.0026 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-18 19:38:20.965183: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0109 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-18 19:38:34.621696: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0106 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 19:38:49.294518: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0098 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0024 kWh ema_combined=0.0017 kWh
2026-08-18 19:39:05.238985: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 19:39:23.761750: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0092 val_mae=0.0031 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 19:39:37.342727: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0094 val_mae=0.0029 kWh val_bias=+0.0011 kWh (+2.0%) combined=0.0023 kWh ema_combined=0.0019 kWh
2026-08-18 19:39:53.540144: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0091 val_mae=0.0029 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-18 19:40:00.030372: --------------- PredBat - update at 2026-08-18 19:40:00+01:00 with clock skew 0 minutes, minutes now 1180
2026-08-18 19:40:00.031447: Saved current settings to /config/predbat_config.json
2026-08-18 19:40:00.031600: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 19:40:00.031726: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:40:00.031818: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:40:00.074680: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:40:00.074796: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:40:00.074969: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:40:00.075473: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:40:00.075612: Predbat mode is set to Control charge & discharge
2026-08-18 19:40:00.433822: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:40:00.434138: Using load_power data to fill gaps in load_today data
2026-08-18 19:40:01.566162: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:40:01.566469: Zero load period starting at 2026-08-17T10:54:00+0100 (1966 minutes) for 189 minutes with base value 205.275
2026-08-18 19:40:01.568814: Processing 721 30-minute periods for power integration
2026-08-18 19:40:01.935612: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:40:01.936145: Car charging hold False, threshold 6.0kWh
2026-08-18 19:40:01.936247: Current data so far today: load 12.25kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:40:01.953401: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:40:01.953698: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:40:01.954922: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:40:01.955113: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:40:01.955186: Standing charge is set to 46.63p
2026-08-18 19:40:02.157591: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:40:02.157886: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:40:02.161195: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:40:02.177661: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:40:02.177914: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:40:02.178155: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:40:02.186142: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:40:02.186557: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:40:02.325605: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:40:02.344155: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:40:02.346464: High export rate found rates in range 99p to -99p
2026-08-18 19:40:02.394198: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:40:02.394544: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:40:02.429172: Battery level now 4.32kWh, -1hr ago 4.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -17.32p, rate_forward 6.87p
2026-08-18 19:40:02.429978: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 0.21p, import 0.21p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:40:02.516139: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:40:02.516325: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:40:02.656558: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:40:02.761354: Today's load divergence 99.69%, in-day adjustment 98.44%, damping 0.95x, yesterday 92.68% today 99.71% blend 18.06%
2026-08-18 19:40:02.761631: Today's predicted so far 12.26kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 12.26kWh forecast extra.
2026-08-18 19:40:02.761782: Today's actual load so far 12.22kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 19:40:02.842837: Inverter 0: Type SK Sunsynk
2026-08-18 19:40:02.843063: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:40:02.843376: Reserve min: 7%, battery_min: 7%
2026-08-18 19:40:02.843574: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:40:02.844043: Inverter 0 SoC: 4.26kW 27%, current charge rate 5000W, current discharge rate 5250W, current battery power 795W, current battery voltage 51.2V, grid power -54W, load power 862W, PV Power 0W
2026-08-18 19:40:02.844321: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:40:02.844627: Inverter 0 scheduled charge enable is False
2026-08-18 19:40:02.844746: Inverter 0 charge windows currently []
2026-08-18 19:40:02.844842: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:40:02.845036: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:40:02.845148: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:40:02.845255: Inverter 0 scheduled discharge enable is False
2026-08-18 19:40:02.845682: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:40:02.845873: Inverter 0 discharge windows currently []
2026-08-18 19:40:02.846342: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:40:02.846445: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:40:02.846544: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:40:02.947762: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:40:02.947888: Plan was last updated on 2026-08-18 19:30:00+01:00 and is now 10.0 minutes old
2026-08-18 19:40:02.948209: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:40:02.948263: Best export window [  ]
2026-08-18 19:40:02.949566: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:40:02.955158: Load divergence over 8.0 hours mean 599.79W, min 360.0W, max 1428.0W, std dev 259.49W, divergence 21.63%
2026-08-18 19:40:03.023288: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:40:03.023429: LoadML is_calculating True
2026-08-18 19:40:03.023462: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:40:03.112173: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.79p, metric_keep 126.17kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.8kWh, PV 0.0kWh
2026-08-18 19:40:03.343760: Battery has 3.75 hours left - now at 4.26kWh
2026-08-18 19:40:03.414627: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 661.33p, metric_keep 126.83kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.73kWh, PV 0.0kWh
2026-08-18 19:40:03.557251: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 368.09p, metric_keep 4.05kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.73kWh, PV 0.0kWh
2026-08-18 19:40:03.700728: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 357.82p, metric_keep 1.38kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.8kWh, PV 0.0kWh
2026-08-18 19:40:03.700850: Saving plan best values to HA entities
2026-08-18 19:40:03.953689: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:40:03.977609: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:40:03.985463: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.75kWh, house 0.04kWh, export 0.0kWh, metric 357.82p, metric10 368.09p
2026-08-18 19:40:04.127000: Marginal costs baseline metric (no standing charge): 311.1829
2026-08-18 19:40:04.428639: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:40:04.506016: Rate array import [{'start': 1180, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1180, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:40:04.507164: - Your estimated bill for today is £1.77 and tomorrow is £1.96
2026-08-18 19:40:04.507221: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 19:40:04.507247: - The battery is currently at 27% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 19:40:04.507267: - For the next 48 hours there will be no solar generation.
2026-08-18 19:40:04.507287: - You have enough battery to reach the next charge.
2026-08-18 19:40:04.507376: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 19:40:04.507447: 
2026-08-18 19:40:04.570850: Plan calculation took 1.62 seconds
2026-08-18 19:40:04.575132: No high rate period found
2026-08-18 19:40:04.666317: Import threshold used for optimisation was 8.0p
2026-08-18 19:40:04.742747: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:40:04.749030: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 27%, target 100%
2026-08-18 19:40:04.749146: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:40:04.749214: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:40:04.749382: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:40:04.749454: No export window planned
2026-08-18 19:40:04.749568: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:40:04.749605: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:40:04.749740: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:40:04.749882: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:40:04.749929: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:40:04.749973: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:40:04.750053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750155: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750210: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750447: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750739: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:04.750804: Inverter 0 count register writes 0
2026-08-18 19:40:04.768134: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 19:40:04.768363: Recompute is saving previous plan...
2026-08-18 19:40:04.769591: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 19:40:04.769645: Best export window [  ]
2026-08-18 19:40:04.770730: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:40:04.774754: Load divergence over 8.0 hours mean 599.79W, min 360.0W, max 1428.0W, std dev 259.49W, divergence 21.63%
2026-08-18 19:40:04.797567: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:40:04.797721: LoadML is_calculating True
2026-08-18 19:40:04.797825: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:40:04.808325: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 19:40:04.808785: Optimise levels pass started at 2026-08-18 19:40:04
2026-08-18 19:40:04.808881: Optimise all windows, total charge 24 export 1
2026-08-18 19:40:06.619491: >> Region optimisation pass width 960 gives best_metric 419.39p, best_cost 448.36p, best_cycle 51.03kWh, best_import 36.94kWh
2026-08-18 19:40:06.787392: >> Region optimisation pass width 480 gives best_metric 419.39p, best_cost 448.36p, best_cycle 51.03kWh, best_import 36.94kWh
2026-08-18 19:40:07.366626: >> Region optimisation pass width 240 gives best_metric 419.39p, best_cost 448.36p, best_cycle 51.03kWh, best_import 36.94kWh
2026-08-18 19:40:08.542011: >> Region optimisation pass width 120 gives best_metric 419.39p, best_cost 448.36p, best_cycle 51.03kWh, best_import 36.94kWh
2026-08-18 19:40:08.542343: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 19:40:08.542563: Optimise levels pass ended at 2026-08-18 19:40:08, duration 3.7 seconds tried 58 combinations
2026-08-18 19:40:08.542750: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 419.39p, best_keep 1.38kWh, best_cycle 51.03kWh, best_carbon 0kg, best_import 36.94kWh
2026-08-18 19:40:08.561284: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 19:40:19.355675: Tweak plan optimisation started metric 295.2p, cost 304.94p
2026-08-18 19:40:21.850219: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0089 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-18 19:40:21.955146: Tweak optimisation finished metric 295.2p, cost 304.94p, metric_keep 1.38kWh, cycle 29.11kWh, carbon 0kg, import 19.01kWh, changed 8 window(s)
2026-08-18 19:40:21.984981: Swap charge optimisation started metric 295.2p, cost 304.94p, min_improvement_swap 0.1p
2026-08-18 19:40:23.133578: Swap charge optimisation finished metric 295.2p, cost 304.94p
2026-08-18 19:40:23.349785: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 293.6p -> 293.35p, plan now metric 296.44p, cost 300.78p, cycle 29.12kWh, import 18.49kWh
2026-08-18 19:40:23.365704: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:40:23.367407: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:40:23.367838: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:40:23.368220: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:40:23.416856: Previous plan best metric is 295.2 (cost 304.94) and new plan best metric is 295.2 (cost 304.94)
2026-08-18 19:40:23.417778: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 19:40:23.418003: Plan valid is now true after recompute was False
2026-08-18 19:40:23.440992: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 634.21p, metric_keep 125.92kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.6kWh, PV 0.0kWh
2026-08-18 19:40:23.585264: Battery has 3.75 hours left - now at 4.26kWh
2026-08-18 19:40:23.669339: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 659.66p, metric_keep 126.57kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.52kWh, PV 0.0kWh
2026-08-18 19:40:23.814926: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 360.87p, metric_keep 4.03kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.52kWh, PV 0.0kWh
2026-08-18 19:40:23.920122: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 349.56p, metric_keep 1.38kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.6kWh, PV 0.0kWh
2026-08-18 19:40:23.920220: Saving plan best values to HA entities
2026-08-18 19:40:24.219194: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:40:24.236374: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:40:24.242137: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.72kWh, house 0.04kWh, export 0.0kWh, metric 349.56p, metric10 360.87p
2026-08-18 19:40:24.460381: Marginal costs baseline metric (no standing charge): 302.929
2026-08-18 19:40:24.968535: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:40:25.064204: Rate array import [{'start': 1180, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1180, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:40:25.070638: - Your estimated bill for today is £1.77 and tomorrow is £1.96
2026-08-18 19:40:25.070733: - 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-18 19:40:25.070764: - The battery is currently at 27% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 19:40:25.070790: - For the next 48 hours there will be no solar generation.
2026-08-18 19:40:25.070815: - You have enough battery to reach the next charge.
2026-08-18 19:40:25.070932: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 19:40:25.070975: 
2026-08-18 19:40:25.146215: Plan calculation took 20.38 seconds
2026-08-18 19:40:25.146522: Inverter 0: Type SK Sunsynk
2026-08-18 19:40:25.146645: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:40:25.146924: Reserve min: 7%, battery_min: 7%
2026-08-18 19:40:25.147052: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:40:25.147428: Inverter 0 SoC: 4.16kW 26%, current charge rate 5000W, current discharge rate 5250W, current battery power 915W, current battery voltage 51.2V, grid power -57W, load power 961W, PV Power 0W
2026-08-18 19:40:25.147684: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:40:25.147840: Inverter 0 scheduled charge enable is False
2026-08-18 19:40:25.147889: Inverter 0 charge windows currently []
2026-08-18 19:40:25.148006: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:40:25.148223: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:40:25.148260: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:40:25.148393: Inverter 0 scheduled discharge enable is False
2026-08-18 19:40:25.148638: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:40:25.148691: Inverter 0 discharge windows currently []
2026-08-18 19:40:25.148772: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:40:25.148868: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:40:25.148941: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:40:25.252763: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 26%, target 100%
2026-08-18 19:40:25.253034: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:40:25.253163: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:40:25.253431: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:40:25.253585: No export window planned
2026-08-18 19:40:25.253766: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:40:25.253816: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:40:25.254032: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:40:25.254327: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:40:25.254504: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:40:25.254670: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:40:25.254869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.254986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255040: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255160: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255250: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255389: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255756: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.255997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.256119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:40:25.256163: Inverter 0 count register writes 0
2026-08-18 19:40:25.284739: Total inverter register writes now 867
2026-08-18 19:40:25.328937: Info: Completed run status Demand
2026-08-18 19:40:25.337929: Info: record_status Demand
2026-08-18 19:40:25.346869: Saved current settings to /config/predbat_config.json
2026-08-18 19:40:25.347140: Compare, best tariff: current metric 129.87p
2026-08-18 19:40:37.814985: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0100 val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-18 19:40:37.815109: ML Predictor: Early stopping at epoch 10
2026-08-18 19:40:37.815791: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 19:40:37.816025: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 19:40:38.721699: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-18 19:40:38.725763: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0020 kWh
2026-08-18 19:40:38.798795: ML Predictor: Curriculum pass 3/5: window=59.0 days (1416 hours of data)
2026-08-18 19:40:38.799025: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 19:40:39.378257: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 19:40:44.078158: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 19:40:44.134269: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7306 std=4.5716) import_rate(mean=16.5523 std=8.3626) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1974 std=0.5287)
2026-08-18 19:40:44.225490: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 19:40:44.241593: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 19:40:44.265224: ML Predictor: Baseline (pre-finetune) val_mae=0.0031 kWh val_bias=-0.0004 kWh
2026-08-18 19:40:58.409450: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0093 val_mae=0.0039 kWh val_bias=-0.0012 kWh (-2.7%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 19:41:04.296106: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:41:04.296373: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:41:04.296424: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:41:04.296614: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:41:04.296663: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:41:04.296691: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:41:04.296716: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:41:13.146980: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0089 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-18 19:41:26.614191: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0101 val_mae=0.0038 kWh val_bias=+0.0009 kWh (+2.1%) combined=0.0034 kWh ema_combined=0.0024 kWh
2026-08-18 19:41:39.903803: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0110 val_mae=0.0046 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0039 kWh ema_combined=0.0028 kWh
2026-08-18 19:41:52.865847: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0129 val_mae=0.0034 kWh val_bias=-0.0008 kWh (-1.8%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-18 19:42:08.519954: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0107 val_mae=0.0031 kWh val_bias=-0.0002 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-18 19:42:21.460826: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0097 val_mae=0.0031 kWh val_bias=+0.0016 kWh (+3.7%) combined=0.0033 kWh ema_combined=0.0026 kWh
2026-08-18 19:42:34.689714: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0086 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-18 19:42:45.759213: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0076 val_mae=0.0029 kWh val_bias=+0.0004 kWh (+1.0%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-18 19:42:59.010915: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0087 val_mae=0.0029 kWh val_bias=-0.0002 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-18 19:43:12.500926: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0077 val_mae=0.0029 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-18 19:43:18.690616: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:43:18.690880: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:43:18.690931: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:43:18.691093: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:43:18.691140: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:43:18.691249: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:43:18.691293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:43:25.017454: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0083 val_mae=0.0026 kWh val_bias=-0.0009 kWh (-2.1%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-18 19:43:25.017562: ML Predictor: Early stopping at epoch 12
2026-08-18 19:43:25.018212: ML Predictor: Restored best weights from epoch with val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%)
2026-08-18 19:43:25.018459: ML Predictor: Training complete, final val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%)
2026-08-18 19:43:25.897649: ML Predictor: AR rollout over holdout: ar_mae=0.0056 kWh ar_bias=-0.0008 kWh (-1.9%) [drift vs teacher-forced: +0.0028 kWh]
2026-08-18 19:43:25.902185: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0029 kWh
2026-08-18 19:43:25.974193: ML Predictor: Curriculum pass 4/5: window=60.0 days (1440 hours of data)
2026-08-18 19:43:25.974434: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 19:43:26.538282: ML Predictor: Creating dataset with 1440 hours of training data, 48 hours validation
2026-08-18 19:43:31.387294: ML Predictor: Created 16992 training samples, 576 validation samples
2026-08-18 19:43:31.441633: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0598 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7182 std=4.5678) import_rate(mean=16.5448 std=8.3815) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1972 std=0.5290)
2026-08-18 19:43:31.522873: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 19:43:31.535449: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 19:43:31.556429: ML Predictor: Baseline (pre-finetune) val_mae=0.0038 kWh val_bias=-0.0010 kWh
2026-08-18 19:43:42.874336: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0102 val_mae=0.0040 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-18 19:43:54.891235: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0119 val_mae=0.0041 kWh val_bias=-0.0013 kWh (-2.7%) combined=0.0030 kWh ema_combined=0.0026 kWh
2026-08-18 19:44:09.648677: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0109 val_mae=0.0036 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-18 19:44:23.129357: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0094 val_mae=0.0032 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-18 19:44:36.760900: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0097 val_mae=0.0037 kWh val_bias=-0.0010 kWh (-2.2%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-18 19:44:50.631129: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0098 val_mae=0.0032 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-18 19:45:00.548776: --------------- PredBat - update at 2026-08-18 19:45:00+01:00 with clock skew 0 minutes, minutes now 1185
2026-08-18 19:45:00.549661: Saved current settings to /config/predbat_config.json
2026-08-18 19:45:00.549795: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 19:45:00.549888: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:45:00.549989: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:45:00.585120: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:45:00.585274: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:45:00.585632: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:45:00.586321: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:45:00.586536: Predbat mode is set to Control charge & discharge
2026-08-18 19:45:00.817548: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:45:00.817681: Using load_power data to fill gaps in load_today data
2026-08-18 19:45:01.989013: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:45:01.989251: Zero load period starting at 2026-08-17T10:54:00+0100 (1971 minutes) for 189 minutes with base value 205.25
2026-08-18 19:45:01.991028: Processing 721 30-minute periods for power integration
2026-08-18 19:45:02.315137: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:45:02.315658: Car charging hold False, threshold 6.0kWh
2026-08-18 19:45:02.315765: Current data so far today: load 12.3kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:45:02.332879: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:45:02.333248: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:45:02.334161: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:45:02.334489: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:45:02.334667: Standing charge is set to 46.63p
2026-08-18 19:45:02.459838: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:45:02.460766: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:45:02.461174: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:45:02.462842: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:45:02.463120: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:45:02.463434: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:45:02.471449: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:45:02.472071: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:45:02.536069: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:45:02.536427: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:45:02.537934: High export rate found rates in range 99p to -99p
2026-08-18 19:45:02.571376: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:45:02.571587: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:45:02.588309: Battery level now 4.26kWh, -1hr ago 4.64kWh, at midnight 6.84kWh, battery value change in the last hour -2.58p, change today -17.7p, rate_forward 6.87p
2026-08-18 19:45:02.588831: 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-18 19:45:02.769529: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:45:02.769677: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:45:02.991261: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:45:03.048983: Today's load divergence 99.83%, in-day adjustment 98.57%, damping 0.95x, yesterday 92.68% today 99.84% blend 17.71%
2026-08-18 19:45:03.049210: Today's predicted so far 12.27kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 12.27kWh forecast extra.
2026-08-18 19:45:03.049278: Today's actual load so far 12.24kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 19:45:03.091343: Inverter 0: Type SK Sunsynk
2026-08-18 19:45:03.091445: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:45:03.091687: Reserve min: 7%, battery_min: 7%
2026-08-18 19:45:03.091766: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:45:03.092069: Inverter 0 SoC: 4.16kW 26%, current charge rate 5000W, current discharge rate 5250W, current battery power 713W, current battery voltage 51.2V, grid power -53W, load power 760W, PV Power 0W
2026-08-18 19:45:03.092272: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:45:03.092413: Inverter 0 scheduled charge enable is False
2026-08-18 19:45:03.092500: Inverter 0 charge windows currently []
2026-08-18 19:45:03.092611: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:45:03.092812: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:45:03.092929: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:45:03.093062: Inverter 0 scheduled discharge enable is False
2026-08-18 19:45:03.093317: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:45:03.093459: Inverter 0 discharge windows currently []
2026-08-18 19:45:03.093583: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:45:03.093691: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:45:03.093792: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:45:03.232686: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:45:03.232946: Plan was last updated on 2026-08-18 19:40:00+01:00 and is now 5.0 minutes old
2026-08-18 19:45:03.233243: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:45:03.233379: Best export window [  ]
2026-08-18 19:45:03.234207: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:45:03.237436: Load divergence over 8.0 hours mean 599.73W, min 331.8W, max 1402.8W, std dev 247.53W, divergence 20.64%
2026-08-18 19:45:03.259439: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:45:03.259838: LoadML is_calculating True
2026-08-18 19:45:03.260036: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:45:03.297928: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 637.06p, metric_keep 126.29kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.72kWh, PV 0.0kWh
2026-08-18 19:45:03.472958: Battery has 3.58 hours left - now at 4.16kWh
2026-08-18 19:45:03.544901: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 662.5p, metric_keep 126.91kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.65kWh, PV 0.0kWh
2026-08-18 19:45:03.722803: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 366.49p, metric_keep 4.3kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.65kWh, PV 0.0kWh
2026-08-18 19:45:03.897344: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 355.66p, metric_keep 1.63kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.72kWh, PV 0.0kWh
2026-08-18 19:45:03.897474: Saving plan best values to HA entities
2026-08-18 19:45:04.228504: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:45:04.235718: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:45:04.242382: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.1kWh, export 0.0kWh, metric 355.66p, metric10 366.49p
2026-08-18 19:45:04.381951: Marginal costs baseline metric (no standing charge): 309.022
2026-08-18 19:45:04.896005: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:45:04.984050: Rate array import [{'start': 1185, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1185, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:45:04.984919: - Your estimated bill for today is £1.79 and tomorrow is £1.97
2026-08-18 19:45:04.984969: - 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-18 19:45:04.984996: - The battery is currently at 26% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 19:45:04.985122: - For the next 48 hours there will be no solar generation.
2026-08-18 19:45:04.985205: - You have enough battery to reach the next charge.
2026-08-18 19:45:04.985325: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 19:45:04.985423: 
2026-08-18 19:45:05.036812: Plan calculation took 1.80 seconds
2026-08-18 19:45:05.040432: No high rate period found
2026-08-18 19:45:05.130555: Import threshold used for optimisation was 8.0p
2026-08-18 19:45:05.258422: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:45:05.266813: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 26%, target 100%
2026-08-18 19:45:05.267021: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:45:05.267229: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:45:05.267632: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:45:05.267832: No export window planned
2026-08-18 19:45:05.268094: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:45:05.268152: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:45:05.268313: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:45:05.268488: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:45:05.268545: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:45:05.268601: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:45:05.268685: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268729: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268763: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268800: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268863: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268899: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.268964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:45:05.269190: Inverter 0 count register writes 0
2026-08-18 19:45:05.300801: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:45:05.315471: Total inverter register writes now 867
2026-08-18 19:45:05.397156: Info: Completed run status Demand
2026-08-18 19:45:05.417216: Info: record_status Demand
2026-08-18 19:45:05.428954: Saved current settings to /config/predbat_config.json
2026-08-18 19:45:05.429163: Compare, best tariff: current metric 129.87p
2026-08-18 19:45:08.618052: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0115 val_mae=0.0035 kWh val_bias=-0.0011 kWh (-2.4%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-18 19:45:21.291116: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0134 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-18 19:45:32.707556: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0104 val_mae=0.0031 kWh val_bias=-0.0007 kWh (-1.4%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 19:45:44.522006: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0104 val_mae=0.0033 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0024 kWh ema_combined=0.0021 kWh
2026-08-18 19:45:49.556697: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:45:49.556971: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:45:49.557021: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:45:49.557181: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:45:49.557228: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:45:49.557256: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:45:49.557281: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:45:56.591747: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0100 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-18 19:46:12.576073: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0085 val_mae=0.0032 kWh val_bias=-0.0009 kWh (-1.9%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-18 19:46:25.936021: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0082 val_mae=0.0032 kWh val_bias=-0.0017 kWh (-3.7%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-18 19:46:37.628666: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0075 val_mae=0.0026 kWh val_bias=-0.0008 kWh (-1.6%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-18 19:46:49.076515: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0076 val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-18 19:47:02.654348: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0072 val_mae=0.0030 kWh val_bias=-0.0020 kWh (-4.3%) combined=0.0027 kWh ema_combined=0.0022 kWh
2026-08-18 19:47:17.863121: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0064 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0020 kWh
2026-08-18 19:47:29.269854: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-18 19:47:39.463417: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0023 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 19:47:49.205568: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0060 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 19:48:00.874875: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 19:48:03.940642: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:48:03.941131: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:48:03.941284: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:48:03.941674: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:48:03.941817: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:48:03.942270: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:48:03.942351: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:48:16.509473: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0022 kWh val_bias=-0.0008 kWh (-1.6%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 19:48:28.998386: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 19:48:42.202478: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0058 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0015 kWh
2026-08-18 19:48:55.022569: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0023 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0020 kWh ema_combined=0.0016 kWh
2026-08-18 19:49:09.156045: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0049 val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 19:49:23.795855: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0051 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 19:49:40.731801: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 19:49:57.298781: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-18 19:50:00.312646: --------------- PredBat - update at 2026-08-18 19:50:00+01:00 with clock skew 0 minutes, minutes now 1190
2026-08-18 19:50:00.313742: Saved current settings to /config/predbat_config.json
2026-08-18 19:50:00.313903: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 19:50:00.314009: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:50:00.314125: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:50:00.350809: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:50:00.350934: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:50:00.351126: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:50:00.351678: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:50:00.351795: Predbat mode is set to Control charge & discharge
2026-08-18 19:50:00.643865: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:50:00.644228: Using load_power data to fill gaps in load_today data
2026-08-18 19:50:01.800650: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:50:01.801045: Zero load period starting at 2026-08-17T10:54:00+0100 (1976 minutes) for 189 minutes with base value 205.225
2026-08-18 19:50:01.802250: Processing 721 30-minute periods for power integration
2026-08-18 19:50:01.964015: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:50:01.982956: Car charging hold False, threshold 6.0kWh
2026-08-18 19:50:01.983009: Current data so far today: load 12.35kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:50:02.000068: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:50:02.009118: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:50:02.009851: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:50:02.009930: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:50:02.009977: Standing charge is set to 46.63p
2026-08-18 19:50:02.227551: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:50:02.236406: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:50:02.252219: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:50:02.253482: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:50:02.253607: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:50:02.253756: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:50:02.259420: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:50:02.259739: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:50:02.356210: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:50:02.356355: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:50:02.357763: High export rate found rates in range 99p to -99p
2026-08-18 19:50:02.393874: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:50:02.394097: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:50:02.429397: Battery level now 4.16kWh, -1hr ago 4.64kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -18.42p, rate_forward 6.87p
2026-08-18 19:50:02.429707: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.58kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 19:50:02.554233: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:50:02.554644: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:50:02.668793: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:50:02.698200: Today's load divergence 99.93%, in-day adjustment 98.68%, damping 0.95x, yesterday 92.68% today 99.93% blend 17.36%
2026-08-18 19:50:02.698373: Today's predicted so far 12.3kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 12.3kWh forecast extra.
2026-08-18 19:50:02.698412: Today's actual load so far 12.29kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 19:50:02.748513: Inverter 0: Type SK Sunsynk
2026-08-18 19:50:02.748603: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:50:02.748773: Reserve min: 7%, battery_min: 7%
2026-08-18 19:50:02.748844: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:50:02.749098: Inverter 0 SoC: 4.16kW 26%, current charge rate 5000W, current discharge rate 5250W, current battery power 692W, current battery voltage 51.2V, grid power -54W, load power 744W, PV Power 0W
2026-08-18 19:50:02.749271: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:50:02.749365: Inverter 0 scheduled charge enable is False
2026-08-18 19:50:02.749402: Inverter 0 charge windows currently []
2026-08-18 19:50:02.749509: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:50:02.749688: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:50:02.749733: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:50:02.749839: Inverter 0 scheduled discharge enable is False
2026-08-18 19:50:02.750024: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:50:02.750070: Inverter 0 discharge windows currently []
2026-08-18 19:50:02.750134: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:50:02.750165: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:50:02.750215: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:50:02.884833: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:50:02.884941: Plan was last updated on 2026-08-18 19:40:00+01:00 and is now 10.0 minutes old
2026-08-18 19:50:02.885290: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:50:02.885342: Best export window [  ]
2026-08-18 19:50:02.886295: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:50:02.889653: Load divergence over 8.0 hours mean 601.39W, min 332.4W, max 1405.2W, std dev 248.44W, divergence 20.66%
2026-08-18 19:50:02.908856: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:50:02.909024: LoadML is_calculating True
2026-08-18 19:50:02.909128: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:50:02.945765: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.86p, metric_keep 126.1kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.81kWh, PV 0.0kWh
2026-08-18 19:50:03.077651: Battery has 3.58 hours left - now at 4.16kWh
2026-08-18 19:50:03.169341: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 661.25p, metric_keep 126.7kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.73kWh, PV 0.0kWh
2026-08-18 19:50:03.271437: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 367.96p, metric_keep 3.93kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.73kWh, PV 0.0kWh
2026-08-18 19:50:03.443584: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 357.93p, metric_keep 1.32kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.81kWh, PV 0.0kWh
2026-08-18 19:50:03.443694: Saving plan best values to HA entities
2026-08-18 19:50:03.745860: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:50:03.753887: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:50:03.767715: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.76kWh, house 0.04kWh, export 0.0kWh, metric 357.93p, metric10 367.96p
2026-08-18 19:50:03.933606: Marginal costs baseline metric (no standing charge): 311.3009
2026-08-18 19:50:04.321845: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:50:04.444088: Rate array import [{'start': 1190, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1190, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:50:04.444690: - Your estimated bill for today is £1.78 and tomorrow is £1.97
2026-08-18 19:50:04.444735: - 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-18 19:50:04.444757: - The battery is currently at 26% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 19:50:04.444777: - For the next 48 hours there will be no solar generation.
2026-08-18 19:50:04.444795: - You have enough battery to reach the next charge.
2026-08-18 19:50:04.455952: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 19:50:04.456036: 
2026-08-18 19:50:04.532344: Plan calculation took 1.65 seconds
2026-08-18 19:50:04.536045: No high rate period found
2026-08-18 19:50:04.666634: Import threshold used for optimisation was 8.0p
2026-08-18 19:50:04.747719: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:50:04.755380: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 26%, target 100%
2026-08-18 19:50:04.755516: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:50:04.755611: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:50:04.755861: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:50:04.756192: No export window planned
2026-08-18 19:50:04.756383: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:50:04.756437: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:50:04.756663: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:50:04.757102: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:50:04.757168: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:50:04.757226: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:50:04.757366: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.757610: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.757687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.757749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.757808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.757932: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.757986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:04.758790: Inverter 0 count register writes 0
2026-08-18 19:50:04.784304: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 19:50:04.784640: Recompute is saving previous plan...
2026-08-18 19:50:04.785989: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 19:50:04.786142: Best export window [  ]
2026-08-18 19:50:04.787536: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:50:04.792697: Load divergence over 8.0 hours mean 601.39W, min 332.4W, max 1405.2W, std dev 248.44W, divergence 20.66%
2026-08-18 19:50:04.821205: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:50:04.821414: LoadML is_calculating True
2026-08-18 19:50:04.821541: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:50:04.835497: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 19:50:04.836097: Optimise levels pass started at 2026-08-18 19:50:04
2026-08-18 19:50:04.836416: Optimise all windows, total charge 24 export 1
2026-08-18 19:50:07.021208: >> Region optimisation pass width 960 gives best_metric 420.21p, best_cost 448.52p, best_cycle 51.03kWh, best_import 36.95kWh
2026-08-18 19:50:07.347292: >> Region optimisation pass width 480 gives best_metric 420.21p, best_cost 448.52p, best_cycle 51.03kWh, best_import 36.95kWh
2026-08-18 19:50:07.712630: >> Region optimisation pass width 240 gives best_metric 420.21p, best_cost 448.52p, best_cycle 51.03kWh, best_import 36.95kWh
2026-08-18 19:50:09.091624: >> Region optimisation pass width 120 gives best_metric 420.21p, best_cost 448.52p, best_cycle 51.03kWh, best_import 36.95kWh
2026-08-18 19:50:09.091830: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 19:50:09.091936: Optimise levels pass ended at 2026-08-18 19:50:09, duration 4.3 seconds tried 58 combinations
2026-08-18 19:50:09.092013: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 420.21p, best_keep 1.32kWh, best_cycle 51.03kWh, best_carbon 0kg, best_import 36.95kWh
2026-08-18 19:50:09.120137: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 19:50:19.505526: Tweak plan optimisation started metric 295.24p, cost 305.06p
2026-08-18 19:50:22.100788: Tweak optimisation finished metric 295.24p, cost 305.06p, metric_keep 1.32kWh, cycle 29.01kWh, carbon 0kg, import 19.02kWh, changed 8 window(s)
2026-08-18 19:50:22.136557: Swap charge optimisation started metric 295.24p, cost 305.06p, min_improvement_swap 0.1p
2026-08-18 19:50:23.369323: Swap charge optimisation finished metric 295.24p, cost 305.06p
2026-08-18 19:50:23.505304: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 293.66p -> 293.41p, plan now metric 296.47p, cost 300.92p, cycle 29.01kWh, import 18.5kWh
2026-08-18 19:50:23.516942: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:50:23.517294: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:50:23.517522: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:50:23.517712: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 19:50:23.561281: Previous plan best metric is 295.24 (cost 305.06) and new plan best metric is 295.24 (cost 305.06)
2026-08-18 19:50:23.564090: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 19:50:23.564214: Plan valid is now true after recompute was False
2026-08-18 19:50:23.594037: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 634.29p, metric_keep 125.85kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.61kWh, PV 0.0kWh
2026-08-18 19:50:23.734435: Battery has 3.58 hours left - now at 4.16kWh
2026-08-18 19:50:23.819956: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 659.61p, metric_keep 126.45kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.53kWh, PV 0.0kWh
2026-08-18 19:50:23.981514: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 360.76p, metric_keep 3.92kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.53kWh, PV 0.0kWh
2026-08-18 19:50:24.127116: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 349.7p, metric_keep 1.32kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.61kWh, PV 0.0kWh
2026-08-18 19:50:24.127220: Saving plan best values to HA entities
2026-08-18 19:50:24.397993: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:50:24.405307: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:50:24.421888: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.04kWh, export 0.0kWh, metric 349.7p, metric10 360.76p
2026-08-18 19:50:24.522053: Marginal costs baseline metric (no standing charge): 303.0678
2026-08-18 19:50:24.924400: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:50:25.001045: Rate array import [{'start': 1190, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1190, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:50:25.001731: - Your estimated bill for today is £1.78 and tomorrow is £1.97
2026-08-18 19:50:25.001783: - 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-18 19:50:25.001807: - The battery is currently at 26% and is in eco mode for the next 3 and three quarters hours.
2026-08-18 19:50:25.001825: - For the next 48 hours there will be no solar generation.
2026-08-18 19:50:25.001876: - You have enough battery to reach the next charge.
2026-08-18 19:50:25.001910: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 19:50:25.001930: 
2026-08-18 19:50:25.036007: Plan calculation took 20.25 seconds
2026-08-18 19:50:25.036215: Inverter 0: Type SK Sunsynk
2026-08-18 19:50:25.036280: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:50:25.036449: Reserve min: 7%, battery_min: 7%
2026-08-18 19:50:25.036517: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:50:25.036767: Inverter 0 SoC: 4.07kW 25%, current charge rate 5000W, current discharge rate 5250W, current battery power 702W, current battery voltage 51.2V, grid power -53W, load power 749W, PV Power 0W
2026-08-18 19:50:25.036917: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:50:25.037005: Inverter 0 scheduled charge enable is False
2026-08-18 19:50:25.037042: Inverter 0 charge windows currently []
2026-08-18 19:50:25.037142: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:50:25.037364: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:50:25.037414: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:50:25.037519: Inverter 0 scheduled discharge enable is False
2026-08-18 19:50:25.037706: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:50:25.037750: Inverter 0 discharge windows currently []
2026-08-18 19:50:25.037835: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:50:25.037867: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:50:25.037917: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:50:25.110635: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 25%, target 100%
2026-08-18 19:50:25.110801: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:50:25.110896: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:50:25.111216: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:50:25.111982: No export window planned
2026-08-18 19:50:25.125895: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:50:25.125980: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:50:25.126285: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:50:25.126538: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:50:25.126650: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:50:25.126763: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:50:25.126917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127012: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127104: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127156: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127294: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127382: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127434: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.127943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.128073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.128124: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:50:25.128202: Inverter 0 count register writes 0
2026-08-18 19:50:25.168355: Total inverter register writes now 867
2026-08-18 19:50:25.250120: Info: Completed run status Demand
2026-08-18 19:50:25.259018: Info: record_status Demand
2026-08-18 19:50:25.267565: Saved current settings to /config/predbat_config.json
2026-08-18 19:50:25.267848: Compare, best tariff: current metric 129.87p
2026-08-18 19:50:29.332436: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0020 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 19:50:29.338626: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0006 kWh (-1.3%)
2026-08-18 19:50:29.339054: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0006 kWh (-1.3%)
2026-08-18 19:50:30.554004: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=-0.0006 kWh (-1.4%) [drift vs teacher-forced: +0.0004 kWh]
2026-08-18 19:50:30.558317: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0020 kWh
2026-08-18 19:50:30.558492: ML Predictor: Curriculum final pass 5/5: full dataset (60.2 days)
2026-08-18 19:50:30.558603: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 19:50:31.246091: ML Predictor: Creating dataset with 1445 hours of training data, 48 hours validation
2026-08-18 19:50:36.641504: ML Predictor: Created 17056 training samples, 576 validation samples
2026-08-18 19:50:36.696373: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0597 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7065 std=4.5637) import_rate(mean=16.5423 std=8.4027) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5293)
2026-08-18 19:50:36.780574: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 19:50:36.793628: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 19:50:36.822423: ML Predictor: Baseline (pre-finetune) val_mae=0.0032 kWh val_bias=-0.0014 kWh
2026-08-18 19:50:52.284932: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0089 val_mae=0.0037 kWh val_bias=+0.0005 kWh (+1.0%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 19:51:04.599181: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:51:04.599434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:51:04.599477: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:51:04.599614: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:51:04.599653: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:51:04.599676: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:51:04.599766: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:51:05.218001: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0126 val_mae=0.0043 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 19:51:19.793383: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0134 val_mae=0.0049 kWh val_bias=+0.0007 kWh (+1.5%) combined=0.0044 kWh ema_combined=0.0030 kWh
2026-08-18 19:51:35.465340: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0115 val_mae=0.0035 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-18 19:51:50.121324: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0108 val_mae=0.0034 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-18 19:52:04.572305: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0095 val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-18 19:52:18.042614: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0096 val_mae=0.0038 kWh val_bias=-0.0009 kWh (-1.8%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 19:52:30.941858: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0097 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-18 19:52:44.810696: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0087 val_mae=0.0027 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 19:52:59.614540: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0080 val_mae=0.0027 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-18 19:53:14.216964: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0077 val_mae=0.0027 kWh val_bias=-0.0009 kWh (-1.7%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 19:53:18.960148: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:53:18.960632: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:53:18.960789: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:53:18.961156: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:53:18.961319: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:53:18.961480: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:53:18.961630: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:53:28.738412: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0069 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 19:53:43.504128: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0076 val_mae=0.0026 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-18 19:53:57.400712: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0083 val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 19:54:10.548651: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 19:54:24.292883: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0069 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 19:54:39.819290: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0064 val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 19:54:54.547663: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 19:55:00.320613: --------------- PredBat - update at 2026-08-18 19:55:00+01:00 with clock skew 0 minutes, minutes now 1195
2026-08-18 19:55:00.333541: Saved current settings to /config/predbat_config.json
2026-08-18 19:55:00.333774: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 19:55:00.334358: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 19:55:00.334686: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 19:55:00.372889: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 19:55:00.373045: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 19:55:00.373340: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 19:55:00.374019: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 19:55:00.374205: Predbat mode is set to Control charge & discharge
2026-08-18 19:55:00.644601: Found 21602 load_today datapoints going back 28 days
2026-08-18 19:55:00.644713: Using load_power data to fill gaps in load_today data
2026-08-18 19:55:01.850789: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 19:55:01.851014: Zero load period starting at 2026-08-17T10:54:00+0100 (1981 minutes) for 189 minutes with base value 205.2
2026-08-18 19:55:01.852560: Processing 721 30-minute periods for power integration
2026-08-18 19:55:02.119217: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 19:55:02.119397: Car charging hold False, threshold 6.0kWh
2026-08-18 19:55:02.119479: Current data so far today: load 12.4kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 19:55:02.139275: Car 0 using Octopus Intelligent is unplugged
2026-08-18 19:55:02.139603: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 19:55:02.140413: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:55:02.140572: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 19:55:02.140678: Standing charge is set to 46.63p
2026-08-18 19:55:02.372140: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:55:02.388516: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:55:02.388936: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 19:55:02.391223: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 19:55:02.391503: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 19:55:02.391790: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 19:55:02.397954: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 19:55:02.398300: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 19:55:02.437849: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 19:55:02.438653: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 19:55:02.439885: High export rate found rates in range 99p to -99p
2026-08-18 19:55:02.463721: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 19:55:02.463844: Car 0 on Octopus Intelligent, no active plan
2026-08-18 19:55:02.477884: Battery level now 4.16kWh, -1hr ago 4.64kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -18.42p, rate_forward 6.87p
2026-08-18 19:55:02.478309: 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-18 19:55:02.543028: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 19:55:02.543169: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 19:55:02.660053: Using weighted-bucket historical load forecast over 14 days
2026-08-18 19:55:02.705220: Today's load divergence 100.11%, in-day adjustment 98.84%, damping 0.95x, yesterday 92.68% today 100.11% blend 17.01%
2026-08-18 19:55:02.705381: Today's predicted so far 12.33kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 12.33kWh forecast extra.
2026-08-18 19:55:02.705529: Today's actual load so far 12.35kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 19:55:02.744099: Inverter 0: Type SK Sunsynk
2026-08-18 19:55:02.744599: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 19:55:02.744897: Reserve min: 7%, battery_min: 7%
2026-08-18 19:55:02.745068: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 19:55:02.745433: Inverter 0 SoC: 4.0kW 25%, current charge rate 5000W, current discharge rate 5250W, current battery power 737W, current battery voltage 51.2V, grid power -61W, load power 744W, PV Power 0W
2026-08-18 19:55:02.745687: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:55:02.745858: Inverter 0 scheduled charge enable is False
2026-08-18 19:55:02.745971: Inverter 0 charge windows currently []
2026-08-18 19:55:02.746081: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 19:55:02.746284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:55:02.746377: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:55:02.746476: Inverter 0 scheduled discharge enable is False
2026-08-18 19:55:02.746708: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:55:02.746773: Inverter 0 discharge windows currently []
2026-08-18 19:55:02.746842: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:55:02.746875: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:55:02.746896: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:55:02.857600: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 19:55:02.857694: Plan was last updated on 2026-08-18 19:50:00+01:00 and is now 5.0 minutes old
2026-08-18 19:55:02.858006: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 19:55:02.858054: Best export window [  ]
2026-08-18 19:55:02.859162: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 19:55:02.863040: Load divergence over 8.0 hours mean 602.98W, min 337.2W, max 1693.2W, std dev 278.13W, divergence 23.06%
2026-08-18 19:55:02.914112: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 19:55:02.914225: LoadML is_calculating True
2026-08-18 19:55:02.914252: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 19:55:02.988432: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.26p, metric_keep 126.42kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.73kWh, PV 0.0kWh
2026-08-18 19:55:03.195192: Battery has 3.42 hours left - now at 4.0kWh
2026-08-18 19:55:03.243049: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 664.61p, metric_keep 126.96kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.65kWh, PV 0.0kWh
2026-08-18 19:55:03.505795: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 368.61p, metric_keep 4.38kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.65kWh, PV 0.0kWh
2026-08-18 19:55:03.625745: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 357.47p, metric_keep 1.78kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.73kWh, PV 0.0kWh
2026-08-18 19:55:03.626231: Saving plan best values to HA entities
2026-08-18 19:55:03.941715: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 19:55:03.949412: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 19:55:03.962680: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.23kWh, house 0.16kWh, export 0.0kWh, metric 357.47p, metric10 368.61p
2026-08-18 19:55:04.137347: Marginal costs baseline metric (no standing charge): 310.8389
2026-08-18 19:55:04.532143: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 19:55:04.659587: Rate array import [{'start': 1195, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1195, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 19:55:04.673524: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 19:55:04.673598: - 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-18 19:55:04.673624: - The battery is currently at 25% and is in eco mode for the next 3 and a half hours.
2026-08-18 19:55:04.673643: - For the next 48 hours there will be no solar generation.
2026-08-18 19:55:04.673661: - You have enough battery to reach the next charge.
2026-08-18 19:55:04.673679: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-18 19:55:04.673873: 
2026-08-18 19:55:04.720016: Plan calculation took 1.86 seconds
2026-08-18 19:55:04.725569: No high rate period found
2026-08-18 19:55:04.818836: Import threshold used for optimisation was 8.0p
2026-08-18 19:55:04.924346: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 19:55:04.931694: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 25%, target 100%
2026-08-18 19:55:04.931885: Inverter 0 disabled charge window while waiting for schedule (now 08-18 19:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 19:55:04.932020: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:55:04.932324: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:55:04.932441: No export window planned
2026-08-18 19:55:04.932633: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 19:55:04.932695: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 19:55:04.932948: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 19:55:04.933191: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 19:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 19:55:04.933273: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 19:55:04.933349: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 19:55:04.933500: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933675: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933720: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933774: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933817: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.933972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.934012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.934081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.934129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.934173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.934230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 19:55:04.934270: Inverter 0 count register writes 0
2026-08-18 19:55:04.957961: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 19:55:04.965321: Total inverter register writes now 867
2026-08-18 19:55:05.011478: Info: Completed run status Demand
2026-08-18 19:55:05.020418: Info: record_status Demand
2026-08-18 19:55:05.029218: Saved current settings to /config/predbat_config.json
2026-08-18 19:55:05.029579: Compare, best tariff: current metric 129.87p
2026-08-18 19:55:11.040376: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0063 val_mae=0.0023 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-18 19:55:22.012642: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0019 kWh ema_combined=0.0016 kWh
2026-08-18 19:55:32.393232: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-18 19:55:46.416451: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0049 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 19:55:49.170144: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:55:49.170372: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:55:49.170417: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:55:49.170570: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:55:49.170614: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:55:49.170637: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:55:49.170656: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 19:56:00.975046: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-18 19:56:17.375144: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-18 19:56:30.105301: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0006 kWh (-1.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 19:56:46.162410: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0050 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 19:56:47.240204: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 19:56:47.391511: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 19:57:01.229192: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0049 val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-18 19:57:14.564555: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0050 val_mae=0.0019 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0015 kWh ema_combined=0.0013 kWh
2026-08-18 19:57:27.764798: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0046 val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-18 19:57:44.132359: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-18 19:57:44.138592: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.8%)
2026-08-18 19:57:44.138924: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.8%)
2026-08-18 19:57:46.228235: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=-0.0003 kWh (-0.5%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 19:57:46.231464: ML Predictor: Curriculum training complete, final val_mae=0.0019 kWh
2026-08-18 19:57:46.238665: ML Component: Training successful, val_mae=0.0019 kWh
2026-08-18 19:57:46.364587: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 19:57:46.368987: ML Component: Generating predictions load data age 60.0 days, 17345 data points
2026-08-18 19:57:46.517867: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0503 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10736562459506094, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 19:57:47.235600: ML Component: Generated 576 predictions (total 31.37 kWh over 48h)
2026-08-18 19:57:47.275438: ML Component: Prediction cycle completed
2026-08-18 19:57:47.395148: ML Component: Saved 17345 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 19:57:49.560870: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 19:57:49.561120: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 19:57:49.561170: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 19:57:49.561381: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 19:57:49.561441: Note: Inverter does not support discharge freeze - disabled
2026-08-18 19:57:49.561475: Note: Inverter does not support charge freeze - disabled
2026-08-18 19:57:49.561500: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:00:00.784322: --------------- PredBat - update at 2026-08-18 20:00:00+01:00 with clock skew 0 minutes, minutes now 1200
2026-08-18 20:00:00.785343: Saved current settings to /config/predbat_config.json
2026-08-18 20:00:00.785522: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 20:00:00.785616: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:00:00.785715: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:00:00.810686: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:00:00.810845: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:00:00.811105: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:00:00.811751: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:00:00.811973: Predbat mode is set to Control charge & discharge
2026-08-18 20:00:01.004447: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:00:01.004569: Using load_power data to fill gaps in load_today data
2026-08-18 20:00:01.919888: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:00:01.920159: Zero load period starting at 2026-08-17T10:54:00+0100 (1986 minutes) for 189 minutes with base value 205.175
2026-08-18 20:00:01.922009: Processing 721 30-minute periods for power integration
2026-08-18 20:00:02.113775: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:00:02.113887: Car charging hold False, threshold 6.0kWh
2026-08-18 20:00:02.113924: Current data so far today: load 12.6kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:00:02.127460: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:00:02.127553: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:00:02.128248: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:00:02.128347: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:00:02.128424: Standing charge is set to 46.63p
2026-08-18 20:00:02.236060: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:00:02.236394: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:00:02.236640: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:00:02.238457: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:00:02.238650: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:00:02.238838: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:00:02.245287: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:00:02.245696: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:00:02.292624: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:00:02.292753: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:00:02.294423: High export rate found rates in range 99p to -99p
2026-08-18 20:00:02.327970: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:00:02.328077: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:00:02.345310: Battery level now 4.0kWh, -1hr ago 4.58kWh, at midnight 6.84kWh, battery value change in the last hour -3.96p, change today -19.52p, rate_forward 6.87p
2026-08-18 20:00:02.345979: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:00:02.410233: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:00:02.410398: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:00:02.516024: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:00:02.550559: Today's load divergence 100.61%, in-day adjustment 99.27%, damping 0.95x, yesterday 92.68% today 100.58% blend 16.67%
2026-08-18 20:00:02.550644: Today's predicted so far 12.46kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 12.46kWh forecast extra.
2026-08-18 20:00:02.550671: Today's actual load so far 12.56kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 20:00:02.583957: Inverter 0: Type SK Sunsynk
2026-08-18 20:00:02.584040: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:00:02.584213: Reserve min: 7%, battery_min: 7%
2026-08-18 20:00:02.584281: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:00:02.584529: Inverter 0 SoC: 4.0kW 25%, current charge rate 5000W, current discharge rate 5250W, current battery power 1013W, current battery voltage 51.2V, grid power -51W, load power 1075W, PV Power 0W
2026-08-18 20:00:02.584700: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:00:02.584787: Inverter 0 scheduled charge enable is False
2026-08-18 20:00:02.584821: Inverter 0 charge windows currently []
2026-08-18 20:00:02.584854: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:00:02.584986: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:00:02.585024: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:00:02.585065: Inverter 0 scheduled discharge enable is False
2026-08-18 20:00:02.585188: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:00:02.585225: Inverter 0 discharge windows currently []
2026-08-18 20:00:02.585248: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:00:02.585267: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:00:02.585290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:00:02.668846: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:00:02.668985: Plan was last updated on 2026-08-18 19:50:00+01:00 and is now 10.0 minutes old
2026-08-18 20:00:02.669261: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:00:02.669319: Best export window [  ]
2026-08-18 20:00:02.670439: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:00:02.673843: Load divergence over 8.0 hours mean 604.46W, min 323.4W, max 1621.2W, std dev 264.65W, divergence 21.89%
2026-08-18 20:00:02.699281: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:00:02.699397: LoadML is_calculating False
2026-08-18 20:00:02.699475: Creating pool of 12 processes to match your CPU count
2026-08-18 20:00:02.840448: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 638.09p, metric_keep 126.27kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.96kWh, PV 0.0kWh
2026-08-18 20:00:03.007166: Battery has 3.33 hours left - now at 4.0kWh
2026-08-18 20:00:03.061728: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 663.34p, metric_keep 126.8kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.88kWh, PV 0.0kWh
2026-08-18 20:00:03.162337: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 370.19p, metric_keep 4.05kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.88kWh, PV 0.0kWh
2026-08-18 20:00:03.253015: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 359.96p, metric_keep 1.52kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.96kWh, PV 0.0kWh
2026-08-18 20:00:03.253093: Saving plan best values to HA entities
2026-08-18 20:00:03.435045: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:00:03.442122: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:00:03.449657: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.74kWh, house 0.11kWh, export 0.0kWh, metric 359.96p, metric10 370.19p
2026-08-18 20:00:03.537646: Marginal costs baseline metric (no standing charge): 313.3247
2026-08-18 20:00:03.847098: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:00:03.928315: Rate array import [{'start': 1200, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1200, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:00:03.929003: - Your estimated bill for today is £1.79 and tomorrow is £1.96
2026-08-18 20:00:03.929048: - 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-18 20:00:03.929072: - The battery is currently at 25% and is in eco mode for the next 3 and a half hours.
2026-08-18 20:00:03.929091: - For the next 48 hours there will be no solar generation.
2026-08-18 20:00:03.929109: - You have enough battery to reach the next charge.
2026-08-18 20:00:03.929126: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-18 20:00:03.929143: 
2026-08-18 20:00:03.992184: Plan calculation took 1.32 seconds
2026-08-18 20:00:03.996099: No high rate period found
2026-08-18 20:00:04.063395: Import threshold used for optimisation was 8.0p
2026-08-18 20:00:04.128005: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:00:04.135519: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 25%, target 100%
2026-08-18 20:00:04.135732: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:00:04.135862: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:00:04.136251: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:00:04.136364: No export window planned
2026-08-18 20:00:04.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-18 20:00:04.136534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:00:04.136665: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:00:04.136833: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:00:04.136888: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:00:04.137020: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:00:04.137181: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137365: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137512: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137567: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.137995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.138059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.138095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:04.138125: Inverter 0 count register writes 0
2026-08-18 20:00:04.157857: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 20:00:04.158028: Recompute is saving previous plan...
2026-08-18 20:00:04.158914: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 20:00:04.158968: Best export window [  ]
2026-08-18 20:00:04.159763: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:00:04.164408: Load divergence over 8.0 hours mean 604.46W, min 323.4W, max 1621.2W, std dev 264.65W, divergence 21.89%
2026-08-18 20:00:04.183718: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:00:04.183831: LoadML is_calculating False
2026-08-18 20:00:04.183964: Creating pool of 12 processes to match your CPU count
2026-08-18 20:00:04.276590: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 20:00:04.279789: Optimise levels pass started at 2026-08-18 20:00:04
2026-08-18 20:00:04.279886: Optimise all windows, total charge 24 export 1
2026-08-18 20:00:04.748889: >> Region optimisation pass width 960 gives best_metric 423.39p, best_cost 452.83p, best_cycle 51.26kWh, best_import 37.28kWh
2026-08-18 20:00:04.911526: >> Region optimisation pass width 480 gives best_metric 423.39p, best_cost 452.83p, best_cycle 51.26kWh, best_import 37.28kWh
2026-08-18 20:00:05.233308: >> Region optimisation pass width 240 gives best_metric 423.39p, best_cost 452.83p, best_cycle 51.26kWh, best_import 37.28kWh
2026-08-18 20:00:05.931203: >> Region optimisation pass width 120 gives best_metric 423.39p, best_cost 452.83p, best_cycle 51.26kWh, best_import 37.28kWh
2026-08-18 20:00:05.931572: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 20:00:05.931641: Optimise levels pass ended at 2026-08-18 20:00:05, duration 1.7 seconds tried 58 combinations
2026-08-18 20:00:05.931701: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 423.39p, best_keep 1.52kWh, best_cycle 51.26kWh, best_carbon 0kg, best_import 37.28kWh
2026-08-18 20:00:05.952324: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 20:00:08.912188: Tweak plan optimisation started metric 297.63p, cost 307.24p
2026-08-18 20:00:09.321077: Tweak optimisation finished metric 297.63p, cost 307.24p, metric_keep 1.52kWh, cycle 28.86kWh, carbon 0kg, import 19.08kWh, changed 8 window(s)
2026-08-18 20:00:09.348101: Swap charge optimisation started metric 297.63p, cost 307.24p, min_improvement_swap 0.1p
2026-08-18 20:00:10.084669: Swap charge optimisation finished metric 297.63p, cost 307.24p
2026-08-18 20:00:10.204702: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 296.07p -> 295.91p, plan now metric 298.07p, cost 305.2p, cycle 29.13kWh, import 18.83kWh
2026-08-18 20:00:10.219487: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:00:10.220071: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:00:10.220486: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:00:10.220803: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:00:10.267198: Previous plan best metric is 297.63 (cost 307.24) and new plan best metric is 297.63 (cost 307.24)
2026-08-18 20:00:10.267524: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 20:00:10.267849: Plan valid is now true after recompute was False
2026-08-18 20:00:10.305334: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.63p, metric_keep 126.02kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.78kWh, PV 0.0kWh
2026-08-18 20:00:10.432370: Battery has 3.33 hours left - now at 4.0kWh
2026-08-18 20:00:10.474086: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 661.81p, metric_keep 126.54kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.69kWh, PV 0.0kWh
2026-08-18 20:00:10.588594: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 363.11p, metric_keep 4.04kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.69kWh, PV 0.0kWh
2026-08-18 20:00:10.779410: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 351.83p, metric_keep 1.52kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.78kWh, PV 0.0kWh
2026-08-18 20:00:10.779495: Saving plan best values to HA entities
2026-08-18 20:00:11.005350: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:00:11.013002: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:00:11.019423: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.72kWh, house 0.11kWh, export 0.0kWh, metric 351.83p, metric10 363.11p
2026-08-18 20:00:11.096606: Marginal costs baseline metric (no standing charge): 305.2004
2026-08-18 20:00:11.336193: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:00:11.396292: Rate array import [{'start': 1200, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1200, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:00:11.396858: - Your estimated bill for today is £1.79 and tomorrow is £1.96
2026-08-18 20:00:11.396903: - 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-18 20:00:11.396937: - The battery is currently at 25% and is in eco mode for the next 3 and a half hours.
2026-08-18 20:00:11.396979: - For the next 48 hours there will be no solar generation.
2026-08-18 20:00:11.397015: - You have enough battery to reach the next charge.
2026-08-18 20:00:11.397037: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-18 20:00:11.397052: 
2026-08-18 20:00:11.449146: Plan calculation took 7.29 seconds
2026-08-18 20:00:11.449487: Inverter 0: Type SK Sunsynk
2026-08-18 20:00:11.449539: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:00:11.449808: Reserve min: 7%, battery_min: 7%
2026-08-18 20:00:11.449916: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:00:11.450332: Inverter 0 SoC: 4.0kW 25%, current charge rate 5000W, current discharge rate 5250W, current battery power 1182W, current battery voltage 51.2V, grid power -52W, load power 1225W, PV Power 0W
2026-08-18 20:00:11.450603: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:00:11.450739: Inverter 0 scheduled charge enable is False
2026-08-18 20:00:11.450796: Inverter 0 charge windows currently []
2026-08-18 20:00:11.450842: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:00:11.451052: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:00:11.451104: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:00:11.451175: Inverter 0 scheduled discharge enable is False
2026-08-18 20:00:11.451372: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:00:11.451419: Inverter 0 discharge windows currently []
2026-08-18 20:00:11.451455: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:00:11.451491: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:00:11.451527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:00:11.506590: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 25%, target 100%
2026-08-18 20:00:11.506728: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:00:11.506801: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:00:11.507040: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:00:11.507155: No export window planned
2026-08-18 20:00:11.507314: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:00:11.507358: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:00:11.507521: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:00:11.507686: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:00:11.507735: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:00:11.507801: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:00:11.507936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508035: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508061: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:00:11.508397: Inverter 0 count register writes 0
2026-08-18 20:00:11.531566: Total inverter register writes now 867
2026-08-18 20:00:11.565074: Info: Completed run status Demand
2026-08-18 20:00:11.573558: Info: record_status Demand
2026-08-18 20:00:11.580234: Saved current settings to /config/predbat_config.json
2026-08-18 20:00:11.580537: Compare, best tariff: current metric 129.87p
2026-08-18 20:00:48.691519: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:00:48.691839: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:00:48.691892: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:00:48.692204: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:00:48.692249: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:00:48.692292: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:00:48.692332: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:02:16.973995: Info: HAHistory: Pruning history data started.
2026-08-18 20:02:16.976833: Info: HAHistory: Pruning history data completed.
2026-08-18 20:02:48.910218: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:02:48.910437: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:02:48.910497: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:02:48.910677: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:02:48.910732: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:02:48.910753: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:02:48.910775: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:04:49.116653: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:04:49.116835: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:04:49.116869: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:04:49.117017: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:04:49.117067: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:04:49.117084: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:04:49.117099: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:05:00.204191: --------------- PredBat - update at 2026-08-18 20:05:00+01:00 with clock skew 0 minutes, minutes now 1205
2026-08-18 20:05:00.204869: Saved current settings to /config/predbat_config.json
2026-08-18 20:05:00.204980: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 20:05:00.205044: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:05:00.205158: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:05:00.221747: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:05:00.221862: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:05:00.222027: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:05:00.222523: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:05:00.222686: Predbat mode is set to Control charge & discharge
2026-08-18 20:05:00.413505: Found 21602 load_today datapoints going back 27 days
2026-08-18 20:05:00.413646: Using load_power data to fill gaps in load_today data
2026-08-18 20:05:01.298085: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:05:01.298284: Zero load period starting at 2026-08-17T10:54:00+0100 (1991 minutes) for 189 minutes with base value 205.15
2026-08-18 20:05:01.299647: Processing 721 30-minute periods for power integration
2026-08-18 20:05:01.483558: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:05:01.483678: Car charging hold False, threshold 6.0kWh
2026-08-18 20:05:01.483721: Current data so far today: load 12.7kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:05:01.500395: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:05:01.500692: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:05:01.501466: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:05:01.501551: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:05:01.501613: Standing charge is set to 46.63p
2026-08-18 20:05:01.603430: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:05:01.608181: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:05:01.608498: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:05:01.610053: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:05:01.610203: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:05:01.610390: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:05:01.618383: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:05:01.618945: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:05:01.689744: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:05:01.689882: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:05:01.691870: High export rate found rates in range 99p to -99p
2026-08-18 20:05:01.727993: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:05:01.728104: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:05:01.739681: Battery level now 4.0kWh, -1hr ago 4.58kWh, at midnight 6.84kWh, battery value change in the last hour -3.96p, change today -19.52p, rate_forward 6.87p
2026-08-18 20:05:01.740066: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:05:01.803027: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:05:01.803250: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:05:01.899464: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:05:01.935575: Today's load divergence 100.52%, in-day adjustment 99.22%, damping 0.95x, yesterday 92.68% today 100.49% blend 16.32%
2026-08-18 20:05:01.935666: Today's predicted so far 12.56kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 12.56kWh forecast extra.
2026-08-18 20:05:01.935698: Today's actual load so far 12.65kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 20:05:01.966264: Inverter 0: Type SK Sunsynk
2026-08-18 20:05:01.966354: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:05:01.966522: Reserve min: 7%, battery_min: 7%
2026-08-18 20:05:01.966590: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:05:01.966837: Inverter 0 SoC: 4.0kW 25%, current charge rate 5000W, current discharge rate 5250W, current battery power 1016W, current battery voltage 51.2V, grid power -57W, load power 1072W, PV Power 0W
2026-08-18 20:05:01.966985: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:05:01.967070: Inverter 0 scheduled charge enable is False
2026-08-18 20:05:01.967107: Inverter 0 charge windows currently []
2026-08-18 20:05:01.967133: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:05:01.967256: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:05:01.967294: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:05:01.967330: Inverter 0 scheduled discharge enable is False
2026-08-18 20:05:01.967452: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:05:01.967489: Inverter 0 discharge windows currently []
2026-08-18 20:05:01.967510: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:05:01.967532: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:05:01.967550: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:05:02.024314: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:05:02.024415: Plan was last updated on 2026-08-18 20:00:00+01:00 and is now 5.0 minutes old
2026-08-18 20:05:02.024613: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:05:02.024652: Best export window [  ]
2026-08-18 20:05:02.025499: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:05:02.028743: Load divergence over 8.0 hours mean 606.0W, min 343.8W, max 1461.0W, std dev 272.66W, divergence 22.5%
2026-08-18 20:05:02.046971: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:05:02.047075: LoadML is_calculating False
2026-08-18 20:05:02.047133: Creating pool of 12 processes to match your CPU count
2026-08-18 20:05:02.158520: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.03p, metric_keep 125.78kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.91kWh, PV 0.0kWh
2026-08-18 20:05:02.275116: Battery has 3.33 hours left - now at 4.0kWh
2026-08-18 20:05:02.323653: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 660.15p, metric_keep 126.3kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.83kWh, PV 0.0kWh
2026-08-18 20:05:02.401995: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 364.23p, metric_keep 3.73kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.83kWh, PV 0.0kWh
2026-08-18 20:05:02.474486: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 353.63p, metric_keep 1.18kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.91kWh, PV 0.0kWh
2026-08-18 20:05:02.474561: Saving plan best values to HA entities
2026-08-18 20:05:02.623684: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:05:02.629042: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:05:02.634368: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.04kWh, export 0.0kWh, metric 353.63p, metric10 364.23p
2026-08-18 20:05:02.715425: Marginal costs baseline metric (no standing charge): 306.9976
2026-08-18 20:05:02.984604: Marginal energy costs matrix computed: min=7.33 max=33.75
2026-08-18 20:05:03.050908: Rate array import [{'start': 1205, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1205, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:05:03.051659: - Your estimated bill for today is £1.77 and tomorrow is £1.96
2026-08-18 20:05:03.051708: - 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-18 20:05:03.051737: - The battery is currently at 25% and is in eco mode for the next 3 and a half hours.
2026-08-18 20:05:03.051784: - For the next 48 hours there will be no solar generation.
2026-08-18 20:05:03.051812: - You have enough battery to reach the next charge.
2026-08-18 20:05:03.051835: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-18 20:05:03.051873: 
2026-08-18 20:05:03.105866: Plan calculation took 1.08 seconds
2026-08-18 20:05:03.109594: No high rate period found
2026-08-18 20:05:03.159191: Import threshold used for optimisation was 8.0p
2026-08-18 20:05:03.207345: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:05:03.212892: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 25%, target 100%
2026-08-18 20:05:03.213016: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:05:03.213119: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:05:03.213383: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:05:03.213485: No export window planned
2026-08-18 20:05:03.213610: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:05:03.213645: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:05:03.213776: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:05:03.213951: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:05:03.214011: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:05:03.214069: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:05:03.214169: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214245: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214314: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:05:03.214640: Inverter 0 count register writes 0
2026-08-18 20:05:03.228607: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 20:05:03.233325: Total inverter register writes now 867
2026-08-18 20:05:03.265520: Info: Completed run status Demand
2026-08-18 20:05:03.271809: Info: record_status Demand
2026-08-18 20:05:03.277897: Saved current settings to /config/predbat_config.json
2026-08-18 20:05:03.278218: Compare, best tariff: current metric 129.87p
2026-08-18 20:05:34.379817: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:05:34.380077: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:05:34.380129: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:05:34.380355: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:05:34.380410: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:05:34.380432: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:05:34.380449: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:07:34.586354: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:07:34.586622: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:07:34.586669: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:07:34.586839: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:07:34.586884: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:07:34.586910: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:07:34.586951: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:09:48.811839: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:09:48.812255: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:09:48.812360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:09:48.812632: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:09:48.812678: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:09:48.812701: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:09:48.812720: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:10:00.914991: --------------- PredBat - update at 2026-08-18 20:10:00+01:00 with clock skew 0 minutes, minutes now 1210
2026-08-18 20:10:00.915649: Saved current settings to /config/predbat_config.json
2026-08-18 20:10:00.915793: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 20:10:00.915874: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:10:00.916036: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:10:00.930718: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:10:00.930821: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:10:00.930950: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:10:00.931418: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:10:00.931513: Predbat mode is set to Control charge & discharge
2026-08-18 20:10:01.094251: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:10:01.094367: Using load_power data to fill gaps in load_today data
2026-08-18 20:10:01.772696: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:10:01.772852: Zero load period starting at 2026-08-17T10:54:00+0100 (1996 minutes) for 189 minutes with base value 205.125
2026-08-18 20:10:01.774080: Processing 721 30-minute periods for power integration
2026-08-18 20:10:01.921826: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:10:01.921930: Car charging hold False, threshold 6.0kWh
2026-08-18 20:10:01.921965: Current data so far today: load 12.65kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:10:01.935671: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:10:01.935760: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:10:01.936423: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:10:01.936500: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:10:01.936544: Standing charge is set to 46.63p
2026-08-18 20:10:02.010810: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:10:02.011001: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:10:02.011149: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:10:02.012068: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:10:02.012161: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:10:02.012274: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:10:02.016744: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:10:02.017037: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:10:02.052283: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:10:02.052390: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:10:02.053532: High export rate found rates in range 99p to -99p
2026-08-18 20:10:02.076393: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:10:02.076499: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:10:02.086921: Battery level now 4.0kWh, -1hr ago 4.48kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today -19.52p, rate_forward 6.87p
2026-08-18 20:10:02.087294: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:10:02.151275: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:10:02.151434: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:10:02.228202: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:10:02.260421: Today's load divergence 99.9%, in-day adjustment 98.75%, damping 0.95x, yesterday 92.68% today 99.91% blend 15.97%
2026-08-18 20:10:02.260504: Today's predicted so far 12.57kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 12.57kWh forecast extra.
2026-08-18 20:10:02.260548: Today's actual load so far 12.56kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 20:10:02.286878: Inverter 0: Type SK Sunsynk
2026-08-18 20:10:02.286959: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:10:02.287150: Reserve min: 7%, battery_min: 7%
2026-08-18 20:10:02.287245: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:10:02.287518: Inverter 0 SoC: 3.78kW 24%, current charge rate 5000W, current discharge rate 5250W, current battery power 1072W, current battery voltage 51.2V, grid power -55W, load power 1127W, PV Power 0W
2026-08-18 20:10:02.287690: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:10:02.287792: Inverter 0 scheduled charge enable is False
2026-08-18 20:10:02.287837: Inverter 0 charge windows currently []
2026-08-18 20:10:02.287876: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:10:02.288058: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:10:02.288096: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:10:02.288135: Inverter 0 scheduled discharge enable is False
2026-08-18 20:10:02.288289: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:10:02.288326: Inverter 0 discharge windows currently []
2026-08-18 20:10:02.288346: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:10:02.288396: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:10:02.288433: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:10:02.340995: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:10:02.341112: Plan was last updated on 2026-08-18 20:00:00+01:00 and is now 10.0 minutes old
2026-08-18 20:10:02.341394: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:10:02.341462: Best export window [  ]
2026-08-18 20:10:02.342249: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:10:02.345417: Load divergence over 8.0 hours mean 607.07W, min 379.2W, max 1428.0W, std dev 255.59W, divergence 21.05%
2026-08-18 20:10:02.364106: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:10:02.364228: LoadML is_calculating False
2026-08-18 20:10:02.364307: Creating pool of 12 processes to match your CPU count
2026-08-18 20:10:02.466510: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 640.34p, metric_keep 126.49kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.89kWh, PV 0.0kWh
2026-08-18 20:10:02.573217: Battery has 3.17 hours left - now at 3.78kWh
2026-08-18 20:10:02.617428: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 665.37p, metric_keep 126.96kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.81kWh, PV 0.0kWh
2026-08-18 20:10:02.693429: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 372.14p, metric_keep 4.27kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.81kWh, PV 0.0kWh
2026-08-18 20:10:02.767833: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 362.36p, metric_keep 1.78kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.89kWh, PV 0.0kWh
2026-08-18 20:10:02.767934: Saving plan best values to HA entities
2026-08-18 20:10:02.908860: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:10:02.913228: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:10:02.917744: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.75kWh, house 0.18kWh, export 0.0kWh, metric 362.36p, metric10 372.14p
2026-08-18 20:10:02.989757: Marginal costs baseline metric (no standing charge): 315.7293
2026-08-18 20:10:03.258191: Marginal energy costs matrix computed: min=6.67 max=33.75
2026-08-18 20:10:03.324439: Rate array import [{'start': 1210, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1210, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:10:03.325053: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 20:10:03.325095: - 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-18 20:10:03.325118: - The battery is currently at 24% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 20:10:03.325137: - For the next 48 hours there will be no solar generation.
2026-08-18 20:10:03.325162: - You have enough battery to reach the next charge.
2026-08-18 20:10:03.325188: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 20:10:03.325212: 
2026-08-18 20:10:03.373764: Plan calculation took 1.03 seconds
2026-08-18 20:10:03.377637: No high rate period found
2026-08-18 20:10:03.420544: Import threshold used for optimisation was 8.0p
2026-08-18 20:10:03.463251: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:10:03.467972: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 24%, target 100%
2026-08-18 20:10:03.468070: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:10:03.468155: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:10:03.468356: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:10:03.468452: No export window planned
2026-08-18 20:10:03.468553: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:10:03.468582: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:10:03.468710: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:10:03.468892: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:10:03.468970: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:10:03.469084: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:10:03.469194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469230: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469256: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469284: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469304: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:03.469562: Inverter 0 count register writes 0
2026-08-18 20:10:03.482038: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 20:10:03.482168: Recompute is saving previous plan...
2026-08-18 20:10:03.482939: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 20:10:03.482978: Best export window [  ]
2026-08-18 20:10:03.483631: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:10:03.486387: Load divergence over 8.0 hours mean 607.07W, min 379.2W, max 1428.0W, std dev 255.59W, divergence 21.05%
2026-08-18 20:10:03.500215: Calculating data from yesterday for savings calculation
2026-08-18 20:10:03.510765: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 20:10:03.550069: predict yesterday end_record 08-19 00:00:00, final soc 6.75kWh, metric 175.96p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 20:10:03.562799: predict yesterday10 end_record 08-19 00:00:00, final soc 6.36kWh, metric 172.62p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 20:10:03.580310: predict yesterday end_record 08-19 00:00:00, final soc 6.75kWh, metric 175.96p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 20:10:03.615614: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.17kWh, export 0.0kWh, battery_cycle 23.22kWh, start_soc 6.7kWh,  final_soc 6.75kWh and battery_value 46.38kWh
2026-08-18 20:10:03.688830: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 440.69p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 20:10:03.688960: Yesterday: No Battery/PV system cost predicted was £4.41 (adjusted £4.41) vs £1.81 (adjusted £1.36), saving £2.6 (adjusted £3.04) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 20:10:03.700182: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:10:03.700280: LoadML is_calculating False
2026-08-18 20:10:03.700343: Creating pool of 12 processes to match your CPU count
2026-08-18 20:10:03.779838: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 20:10:03.780901: Optimise levels pass started at 2026-08-18 20:10:03
2026-08-18 20:10:03.780951: Optimise all windows, total charge 24 export 1
2026-08-18 20:10:04.092038: >> Region optimisation pass width 960 gives best_metric 426.7p, best_cost 452.91p, best_cycle 50.9kWh, best_import 37.08kWh
2026-08-18 20:10:04.240362: >> Region optimisation pass width 480 gives best_metric 426.7p, best_cost 452.91p, best_cycle 50.9kWh, best_import 37.08kWh
2026-08-18 20:10:04.486012: >> Region optimisation pass width 240 gives best_metric 426.7p, best_cost 452.91p, best_cycle 50.9kWh, best_import 37.08kWh
2026-08-18 20:10:04.986893: >> Region optimisation pass width 120 gives best_metric 426.7p, best_cost 452.91p, best_cycle 50.9kWh, best_import 37.08kWh
2026-08-18 20:10:04.987049: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 20:10:04.987101: Optimise levels pass ended at 2026-08-18 20:10:04, duration 1.2 seconds tried 72 combinations
2026-08-18 20:10:04.987157: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 426.7p, best_keep 1.78kWh, best_cycle 50.9kWh, best_carbon 0kg, best_import 37.08kWh
2026-08-18 20:10:05.001431: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 20:10:07.432231: Tweak plan optimisation started metric 300.08p, cost 309.49p
2026-08-18 20:10:07.796603: Tweak optimisation finished metric 300.08p, cost 309.49p, metric_keep 1.78kWh, cycle 28.65kWh, carbon 0kg, import 19.15kWh, changed 8 window(s)
2026-08-18 20:10:07.816165: Swap charge optimisation started metric 300.08p, cost 309.49p, min_improvement_swap 0.1p
2026-08-18 20:10:08.503293: Swap charge optimisation finished metric 300.08p, cost 309.49p
2026-08-18 20:10:08.610858: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 298.55p -> 298.3p, plan now metric 301.32p, cost 305.33p, cycle 28.65kWh, import 18.63kWh
2026-08-18 20:10:08.619296: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:10:08.620494: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:10:08.620750: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:10:08.620979: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:10:08.650543: Previous plan best metric is 300.08 (cost 309.49) and new plan best metric is 300.08 (cost 309.49)
2026-08-18 20:10:08.650745: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 20:10:08.650955: Plan valid is now true after recompute was False
2026-08-18 20:10:08.678395: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 638.75p, metric_keep 126.24kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.69kWh, PV 0.0kWh
2026-08-18 20:10:08.778453: Battery has 3.17 hours left - now at 3.78kWh
2026-08-18 20:10:08.818129: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 663.71p, metric_keep 126.71kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.6kWh, PV 0.0kWh
2026-08-18 20:10:08.877609: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 364.92p, metric_keep 4.25kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.6kWh, PV 0.0kWh
2026-08-18 20:10:08.958511: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 354.11p, metric_keep 1.78kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.69kWh, PV 0.0kWh
2026-08-18 20:10:08.958593: Saving plan best values to HA entities
2026-08-18 20:10:09.112213: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:10:09.117245: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:10:09.122943: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.72kWh, house 0.18kWh, export 0.0kWh, metric 354.11p, metric10 364.92p
2026-08-18 20:10:09.205422: Marginal costs baseline metric (no standing charge): 307.4754
2026-08-18 20:10:09.453253: Marginal energy costs matrix computed: min=6.67 max=33.75
2026-08-18 20:10:09.507300: Rate array import [{'start': 1210, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1210, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:10:09.507817: - Your estimated bill for today is £1.82 and tomorrow is £1.96
2026-08-18 20:10:09.507853: - 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-18 20:10:09.507872: - The battery is currently at 24% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 20:10:09.507887: - For the next 48 hours there will be no solar generation.
2026-08-18 20:10:09.507920: - You have enough battery to reach the next charge.
2026-08-18 20:10:09.507942: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 20:10:09.507957: 
2026-08-18 20:10:09.555952: Plan calculation took 6.07 seconds
2026-08-18 20:10:09.556257: Inverter 0: Type SK Sunsynk
2026-08-18 20:10:09.556302: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:10:09.556544: Reserve min: 7%, battery_min: 7%
2026-08-18 20:10:09.556628: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:10:09.556959: Inverter 0 SoC: 3.78kW 24%, current charge rate 5000W, current discharge rate 5250W, current battery power 1072W, current battery voltage 51.2V, grid power -55W, load power 1127W, PV Power 0W
2026-08-18 20:10:09.557190: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:10:09.557303: Inverter 0 scheduled charge enable is False
2026-08-18 20:10:09.557343: Inverter 0 charge windows currently []
2026-08-18 20:10:09.557405: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:10:09.557560: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:10:09.557607: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:10:09.557661: Inverter 0 scheduled discharge enable is False
2026-08-18 20:10:09.557805: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:10:09.557842: Inverter 0 discharge windows currently []
2026-08-18 20:10:09.557868: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:10:09.557903: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:10:09.557920: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:10:09.604793: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 24%, target 100%
2026-08-18 20:10:09.604915: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:10:09.604993: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:10:09.605220: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:10:09.605294: No export window planned
2026-08-18 20:10:09.605467: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:10:09.605505: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:10:09.605677: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:10:09.605877: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:10:09.605940: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:10:09.606005: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:10:09.606138: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606307: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606603: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:10:09.606719: Inverter 0 count register writes 0
2026-08-18 20:10:09.623188: Total inverter register writes now 867
2026-08-18 20:10:09.650135: Info: Completed run status Demand
2026-08-18 20:10:09.655663: Info: record_status Demand
2026-08-18 20:10:09.679306: Saved current settings to /config/predbat_config.json
2026-08-18 20:10:09.679665: Compare, best tariff: current metric 129.87p
2026-08-18 20:10:48.789473: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:10:48.789692: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:10:48.789726: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:10:48.789871: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:10:48.789937: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:10:48.789958: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:10:48.789976: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:12:49.006372: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:12:49.006624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:12:49.006695: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:12:49.006868: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:12:49.006905: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:12:49.006926: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:12:49.006944: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:14:49.242741: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:14:49.242959: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:14:49.242997: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:14:49.243205: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:14:49.243238: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:14:49.243280: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:14:49.243298: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:15:00.323633: --------------- PredBat - update at 2026-08-18 20:15:00+01:00 with clock skew 0 minutes, minutes now 1215
2026-08-18 20:15:00.324338: Saved current settings to /config/predbat_config.json
2026-08-18 20:15:00.324488: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 20:15:00.324558: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:15:00.324662: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:15:00.341755: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:15:00.341859: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:15:00.341994: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:15:00.342394: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:15:00.342506: Predbat mode is set to Control charge & discharge
2026-08-18 20:15:00.531630: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:15:00.531747: Using load_power data to fill gaps in load_today data
2026-08-18 20:15:01.293129: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:15:01.293289: Zero load period starting at 2026-08-17T10:54:00+0100 (2001 minutes) for 189 minutes with base value 205.1
2026-08-18 20:15:01.294388: Processing 721 30-minute periods for power integration
2026-08-18 20:15:01.449988: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:15:01.450137: Car charging hold False, threshold 6.0kWh
2026-08-18 20:15:01.450196: Current data so far today: load 12.7kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:15:01.469829: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:15:01.469937: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:15:01.470728: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:15:01.470820: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:15:01.470985: Standing charge is set to 46.63p
2026-08-18 20:15:01.559853: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:15:01.560122: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:15:01.560316: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:15:01.561416: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:15:01.561542: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:15:01.561664: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:15:01.567364: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:15:01.567706: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:15:01.610304: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:15:01.610429: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:15:01.611651: High export rate found rates in range 99p to -99p
2026-08-18 20:15:01.634882: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:15:01.634962: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:15:01.646396: Battery level now 3.78kWh, -1hr ago 4.48kWh, at midnight 6.84kWh, battery value change in the last hour -4.78p, change today -21.0p, rate_forward 6.87p
2026-08-18 20:15:01.646818: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:15:01.698927: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:15:01.699095: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:15:01.787067: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:15:01.820967: Today's load divergence 100.39%, in-day adjustment 99.17%, damping 0.95x, yesterday 92.68% today 100.37% blend 15.62%
2026-08-18 20:15:01.821058: Today's predicted so far 12.57kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 12.57kWh forecast extra.
2026-08-18 20:15:01.821089: Today's actual load so far 12.64kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 20:15:01.846293: Inverter 0: Type SK Sunsynk
2026-08-18 20:15:01.846362: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:15:01.846546: Reserve min: 7%, battery_min: 7%
2026-08-18 20:15:01.846630: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:15:01.846891: Inverter 0 SoC: 3.78kW 24%, current charge rate 5000W, current discharge rate 5250W, current battery power 1064W, current battery voltage 51.2V, grid power -54W, load power 1119W, PV Power 0W
2026-08-18 20:15:01.847041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:15:01.847123: Inverter 0 scheduled charge enable is False
2026-08-18 20:15:01.847161: Inverter 0 charge windows currently []
2026-08-18 20:15:01.847195: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:15:01.847334: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:15:01.847368: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:15:01.847402: Inverter 0 scheduled discharge enable is False
2026-08-18 20:15:01.847570: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:15:01.847607: Inverter 0 discharge windows currently []
2026-08-18 20:15:01.847627: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:15:01.847663: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:15:01.847693: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:15:01.895659: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:15:01.895763: Plan was last updated on 2026-08-18 20:10:00+01:00 and is now 5.0 minutes old
2026-08-18 20:15:01.896063: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:15:01.896133: Best export window [  ]
2026-08-18 20:15:01.896969: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:15:01.900183: Load divergence over 8.0 hours mean 612.38W, min 331.8W, max 1402.8W, std dev 254.35W, divergence 20.77%
2026-08-18 20:15:01.918224: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:15:01.918299: LoadML is_calculating False
2026-08-18 20:15:01.918348: Creating pool of 12 processes to match your CPU count
2026-08-18 20:15:02.027037: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 638.89p, metric_keep 126.18kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.83kWh, PV 0.0kWh
2026-08-18 20:15:02.133981: Battery has 3.08 hours left - now at 3.78kWh
2026-08-18 20:15:02.171308: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 663.87p, metric_keep 126.64kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.74kWh, PV 0.0kWh
2026-08-18 20:15:02.240911: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 367.86p, metric_keep 4.13kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.74kWh, PV 0.0kWh
2026-08-18 20:15:02.310802: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 357.48p, metric_keep 1.62kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.83kWh, PV 0.0kWh
2026-08-18 20:15:02.310870: Saving plan best values to HA entities
2026-08-18 20:15:02.444053: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:15:02.448383: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:15:02.452820: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.15kWh, export 0.0kWh, metric 357.48p, metric10 367.86p
2026-08-18 20:15:02.521709: Marginal costs baseline metric (no standing charge): 310.8483
2026-08-18 20:15:02.738336: Marginal energy costs matrix computed: min=6.0 max=33.75
2026-08-18 20:15:02.795793: Rate array import [{'start': 1215, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1215, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:15:02.796408: - Your estimated bill for today is £1.81 and tomorrow is £1.97
2026-08-18 20:15:02.796449: - 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-18 20:15:02.796482: - The battery is currently at 24% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 20:15:02.796498: - For the next 48 hours there will be no solar generation.
2026-08-18 20:15:02.796512: - You have enough battery to reach the next charge.
2026-08-18 20:15:02.796530: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 20:15:02.796564: 
2026-08-18 20:15:02.839512: Plan calculation took 0.94 seconds
2026-08-18 20:15:02.843272: No high rate period found
2026-08-18 20:15:02.888796: Import threshold used for optimisation was 8.0p
2026-08-18 20:15:02.933706: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:15:02.939083: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 24%, target 100%
2026-08-18 20:15:02.939233: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:15:02.939366: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:15:02.939679: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:15:02.939782: No export window planned
2026-08-18 20:15:02.939938: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:15:02.940001: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:15:02.940179: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:15:02.940388: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:15:02.940468: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:15:02.940535: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:15:02.940634: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940734: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940843: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940913: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.940997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.941030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.941054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.941078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:15:02.941098: Inverter 0 count register writes 0
2026-08-18 20:15:02.956048: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 20:15:02.960840: Total inverter register writes now 867
2026-08-18 20:15:02.992621: Info: Completed run status Demand
2026-08-18 20:15:02.998126: Info: record_status Demand
2026-08-18 20:15:03.004307: Saved current settings to /config/predbat_config.json
2026-08-18 20:15:03.004663: Compare, best tariff: current metric 129.87p
2026-08-18 20:15:34.105130: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:15:34.105349: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:15:34.105395: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:15:34.105720: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:15:34.105771: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:15:34.105792: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:15:34.105807: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:16:48.433843: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 20:16:49.377483: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:16:49.377778: Zero load period starting at 2026-08-17T10:54:00+0100 (2001 minutes) for 189 minutes with base value 393.55
2026-08-18 20:16:49.379085: Processing 1345 30-minute periods for power integration
2026-08-18 20:16:49.492054: ML Component: Car charging hold False, car energy reported load False
2026-08-18 20:16:49.597142: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:16:49.698571: ML Temperature data points: 49186
2026-08-18 20:16:49.940061: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 20:16:49.974941: ML Component: Data fetch completed, load data age 60.0 days, 17354 data points
2026-08-18 20:16:49.975050: ML Component: No training needed, model age is 0.29 hours
2026-08-18 20:16:49.975120: ML Component: Generating predictions load data age 60.0 days, 17354 data points
2026-08-18 20:16:50.087547: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0916 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 20:16:50.457951: ML Component: Generated 576 predictions (total 31.56 kWh over 48h)
2026-08-18 20:16:50.485168: ML Component: Prediction cycle completed
2026-08-18 20:16:50.573372: ML Component: Saved 17354 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 20:17:34.314237: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:17:34.314429: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:17:34.314459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:17:34.314622: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:17:34.314655: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:17:34.314673: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:17:34.314688: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:19:34.514934: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:19:34.515159: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:19:34.515201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:19:34.515331: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:19:34.515368: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:19:34.515390: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:19:34.515412: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:20:00.619212: --------------- PredBat - update at 2026-08-18 20:20:00+01:00 with clock skew 0 minutes, minutes now 1220
2026-08-18 20:20:00.619963: Saved current settings to /config/predbat_config.json
2026-08-18 20:20:00.620075: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 20:20:00.620146: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:20:00.620257: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:20:00.637046: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:20:00.637152: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:20:00.637284: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:20:00.637702: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:20:00.637799: Predbat mode is set to Control charge & discharge
2026-08-18 20:20:00.801464: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:20:00.801591: Using load_power data to fill gaps in load_today data
2026-08-18 20:20:01.489949: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:20:01.490100: Zero load period starting at 2026-08-17T10:54:00+0100 (2006 minutes) for 189 minutes with base value 205.05
2026-08-18 20:20:01.491250: Processing 721 30-minute periods for power integration
2026-08-18 20:20:01.646648: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:20:01.646760: Car charging hold False, threshold 6.0kWh
2026-08-18 20:20:01.646799: Current data so far today: load 12.9kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:20:01.660778: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:20:01.660875: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:20:01.661533: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:20:01.661608: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:20:01.661654: Standing charge is set to 46.63p
2026-08-18 20:20:01.741977: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:20:01.742227: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:20:01.742431: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:20:01.743331: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:20:01.743440: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:20:01.743586: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:20:01.748176: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:20:01.748463: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:20:01.785646: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:20:01.785747: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:20:01.787014: High export rate found rates in range 99p to -99p
2026-08-18 20:20:01.809752: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:20:01.809853: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:20:01.819648: Battery level now 3.78kWh, -1hr ago 4.48kWh, at midnight 6.84kWh, battery value change in the last hour -4.78p, change today -21.0p, rate_forward 6.87p
2026-08-18 20:20:01.819997: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.85kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:20:01.870041: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:20:01.870158: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:20:01.952984: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:20:01.981432: Today's load divergence 101.35%, in-day adjustment 99.97%, damping 0.95x, yesterday 92.68% today 101.28% blend 15.28%
2026-08-18 20:20:01.981520: Today's predicted so far 12.6kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 12.6kWh forecast extra.
2026-08-18 20:20:01.981549: Today's actual load so far 12.82kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 20:20:02.006799: Inverter 0: Type SK Sunsynk
2026-08-18 20:20:02.006870: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:20:02.007014: Reserve min: 7%, battery_min: 7%
2026-08-18 20:20:02.007073: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:20:02.007284: Inverter 0 SoC: 3.68kW 23%, current charge rate 5000W, current discharge rate 5250W, current battery power 1021W, current battery voltage 51.2V, grid power -56W, load power 1079W, PV Power 0W
2026-08-18 20:20:02.007422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:20:02.007493: Inverter 0 scheduled charge enable is False
2026-08-18 20:20:02.007530: Inverter 0 charge windows currently []
2026-08-18 20:20:02.007552: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:20:02.007637: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:20:02.007666: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:20:02.007694: Inverter 0 scheduled discharge enable is False
2026-08-18 20:20:02.007789: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:20:02.007819: Inverter 0 discharge windows currently []
2026-08-18 20:20:02.007837: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:20:02.007852: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:20:02.007869: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:20:02.053784: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:20:02.053866: Plan was last updated on 2026-08-18 20:10:00+01:00 and is now 10.0 minutes old
2026-08-18 20:20:02.054038: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:20:02.054101: Best export window [  ]
2026-08-18 20:20:02.054964: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:20:02.057488: Load divergence over 8.0 hours mean 615.44W, min 332.4W, max 1405.2W, std dev 259.09W, divergence 21.05%
2026-08-18 20:20:02.073652: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:20:02.073727: LoadML is_calculating False
2026-08-18 20:20:02.073777: Creating pool of 12 processes to match your CPU count
2026-08-18 20:20:02.172681: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 641.69p, metric_keep 126.49kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.09kWh, PV 0.0kWh
2026-08-18 20:20:02.272333: Battery has 2.92 hours left - now at 3.68kWh
2026-08-18 20:20:02.308157: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.64p, metric_keep 126.9kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 33.0kWh, PV 0.0kWh
2026-08-18 20:20:02.371763: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 373.35p, metric_keep 4.25kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 33.0kWh, PV 0.0kWh
2026-08-18 20:20:02.434379: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 363.77p, metric_keep 1.83kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.09kWh, PV 0.0kWh
2026-08-18 20:20:02.434453: Saving plan best values to HA entities
2026-08-18 20:20:02.572675: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:20:02.578210: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:20:02.583216: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.76kWh, house 0.22kWh, export 0.0kWh, metric 363.77p, metric10 373.35p
2026-08-18 20:20:02.646334: Marginal costs baseline metric (no standing charge): 317.1356
2026-08-18 20:20:02.858205: Marginal energy costs matrix computed: min=5.33 max=33.75
2026-08-18 20:20:02.921105: Rate array import [{'start': 1220, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1220, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:20:02.922581: - Your estimated bill for today is £1.84 and tomorrow is £1.97
2026-08-18 20:20:02.922624: - 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-18 20:20:02.922644: - The battery is currently at 23% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 20:20:02.922660: - For the next 48 hours there will be no solar generation.
2026-08-18 20:20:02.922674: - You will run out of battery in 2  hours.
2026-08-18 20:20:02.922688: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 20:20:02.922702: 
2026-08-18 20:20:02.965527: Plan calculation took 0.91 seconds
2026-08-18 20:20:02.969938: No high rate period found
2026-08-18 20:20:03.016766: Import threshold used for optimisation was 8.0p
2026-08-18 20:20:03.065655: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:20:03.071187: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 23%, target 100%
2026-08-18 20:20:03.071322: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:20:03.071466: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:20:03.071762: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:20:03.071891: No export window planned
2026-08-18 20:20:03.072125: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:20:03.072169: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:20:03.072350: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:20:03.072590: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:20:03.072657: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:20:03.072766: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:20:03.072904: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.072952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073018: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073067: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:03.073777: Inverter 0 count register writes 0
2026-08-18 20:20:03.090550: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 20:20:03.090747: Recompute is saving previous plan...
2026-08-18 20:20:03.091641: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 20:20:03.091689: Best export window [  ]
2026-08-18 20:20:03.092545: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:20:03.095761: Load divergence over 8.0 hours mean 615.44W, min 332.4W, max 1405.2W, std dev 259.09W, divergence 21.05%
2026-08-18 20:20:03.114619: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:20:03.114722: LoadML is_calculating False
2026-08-18 20:20:03.114784: Creating pool of 12 processes to match your CPU count
2026-08-18 20:20:03.197346: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 20:20:03.198640: Optimise levels pass started at 2026-08-18 20:20:03
2026-08-18 20:20:03.198703: Optimise all windows, total charge 24 export 1
2026-08-18 20:20:03.540033: >> Region optimisation pass width 960 gives best_metric 428.82p, best_cost 454.35p, best_cycle 50.89kWh, best_import 37.13kWh
2026-08-18 20:20:03.683821: >> Region optimisation pass width 480 gives best_metric 428.82p, best_cost 454.35p, best_cycle 50.89kWh, best_import 37.13kWh
2026-08-18 20:20:03.910550: >> Region optimisation pass width 240 gives best_metric 428.82p, best_cost 454.35p, best_cycle 50.89kWh, best_import 37.13kWh
2026-08-18 20:20:04.410235: >> Region optimisation pass width 120 gives best_metric 428.82p, best_cost 454.35p, best_cycle 50.89kWh, best_import 37.13kWh
2026-08-18 20:20:04.410630: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 20:20:04.410692: Optimise levels pass ended at 2026-08-18 20:20:04, duration 1.2 seconds tried 72 combinations
2026-08-18 20:20:04.410747: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 428.82p, best_keep 1.83kWh, best_cycle 50.89kWh, best_carbon 0kg, best_import 37.13kWh
2026-08-18 20:20:04.425378: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 20:20:06.795475: Tweak plan optimisation started metric 301.52p, cost 310.9p
2026-08-18 20:20:07.086011: Tweak optimisation finished metric 301.52p, cost 310.9p, metric_keep 1.83kWh, cycle 28.55kWh, carbon 0kg, import 19.2kWh, changed 8 window(s)
2026-08-18 20:20:07.107964: Swap charge optimisation started metric 301.52p, cost 310.9p, min_improvement_swap 0.1p
2026-08-18 20:20:07.876903: Swap charge optimisation finished metric 301.52p, cost 310.9p
2026-08-18 20:20:08.024530: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 300.01p -> 299.75p, plan now metric 302.75p, cost 306.75p, cycle 28.55kWh, import 18.68kWh
2026-08-18 20:20:08.035375: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:20:08.036033: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:20:08.036351: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:20:08.036554: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:20:08.081172: Previous plan best metric is 301.52 (cost 310.9) and new plan best metric is 301.52 (cost 310.9)
2026-08-18 20:20:08.081562: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 20:20:08.081834: Plan valid is now true after recompute was False
2026-08-18 20:20:08.112876: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 640.13p, metric_keep 126.24kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.89kWh, PV 0.0kWh
2026-08-18 20:20:08.214794: Battery has 2.92 hours left - now at 3.68kWh
2026-08-18 20:20:08.261127: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 665.0p, metric_keep 126.64kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.8kWh, PV 0.0kWh
2026-08-18 20:20:08.331476: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 366.16p, metric_keep 4.23kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.8kWh, PV 0.0kWh
2026-08-18 20:20:08.409381: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 355.54p, metric_keep 1.83kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.89kWh, PV 0.0kWh
2026-08-18 20:20:08.409466: Saving plan best values to HA entities
2026-08-18 20:20:08.550184: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:20:08.555253: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:20:08.560715: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.22kWh, export 0.0kWh, metric 355.54p, metric10 366.16p
2026-08-18 20:20:08.632928: Marginal costs baseline metric (no standing charge): 308.9025
2026-08-18 20:20:08.903737: Marginal energy costs matrix computed: min=5.33 max=33.75
2026-08-18 20:20:08.958078: Rate array import [{'start': 1220, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1220, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:20:08.958596: - Your estimated bill for today is £1.84 and tomorrow is £1.97
2026-08-18 20:20:08.958631: - 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-18 20:20:08.958649: - The battery is currently at 23% and is in eco mode for the next 3 and a quarter hours.
2026-08-18 20:20:08.958664: - For the next 48 hours there will be no solar generation.
2026-08-18 20:20:08.958679: - You will run out of battery in 2  hours.
2026-08-18 20:20:08.958693: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 20:20:08.958706: 
2026-08-18 20:20:09.001325: Plan calculation took 5.91 seconds
2026-08-18 20:20:09.001594: Inverter 0: Type SK Sunsynk
2026-08-18 20:20:09.001632: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:20:09.001820: Reserve min: 7%, battery_min: 7%
2026-08-18 20:20:09.001882: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:20:09.002167: Inverter 0 SoC: 3.58kW 22%, current charge rate 5000W, current discharge rate 5250W, current battery power 1018W, current battery voltage 51.2V, grid power -56W, load power 1074W, PV Power 0W
2026-08-18 20:20:09.002352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:20:09.002434: Inverter 0 scheduled charge enable is False
2026-08-18 20:20:09.002462: Inverter 0 charge windows currently []
2026-08-18 20:20:09.002486: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:20:09.002606: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:20:09.002640: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:20:09.002669: Inverter 0 scheduled discharge enable is False
2026-08-18 20:20:09.002773: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:20:09.002803: Inverter 0 discharge windows currently []
2026-08-18 20:20:09.002822: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:20:09.002836: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:20:09.002850: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:20:09.049825: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 22%, target 100%
2026-08-18 20:20:09.049942: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:20:09.049996: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:20:09.050162: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:20:09.050231: No export window planned
2026-08-18 20:20:09.050405: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:20:09.050437: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:20:09.050569: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:20:09.050735: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:20:09.050790: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:20:09.050862: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:20:09.050932: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.050964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.050991: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051084: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051135: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051187: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051564: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:20:09.051766: Inverter 0 count register writes 0
2026-08-18 20:20:09.068380: Total inverter register writes now 867
2026-08-18 20:20:09.094170: Info: Completed run status Demand
2026-08-18 20:20:09.099200: Info: record_status Demand
2026-08-18 20:20:09.104840: Saved current settings to /config/predbat_config.json
2026-08-18 20:20:09.105119: Compare, best tariff: current metric 129.87p
2026-08-18 20:20:49.211699: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:20:49.211880: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:20:49.212219: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:20:49.212370: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:20:49.212403: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:20:49.212420: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:20:49.212434: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:22:49.406851: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:22:49.407049: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:22:49.407079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:22:49.407235: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:22:49.407266: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:22:49.407283: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:22:49.407297: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:24:49.606304: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:24:49.606584: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:24:49.606630: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:24:49.606764: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:24:49.606801: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:24:49.606823: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:24:49.606841: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:25:00.698880: --------------- PredBat - update at 2026-08-18 20:25:00+01:00 with clock skew 0 minutes, minutes now 1225
2026-08-18 20:25:00.699709: Saved current settings to /config/predbat_config.json
2026-08-18 20:25:00.699857: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 20:25:00.699939: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:25:00.700074: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:25:00.719060: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:25:00.719236: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:25:00.719410: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:25:00.719971: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:25:00.720114: Predbat mode is set to Control charge & discharge
2026-08-18 20:25:00.874778: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:25:00.874895: Using load_power data to fill gaps in load_today data
2026-08-18 20:25:01.552635: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:25:01.552779: Zero load period starting at 2026-08-17T10:54:00+0100 (2011 minutes) for 189 minutes with base value 205.0
2026-08-18 20:25:01.553955: Processing 721 30-minute periods for power integration
2026-08-18 20:25:01.724809: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:25:01.724955: Car charging hold False, threshold 6.0kWh
2026-08-18 20:25:01.725017: Current data so far today: load 13.0kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:25:01.742131: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:25:01.742219: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:25:01.742932: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:25:01.743013: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:25:01.743063: Standing charge is set to 46.63p
2026-08-18 20:25:01.831434: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:25:01.831674: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:25:01.831878: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:25:01.833752: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:25:01.833877: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:25:01.833983: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:25:01.839369: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:25:01.839786: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:25:01.884189: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:25:01.884319: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:25:01.885836: High export rate found rates in range 99p to -99p
2026-08-18 20:25:01.915030: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:25:01.915134: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:25:01.927759: Battery level now 3.68kWh, -1hr ago 4.36kWh, at midnight 6.84kWh, battery value change in the last hour -4.67p, change today -21.72p, rate_forward 6.87p
2026-08-18 20:25:01.928283: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:25:01.988022: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:25:01.988209: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:25:02.083476: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:25:02.121409: Today's load divergence 101.83%, in-day adjustment 100.39%, damping 0.95x, yesterday 92.68% today 101.74% blend 14.93%
2026-08-18 20:25:02.121499: Today's predicted so far 12.64kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 12.64kWh forecast extra.
2026-08-18 20:25:02.121546: Today's actual load so far 12.93kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 20:25:02.150276: Inverter 0: Type SK Sunsynk
2026-08-18 20:25:02.150342: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:25:02.150495: Reserve min: 7%, battery_min: 7%
2026-08-18 20:25:02.150565: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:25:02.150782: Inverter 0 SoC: 3.58kW 22%, current charge rate 5000W, current discharge rate 5250W, current battery power 955W, current battery voltage 51.2V, grid power -53W, load power 1006W, PV Power 0W
2026-08-18 20:25:02.150901: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:25:02.150970: Inverter 0 scheduled charge enable is False
2026-08-18 20:25:02.150993: Inverter 0 charge windows currently []
2026-08-18 20:25:02.151014: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:25:02.151103: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:25:02.151132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:25:02.151160: Inverter 0 scheduled discharge enable is False
2026-08-18 20:25:02.151258: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:25:02.151300: Inverter 0 discharge windows currently []
2026-08-18 20:25:02.151320: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:25:02.151335: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:25:02.151353: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:25:02.200302: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:25:02.200382: Plan was last updated on 2026-08-18 20:20:00+01:00 and is now 5.0 minutes old
2026-08-18 20:25:02.200582: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:25:02.200622: Best export window [  ]
2026-08-18 20:25:02.201346: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:25:02.203772: Load divergence over 8.0 hours mean 616.77W, min 337.2W, max 1693.2W, std dev 287.11W, divergence 23.28%
2026-08-18 20:25:02.222237: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:25:02.222319: LoadML is_calculating False
2026-08-18 20:25:02.222383: Creating pool of 12 processes to match your CPU count
2026-08-18 20:25:02.336077: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 643.3p, metric_keep 126.46kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.06kWh, PV 0.0kWh
2026-08-18 20:25:02.448746: Battery has 2.83 hours left - now at 3.58kWh
2026-08-18 20:25:02.493530: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 668.22p, metric_keep 126.83kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.97kWh, PV 0.0kWh
2026-08-18 20:25:02.569635: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 372.23p, metric_keep 4.39kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.97kWh, PV 0.0kWh
2026-08-18 20:25:02.644496: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 361.52p, metric_keep 1.96kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.06kWh, PV 0.0kWh
2026-08-18 20:25:02.644585: Saving plan best values to HA entities
2026-08-18 20:25:02.785752: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:25:02.790682: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:25:02.795872: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.27kWh, export 0.0kWh, metric 361.52p, metric10 372.23p
2026-08-18 20:25:02.875853: Marginal costs baseline metric (no standing charge): 314.8874
2026-08-18 20:25:03.159861: Marginal energy costs matrix computed: min=4.76 max=33.75
2026-08-18 20:25:03.241985: Rate array import [{'start': 1225, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1225, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:25:03.242704: - Your estimated bill for today is £1.86 and tomorrow is £1.96
2026-08-18 20:25:03.242754: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 20:25:03.242778: - The battery is currently at 22% and is in eco mode for the next 3 hours.
2026-08-18 20:25:03.242796: - For the next 48 hours there will be no solar generation.
2026-08-18 20:25:03.242822: - You will run out of battery in 2 and three quarters hours.
2026-08-18 20:25:03.242855: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-18 20:25:03.242884: 
2026-08-18 20:25:03.295335: Plan calculation took 1.09 seconds
2026-08-18 20:25:03.299034: No high rate period found
2026-08-18 20:25:03.354642: Import threshold used for optimisation was 8.0p
2026-08-18 20:25:03.397392: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:25:03.401994: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 22%, target 100%
2026-08-18 20:25:03.402086: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:25:03.402178: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:25:03.402377: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:25:03.402458: No export window planned
2026-08-18 20:25:03.402613: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:25:03.402648: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:25:03.402764: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:25:03.402913: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:25:03.402962: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:25:03.403018: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:25:03.403094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403217: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403256: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403359: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403421: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:25:03.403455: Inverter 0 count register writes 0
2026-08-18 20:25:03.416143: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 20:25:03.420715: Total inverter register writes now 867
2026-08-18 20:25:03.447025: Info: Completed run status Demand
2026-08-18 20:25:03.451735: Info: record_status Demand
2026-08-18 20:25:03.457015: Saved current settings to /config/predbat_config.json
2026-08-18 20:25:03.457280: Compare, best tariff: current metric 129.87p
2026-08-18 20:25:34.546188: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:25:34.546508: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:25:34.546582: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:25:34.546745: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:25:34.546788: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:25:34.546811: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:25:34.546830: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:27:48.781867: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:27:48.782089: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:27:48.782131: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:27:48.782279: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:27:48.782317: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:27:48.782339: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:27:48.782356: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:29:18.773571: Successfully loaded apps.yaml from apps.yaml
2026-08-18 20:29:49.001926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:29:49.002142: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:29:49.002222: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:29:49.002376: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:29:49.002457: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:29:49.002479: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:29:49.002497: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:30:00.083685: --------------- PredBat - update at 2026-08-18 20:30:00+01:00 with clock skew 0 minutes, minutes now 1230
2026-08-18 20:30:00.084465: Saved current settings to /config/predbat_config.json
2026-08-18 20:30:00.084587: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 20:30:00.084650: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:30:00.084758: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:30:00.107150: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:30:00.107275: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:30:00.107471: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:30:00.107999: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:30:00.108117: Predbat mode is set to Control charge & discharge
2026-08-18 20:30:00.289881: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:30:00.290009: Using load_power data to fill gaps in load_today data
2026-08-18 20:30:01.154066: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:30:01.154253: Zero load period starting at 2026-08-17T10:54:00+0100 (2016 minutes) for 189 minutes with base value 204.975
2026-08-18 20:30:01.155701: Processing 721 30-minute periods for power integration
2026-08-18 20:30:01.350352: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:30:01.350489: Car charging hold False, threshold 6.0kWh
2026-08-18 20:30:01.350534: Current data so far today: load 13.1kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:30:01.368919: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:30:01.369017: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:30:01.369750: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:30:01.369832: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:30:01.369889: Standing charge is set to 46.63p
2026-08-18 20:30:01.468026: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:30:01.468263: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:30:01.468477: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:30:01.469545: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:30:01.469653: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:30:01.469825: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:30:01.475643: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:30:01.475994: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:30:01.521951: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:30:01.522065: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:30:01.523436: High export rate found rates in range 99p to -99p
2026-08-18 20:30:01.555367: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:30:01.555503: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:30:01.570752: Battery level now 3.58kWh, -1hr ago 4.32kWh, at midnight 6.84kWh, battery value change in the last hour -5.11p, change today -22.43p, rate_forward 6.87p
2026-08-18 20:30:01.571416: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:30:01.635075: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:30:01.635277: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:30:01.725608: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:30:01.756659: Today's load divergence 101.84%, in-day adjustment 100.42%, damping 0.95x, yesterday 92.68% today 101.75% blend 14.58%
2026-08-18 20:30:01.756738: Today's predicted so far 12.76kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 12.76kWh forecast extra.
2026-08-18 20:30:01.756764: Today's actual load so far 13.05kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 20:30:01.791473: Inverter 0: Type SK Sunsynk
2026-08-18 20:30:01.791584: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:30:01.791819: Reserve min: 7%, battery_min: 7%
2026-08-18 20:30:01.791956: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:30:01.792287: Inverter 0 SoC: 3.52kW 22%, current charge rate 5000W, current discharge rate 5250W, current battery power 959W, current battery voltage 51.2V, grid power -50W, load power 991W, PV Power 0W
2026-08-18 20:30:01.792466: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:30:01.792554: Inverter 0 scheduled charge enable is False
2026-08-18 20:30:01.792589: Inverter 0 charge windows currently []
2026-08-18 20:30:01.792616: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:30:01.792728: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:30:01.792763: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:30:01.792797: Inverter 0 scheduled discharge enable is False
2026-08-18 20:30:01.792923: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:30:01.792958: Inverter 0 discharge windows currently []
2026-08-18 20:30:01.792981: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:30:01.793003: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:30:01.793021: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:30:01.852104: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:30:01.852205: Plan was last updated on 2026-08-18 20:20:00+01:00 and is now 10.0 minutes old
2026-08-18 20:30:01.852427: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:30:01.852470: Best export window [  ]
2026-08-18 20:30:01.853328: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:30:01.856536: Load divergence over 8.0 hours mean 623.48W, min 323.4W, max 1621.2W, std dev 276.71W, divergence 22.19%
2026-08-18 20:30:01.877041: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:30:01.877165: LoadML is_calculating False
2026-08-18 20:30:01.877242: Creating pool of 12 processes to match your CPU count
2026-08-18 20:30:01.993114: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 643.6p, metric_keep 126.5kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.18kWh, PV 0.0kWh
2026-08-18 20:30:02.107280: Battery has 2.75 hours left - now at 3.52kWh
2026-08-18 20:30:02.147614: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 668.4p, metric_keep 126.86kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 33.09kWh, PV 0.0kWh
2026-08-18 20:30:02.227607: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 375.25p, metric_keep 4.26kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 33.09kWh, PV 0.0kWh
2026-08-18 20:30:02.297121: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 365.48p, metric_keep 1.9kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.18kWh, PV 0.0kWh
2026-08-18 20:30:02.297192: Saving plan best values to HA entities
2026-08-18 20:30:02.456525: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:30:02.461953: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:30:02.467129: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.74kWh, house 0.27kWh, export 0.0kWh, metric 365.48p, metric10 375.25p
2026-08-18 20:30:02.539931: Marginal costs baseline metric (no standing charge): 318.841
2026-08-18 20:30:02.809016: Marginal energy costs matrix computed: min=6.65 max=33.75
2026-08-18 20:30:02.879337: Rate array import [{'start': 1230, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1230, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:30:02.880182: - Your estimated bill for today is £1.85 and tomorrow is £1.96
2026-08-18 20:30:02.880240: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 20:30:02.880264: - The battery is currently at 22% and is in eco mode for the next 3 hours.
2026-08-18 20:30:02.880283: - For the next 48 hours there will be no solar generation.
2026-08-18 20:30:02.880304: - You will run out of battery in 2 and three quarters hours.
2026-08-18 20:30:02.880321: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-18 20:30:02.880339: 
2026-08-18 20:30:02.929904: Plan calculation took 1.08 seconds
2026-08-18 20:30:02.934597: No high rate period found
2026-08-18 20:30:02.985082: Import threshold used for optimisation was 8.0p
2026-08-18 20:30:03.033612: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:30:03.039355: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 22%, target 100%
2026-08-18 20:30:03.039532: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:30:03.039650: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:30:03.039897: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:30:03.040078: No export window planned
2026-08-18 20:30:03.040225: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:30:03.040261: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:30:03.040417: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:30:03.040602: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:30:03.040662: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:30:03.040730: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:30:03.040822: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.040859: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.040891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.040918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.040942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.040973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.040997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041069: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:03.041259: Inverter 0 count register writes 0
2026-08-18 20:30:03.057008: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 20:30:03.057157: Recompute is saving previous plan...
2026-08-18 20:30:03.058048: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 20:30:03.058095: Best export window [  ]
2026-08-18 20:30:03.058982: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:30:03.061683: Load divergence over 8.0 hours mean 623.48W, min 323.4W, max 1621.2W, std dev 276.71W, divergence 22.19%
2026-08-18 20:30:03.076082: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:30:03.076160: LoadML is_calculating False
2026-08-18 20:30:03.076210: Creating pool of 12 processes to match your CPU count
2026-08-18 20:30:03.159734: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 20:30:03.160617: Optimise levels pass started at 2026-08-18 20:30:03
2026-08-18 20:30:03.160676: Optimise all windows, total charge 24 export 1
2026-08-18 20:30:03.510032: >> Region optimisation pass width 960 gives best_metric 431.03p, best_cost 451.54p, best_cycle 52.01kWh, best_import 36.6kWh
2026-08-18 20:30:03.661030: >> Region optimisation pass width 480 gives best_metric 431.03p, best_cost 451.54p, best_cycle 52.01kWh, best_import 36.6kWh
2026-08-18 20:30:03.937481: >> Region optimisation pass width 240 gives best_metric 431.03p, best_cost 451.54p, best_cycle 52.01kWh, best_import 36.6kWh
2026-08-18 20:30:04.480446: >> Region optimisation pass width 120 gives best_metric 431.03p, best_cost 451.54p, best_cycle 52.01kWh, best_import 36.6kWh
2026-08-18 20:30:04.480635: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 20:30:04.480703: Optimise levels pass ended at 2026-08-18 20:30:04, duration 1.3 seconds tried 71 combinations
2026-08-18 20:30:04.480768: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 431.03p, best_keep 1.9kWh, best_cycle 52.01kWh, best_carbon 0kg, best_import 36.6kWh
2026-08-18 20:30:04.498933: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 20:30:07.088759: Tweak plan optimisation started metric 303.46p, cost 312.75p
2026-08-18 20:30:07.449005: Tweak optimisation finished metric 303.46p, cost 312.75p, metric_keep 1.9kWh, cycle 28.4kWh, carbon 0kg, import 19.25kWh, changed 8 window(s)
2026-08-18 20:30:07.469701: Swap charge optimisation started metric 303.46p, cost 312.75p, min_improvement_swap 0.1p
2026-08-18 20:30:08.207017: Swap charge optimisation finished metric 303.46p, cost 312.75p
2026-08-18 20:30:08.343394: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 301.97p -> 301.81p, plan now metric 303.9p, cost 310.72p, cycle 28.66kWh, import 19.0kWh
2026-08-18 20:30:08.353541: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:30:08.353879: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:30:08.354099: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:30:08.354270: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:30:08.390645: Previous plan best metric is 303.46 (cost 312.75) and new plan best metric is 303.46 (cost 312.75)
2026-08-18 20:30:08.390825: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 20:30:08.390970: Plan valid is now true after recompute was False
2026-08-18 20:30:08.420757: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 642.14p, metric_keep 126.24kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.0kWh, PV 0.0kWh
2026-08-18 20:30:08.524894: Battery has 2.75 hours left - now at 3.52kWh
2026-08-18 20:30:08.572060: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 666.87p, metric_keep 126.6kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.9kWh, PV 0.0kWh
2026-08-18 20:30:08.648272: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 368.16p, metric_keep 4.25kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.9kWh, PV 0.0kWh
2026-08-18 20:30:08.718685: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 357.35p, metric_keep 1.9kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 32.0kWh, PV 0.0kWh
2026-08-18 20:30:08.719154: Saving plan best values to HA entities
2026-08-18 20:30:08.848389: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:30:08.852625: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:30:08.856767: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.27kWh, export 0.0kWh, metric 357.35p, metric10 368.16p
2026-08-18 20:30:08.925440: Marginal costs baseline metric (no standing charge): 310.7167
2026-08-18 20:30:09.159590: Marginal energy costs matrix computed: min=6.65 max=33.75
2026-08-18 20:30:09.219318: Rate array import [{'start': 1230, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1230, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:30:09.220196: - Your estimated bill for today is £1.85 and tomorrow is £1.96
2026-08-18 20:30:09.220257: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 20:30:09.220282: - The battery is currently at 22% and is in eco mode for the next 3 hours.
2026-08-18 20:30:09.220301: - For the next 48 hours there will be no solar generation.
2026-08-18 20:30:09.220318: - You will run out of battery in 2 and three quarters hours.
2026-08-18 20:30:09.220335: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-18 20:30:09.220358: 
2026-08-18 20:30:09.270640: Plan calculation took 6.21 seconds
2026-08-18 20:30:09.270974: Inverter 0: Type SK Sunsynk
2026-08-18 20:30:09.271024: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:30:09.271270: Reserve min: 7%, battery_min: 7%
2026-08-18 20:30:09.271383: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:30:09.271867: Inverter 0 SoC: 3.52kW 22%, current charge rate 5000W, current discharge rate 5250W, current battery power 959W, current battery voltage 51.2V, grid power -50W, load power 991W, PV Power 0W
2026-08-18 20:30:09.272168: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:30:09.272295: Inverter 0 scheduled charge enable is False
2026-08-18 20:30:09.272346: Inverter 0 charge windows currently []
2026-08-18 20:30:09.272424: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:30:09.272551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:30:09.272591: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:30:09.272629: Inverter 0 scheduled discharge enable is False
2026-08-18 20:30:09.272762: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:30:09.272798: Inverter 0 discharge windows currently []
2026-08-18 20:30:09.272821: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:30:09.272844: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:30:09.272862: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:30:09.334204: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 22%, target 100%
2026-08-18 20:30:09.334350: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:30:09.334452: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:30:09.334641: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:30:09.334721: No export window planned
2026-08-18 20:30:09.334830: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:30:09.334858: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:30:09.334988: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:30:09.335140: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:30:09.335217: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:30:09.335323: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:30:09.335450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335548: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335577: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335627: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335689: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:30:09.335877: Inverter 0 count register writes 0
2026-08-18 20:30:09.362435: Total inverter register writes now 867
2026-08-18 20:30:09.399992: Info: Completed run status Demand
2026-08-18 20:30:09.406414: Info: record_status Demand
2026-08-18 20:30:09.413440: Saved current settings to /config/predbat_config.json
2026-08-18 20:30:09.413829: Compare, best tariff: current metric 129.87p
2026-08-18 20:30:49.530812: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:30:49.531128: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:30:49.531181: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:30:49.531514: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:30:49.531567: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:30:49.531591: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:30:49.531614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:33:03.778584: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:33:03.778807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:33:03.778840: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:33:03.778967: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:33:03.779005: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:33:03.779027: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:33:03.779070: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:35:00.986266: --------------- PredBat - update at 2026-08-18 20:35:00+01:00 with clock skew 0 minutes, minutes now 1235
2026-08-18 20:35:00.987053: Saved current settings to /config/predbat_config.json
2026-08-18 20:35:00.987220: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 20:35:00.987351: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:35:00.987534: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:35:01.006412: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:35:01.006511: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:35:01.006642: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:35:01.007049: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:35:01.007144: Predbat mode is set to Control charge & discharge
2026-08-18 20:35:01.182593: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:35:01.182719: Using load_power data to fill gaps in load_today data
2026-08-18 20:35:02.019813: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:35:02.020002: Zero load period starting at 2026-08-17T10:54:00+0100 (2021 minutes) for 189 minutes with base value 204.95
2026-08-18 20:35:02.021446: Processing 721 30-minute periods for power integration
2026-08-18 20:35:02.197553: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:35:02.197660: Car charging hold False, threshold 6.0kWh
2026-08-18 20:35:02.197716: Current data so far today: load 13.2kWh, import 10.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:35:02.213994: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:35:02.214072: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:35:02.214868: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:35:02.214965: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:35:02.215016: Standing charge is set to 46.63p
2026-08-18 20:35:02.302934: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:35:02.303169: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:35:02.303374: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:35:02.304578: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:35:02.304693: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:35:02.304799: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:35:02.310201: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:35:02.310571: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:35:02.354396: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:35:02.354511: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:35:02.355825: High export rate found rates in range 99p to -99p
2026-08-18 20:35:02.385054: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:35:02.385191: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:35:02.396454: Battery level now 3.52kWh, -1hr ago 4.32kWh, at midnight 6.84kWh, battery value change in the last hour -5.5p, change today -22.82p, rate_forward 6.87p
2026-08-18 20:35:02.396814: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:35:02.453599: Today's energy total net 10.7kWh, import 10.7kWh, export 0.0kWh, cost 151.74p, import 105.11p, export 0.0p, carbon 0.0kg
2026-08-18 20:35:02.453743: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:35:02.549677: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:35:02.586492: Today's load divergence 101.93%, in-day adjustment 100.53%, damping 0.95x, yesterday 92.68% today 101.84% blend 14.24%
2026-08-18 20:35:02.586569: Today's predicted so far 12.85kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 12.85kWh forecast extra.
2026-08-18 20:35:02.586600: Today's actual load so far 13.16kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 20:35:02.620090: Inverter 0: Type SK Sunsynk
2026-08-18 20:35:02.620168: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:35:02.620358: Reserve min: 7%, battery_min: 7%
2026-08-18 20:35:02.620428: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:35:02.620675: Inverter 0 SoC: 3.39kW 21%, current charge rate 5000W, current discharge rate 5250W, current battery power 910W, current battery voltage 51.2V, grid power -59W, load power 961W, PV Power 0W
2026-08-18 20:35:02.620822: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:35:02.620904: Inverter 0 scheduled charge enable is False
2026-08-18 20:35:02.620932: Inverter 0 charge windows currently []
2026-08-18 20:35:02.620958: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:35:02.621070: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:35:02.621105: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:35:02.621140: Inverter 0 scheduled discharge enable is False
2026-08-18 20:35:02.621276: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:35:02.621314: Inverter 0 discharge windows currently []
2026-08-18 20:35:02.621337: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:35:02.621362: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:35:02.621380: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:35:02.681664: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:35:02.681760: Plan was last updated on 2026-08-18 20:30:00+01:00 and is now 5.0 minutes old
2026-08-18 20:35:02.681968: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:35:02.682007: Best export window [  ]
2026-08-18 20:35:02.682882: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:35:02.686076: Load divergence over 8.0 hours mean 628.24W, min 343.8W, max 1617.6W, std dev 289.07W, divergence 23.01%
2026-08-18 20:35:02.704574: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:35:02.704659: LoadML is_calculating False
2026-08-18 20:35:02.704711: Creating pool of 12 processes to match your CPU count
2026-08-18 20:35:02.815410: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 645.3p, metric_keep 126.55kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.16kWh, PV 0.0kWh
2026-08-18 20:35:02.917627: Battery has 2.58 hours left - now at 3.39kWh
2026-08-18 20:35:02.959757: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 669.99p, metric_keep 126.87kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 33.06kWh, PV 0.0kWh
2026-08-18 20:35:03.035841: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 374.08p, metric_keep 4.46kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 33.06kWh, PV 0.0kWh
2026-08-18 20:35:03.104914: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 363.9p, metric_keep 2.12kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.16kWh, PV 0.0kWh
2026-08-18 20:35:03.104982: Saving plan best values to HA entities
2026-08-18 20:35:03.266083: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:35:03.270486: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:35:03.274968: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.34kWh, export 0.0kWh, metric 363.9p, metric10 374.08p
2026-08-18 20:35:03.336084: Marginal costs baseline metric (no standing charge): 317.2615
2026-08-18 20:35:03.548981: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:35:03.604320: Rate array import [{'start': 1235, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1235, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:35:03.604829: - Your estimated bill for today is £1.87 and tomorrow is £1.96
2026-08-18 20:35:03.604863: - Import rates are very expensive (33.8p) for the next 2  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 20:35:03.604881: - The battery is currently at 21% and is in eco mode for the next 2  hours.
2026-08-18 20:35:03.604896: - For the next 48 hours there will be no solar generation.
2026-08-18 20:35:03.604910: - You will run out of battery in 2 and a half hours.
2026-08-18 20:35:03.604931: - Your next charge slot will be in 2  hours where import rates will be cheap (8.0p).
2026-08-18 20:35:03.604946: 
2026-08-18 20:35:03.645976: Plan calculation took 0.96 seconds
2026-08-18 20:35:03.649709: No high rate period found
2026-08-18 20:35:03.694485: Import threshold used for optimisation was 8.0p
2026-08-18 20:35:03.743144: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:35:03.749330: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 21%, target 100%
2026-08-18 20:35:03.749452: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:35:03.749559: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:35:03.749839: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:35:03.749936: No export window planned
2026-08-18 20:35:03.750056: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:35:03.750091: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:35:03.750238: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:35:03.750417: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:35:03.750477: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:35:03.750539: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:35:03.750637: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.750998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.751022: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.751045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:35:03.751071: Inverter 0 count register writes 0
2026-08-18 20:35:03.765336: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 20:35:03.770402: Total inverter register writes now 867
2026-08-18 20:35:03.800992: Info: Completed run status Demand
2026-08-18 20:35:03.806743: Info: record_status Demand
2026-08-18 20:35:03.812822: Saved current settings to /config/predbat_config.json
2026-08-18 20:35:03.813055: Compare, best tariff: current metric 129.87p
2026-08-18 20:35:33.904629: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:35:33.904877: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:35:33.904942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:35:33.905179: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:35:33.905264: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:35:33.905286: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:35:33.905304: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:37:34.113415: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:37:34.113657: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:37:34.113694: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:37:34.113844: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:37:34.113888: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:37:34.113909: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:37:34.113926: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:39:34.321584: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:39:34.321804: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:39:34.321866: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:39:34.322039: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:39:34.322100: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:39:34.322130: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:39:34.322154: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:40:00.420141: --------------- PredBat - update at 2026-08-18 20:40:00+01:00 with clock skew 0 minutes, minutes now 1240
2026-08-18 20:40:00.421113: Saved current settings to /config/predbat_config.json
2026-08-18 20:40:00.421288: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 20:40:00.421407: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:40:00.421552: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:40:00.441376: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:40:00.441562: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:40:00.441804: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:40:00.442466: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:40:00.442615: Predbat mode is set to Control charge & discharge
2026-08-18 20:40:00.605300: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:40:00.605417: Using load_power data to fill gaps in load_today data
2026-08-18 20:40:01.352855: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:40:01.353009: Zero load period starting at 2026-08-17T10:54:00+0100 (2026 minutes) for 189 minutes with base value 204.925
2026-08-18 20:40:01.354165: Processing 721 30-minute periods for power integration
2026-08-18 20:40:01.514188: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:40:01.514311: Car charging hold False, threshold 6.0kWh
2026-08-18 20:40:01.514350: Current data so far today: load 13.3kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:40:01.529031: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:40:01.529148: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:40:01.529776: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:40:01.529842: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:40:01.529889: Standing charge is set to 46.63p
2026-08-18 20:40:01.614839: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:40:01.615164: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:40:01.615396: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:40:01.616921: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:40:01.617071: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:40:01.617240: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:40:01.622027: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:40:01.622367: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:40:01.657432: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:40:01.658013: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:40:01.659144: High export rate found rates in range 99p to -99p
2026-08-18 20:40:01.682332: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:40:01.682420: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:40:01.692156: Battery level now 3.39kWh, -1hr ago 4.26kWh, at midnight 6.84kWh, battery value change in the last hour -5.99p, change today -23.7p, rate_forward 6.87p
2026-08-18 20:40:01.692455: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 1.05kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:40:01.752420: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 20:40:01.752562: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:40:01.839215: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:40:01.868540: Today's load divergence 102.3%, in-day adjustment 100.87%, damping 0.95x, yesterday 92.68% today 102.19% blend 13.89%
2026-08-18 20:40:01.868602: Today's predicted so far 12.86kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 12.86kWh forecast extra.
2026-08-18 20:40:01.868627: Today's actual load so far 13.23kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 20:40:01.895429: Inverter 0: Type SK Sunsynk
2026-08-18 20:40:01.895523: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:40:01.895665: Reserve min: 7%, battery_min: 7%
2026-08-18 20:40:01.895727: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:40:01.895994: Inverter 0 SoC: 3.23kW 20%, current charge rate 5000W, current discharge rate 5250W, current battery power 947W, current battery voltage 51.2V, grid power -57W, load power 1028W, PV Power 0W
2026-08-18 20:40:01.896173: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:40:01.896243: Inverter 0 scheduled charge enable is False
2026-08-18 20:40:01.896266: Inverter 0 charge windows currently []
2026-08-18 20:40:01.896287: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:40:01.896375: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:40:01.896403: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:40:01.896431: Inverter 0 scheduled discharge enable is False
2026-08-18 20:40:01.896550: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:40:01.896579: Inverter 0 discharge windows currently []
2026-08-18 20:40:01.896598: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:40:01.896619: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:40:01.896634: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:40:01.947399: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:40:01.947484: Plan was last updated on 2026-08-18 20:30:00+01:00 and is now 10.0 minutes old
2026-08-18 20:40:01.947663: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:40:01.947705: Best export window [  ]
2026-08-18 20:40:01.948383: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:40:01.950991: Load divergence over 8.0 hours mean 629.52W, min 390.6W, max 1642.8W, std dev 272.28W, divergence 21.63%
2026-08-18 20:40:01.967143: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:40:01.967243: LoadML is_calculating False
2026-08-18 20:40:01.967294: Creating pool of 12 processes to match your CPU count
2026-08-18 20:40:02.059560: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 653.04p, metric_keep 126.94kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.31kWh, PV 0.0kWh
2026-08-18 20:40:02.156921: Battery has 2.42 hours left - now at 3.23kWh
2026-08-18 20:40:02.193986: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 677.69p, metric_keep 127.2kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.21kWh, PV 0.0kWh
2026-08-18 20:40:02.256209: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 384.46p, metric_keep 4.69kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.21kWh, PV 0.0kWh
2026-08-18 20:40:02.319701: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 375.07p, metric_keep 2.41kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.31kWh, PV 0.0kWh
2026-08-18 20:40:02.319766: Saving plan best values to HA entities
2026-08-18 20:40:02.446279: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:40:02.450683: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:40:02.454973: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.76kWh, house 0.45kWh, export 0.0kWh, metric 375.07p, metric10 384.46p
2026-08-18 20:40:02.530972: Marginal costs baseline metric (no standing charge): 328.4335
2026-08-18 20:40:02.746731: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:40:02.802912: Rate array import [{'start': 1240, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1240, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:40:02.803506: - Your estimated bill for today is £1.94 and tomorrow is £1.96
2026-08-18 20:40:02.803542: - 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-18 20:40:02.803560: - The battery is currently at 20% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 20:40:02.803575: - For the next 48 hours there will be no solar generation.
2026-08-18 20:40:02.803589: - You will run out of battery in 2 and a half hours.
2026-08-18 20:40:02.803602: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 20:40:02.803616: 
2026-08-18 20:40:02.846414: Plan calculation took 0.90 seconds
2026-08-18 20:40:02.850096: No high rate period found
2026-08-18 20:40:02.898101: Import threshold used for optimisation was 8.0p
2026-08-18 20:40:02.940486: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:40:02.945039: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 20%, target 100%
2026-08-18 20:40:02.945147: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:40:02.945237: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:40:02.945497: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:40:02.945592: No export window planned
2026-08-18 20:40:02.945697: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:40:02.945726: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:40:02.945860: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:40:02.946026: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:40:02.946090: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:40:02.946144: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:40:02.946221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946253: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946296: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946325: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946369: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946391: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946495: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:02.946615: Inverter 0 count register writes 0
2026-08-18 20:40:02.959406: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 20:40:02.959521: Recompute is saving previous plan...
2026-08-18 20:40:02.960371: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 20:40:02.960414: Best export window [  ]
2026-08-18 20:40:02.961180: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:40:02.963763: Load divergence over 8.0 hours mean 629.52W, min 390.6W, max 1642.8W, std dev 272.28W, divergence 21.63%
2026-08-18 20:40:02.978797: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:40:02.978882: LoadML is_calculating False
2026-08-18 20:40:02.978933: Creating pool of 12 processes to match your CPU count
2026-08-18 20:40:03.058496: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 20:40:03.059264: Optimise levels pass started at 2026-08-18 20:40:03
2026-08-18 20:40:03.059307: Optimise all windows, total charge 24 export 1
2026-08-18 20:40:03.376353: >> Region optimisation pass width 960 gives best_metric 442.21p, best_cost 465.61p, best_cycle 50.68kWh, best_import 37.36kWh
2026-08-18 20:40:03.524034: >> Region optimisation pass width 480 gives best_metric 442.21p, best_cost 465.61p, best_cycle 50.68kWh, best_import 37.36kWh
2026-08-18 20:40:03.753253: >> Region optimisation pass width 240 gives best_metric 442.21p, best_cost 465.61p, best_cycle 50.68kWh, best_import 37.36kWh
2026-08-18 20:40:04.451223: >> Region optimisation pass width 120 gives best_metric 441.85p, best_cost 465.67p, best_cycle 50.78kWh, best_import 37.36kWh
2026-08-18 20:40:04.451434: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 20:40:04.451543: Optimise levels pass ended at 2026-08-18 20:40:04, duration 1.4 seconds tried 77 combinations
2026-08-18 20:40:04.451652: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 441.85p, best_keep 2.41kWh, best_cycle 50.78kWh, best_carbon 0kg, best_import 37.36kWh
2026-08-18 20:40:04.470102: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.5, 14.5, 14.5, 14.5, 14.5, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 20:40:06.727712: Tweak plan optimisation started metric 313.32p, cost 321.82p
2026-08-18 20:40:07.030227: Tweak optimisation finished metric 313.32p, cost 321.82p, metric_keep 2.41kWh, cycle 28.16kWh, carbon 0kg, import 19.38kWh, changed 8 window(s)
2026-08-18 20:40:07.048490: Swap charge optimisation started metric 313.32p, cost 321.82p, min_improvement_swap 0.1p
2026-08-18 20:40:07.712276: Swap charge optimisation finished metric 313.32p, cost 321.82p
2026-08-18 20:40:07.822467: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 311.86p -> 311.81p, plan now metric 313.73p, cost 320.39p, cycle 28.47kWh, import 19.2kWh
2026-08-18 20:40:07.832216: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:40:07.832564: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:40:07.832815: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:40:07.833015: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:40:07.868426: Previous plan best metric is 313.35 (cost 322.19) and new plan best metric is 313.32 (cost 321.82)
2026-08-18 20:40:07.868571: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 20:40:07.868724: Plan valid is now true after recompute was False
2026-08-18 20:40:07.898189: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 651.46p, metric_keep 126.68kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.11kWh, PV 0.0kWh
2026-08-18 20:40:07.993837: Battery has 2.42 hours left - now at 3.23kWh
2026-08-18 20:40:08.036654: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 676.03p, metric_keep 126.95kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.0kWh, PV 0.0kWh
2026-08-18 20:40:08.097331: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 377.24p, metric_keep 4.67kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.0kWh, PV 0.0kWh
2026-08-18 20:40:08.160605: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 366.81p, metric_keep 2.41kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.11kWh, PV 0.0kWh
2026-08-18 20:40:08.160676: Saving plan best values to HA entities
2026-08-18 20:40:08.276453: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:40:08.280763: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 20:40:08.285420: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.45kWh, export 0.0kWh, metric 366.81p, metric10 377.24p
2026-08-18 20:40:08.345545: Marginal costs baseline metric (no standing charge): 320.1796
2026-08-18 20:40:08.564196: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:40:08.620465: Rate array import [{'start': 1240, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1240, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:40:08.621107: - Your estimated bill for today is £1.94 and tomorrow is £1.96
2026-08-18 20:40:08.621150: - 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-18 20:40:08.621173: - The battery is currently at 20% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 20:40:08.621191: - For the next 48 hours there will be no solar generation.
2026-08-18 20:40:08.621215: - You will run out of battery in 2 and a half hours.
2026-08-18 20:40:08.621236: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 20:40:08.621254: 
2026-08-18 20:40:08.668748: Plan calculation took 5.71 seconds
2026-08-18 20:40:08.669025: Inverter 0: Type SK Sunsynk
2026-08-18 20:40:08.669084: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:40:08.669306: Reserve min: 7%, battery_min: 7%
2026-08-18 20:40:08.669379: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:40:08.669736: Inverter 0 SoC: 3.23kW 20%, current charge rate 5000W, current discharge rate 5250W, current battery power 947W, current battery voltage 51.2V, grid power -57W, load power 1028W, PV Power 0W
2026-08-18 20:40:08.669954: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:40:08.670071: Inverter 0 scheduled charge enable is False
2026-08-18 20:40:08.670108: Inverter 0 charge windows currently []
2026-08-18 20:40:08.670158: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:40:08.670276: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:40:08.670315: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:40:08.670352: Inverter 0 scheduled discharge enable is False
2026-08-18 20:40:08.670476: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:40:08.670512: Inverter 0 discharge windows currently []
2026-08-18 20:40:08.670535: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:40:08.670558: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:40:08.670575: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:40:08.726375: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 20%, target 100%
2026-08-18 20:40:08.726514: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:40:08.726595: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:40:08.726794: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:40:08.726877: No export window planned
2026-08-18 20:40:08.727009: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:40:08.727045: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:40:08.727214: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:40:08.727416: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:40:08.727470: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:40:08.727542: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:40:08.727645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.727699: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.727744: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.727772: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.727819: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.727861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.727892: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728280: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:40:08.728399: Inverter 0 count register writes 0
2026-08-18 20:40:08.745086: Total inverter register writes now 867
2026-08-18 20:40:08.775817: Info: Completed run status Demand
2026-08-18 20:40:08.785986: Info: record_status Demand
2026-08-18 20:40:08.792548: Saved current settings to /config/predbat_config.json
2026-08-18 20:40:08.792837: Compare, best tariff: current metric 129.87p
2026-08-18 20:40:48.907397: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:40:48.907618: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:40:48.907656: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:40:48.907813: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:40:48.907851: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:40:48.907872: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:40:48.907890: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:42:49.112236: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:42:49.112655: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:42:49.112700: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:42:49.112835: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:42:49.112873: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:42:49.112894: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:42:49.112912: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:44:49.316684: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:44:49.316956: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:44:49.317014: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:44:49.317248: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:44:49.317291: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:44:49.317314: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:44:49.317332: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:45:00.401318: --------------- PredBat - update at 2026-08-18 20:45:00+01:00 with clock skew 0 minutes, minutes now 1245
2026-08-18 20:45:00.402292: Saved current settings to /config/predbat_config.json
2026-08-18 20:45:00.402468: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 20:45:00.402556: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:45:00.402655: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:45:00.422459: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:45:00.422584: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:45:00.422744: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:45:00.423257: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:45:00.423395: Predbat mode is set to Control charge & discharge
2026-08-18 20:45:00.598157: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:45:00.598282: Using load_power data to fill gaps in load_today data
2026-08-18 20:45:01.375891: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:45:01.376115: Zero load period starting at 2026-08-17T10:54:00+0100 (2031 minutes) for 189 minutes with base value 204.9
2026-08-18 20:45:01.377275: Processing 721 30-minute periods for power integration
2026-08-18 20:45:01.560429: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:45:01.560547: Car charging hold False, threshold 6.0kWh
2026-08-18 20:45:01.560611: Current data so far today: load 13.4kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:45:01.579354: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:45:01.579473: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:45:01.580493: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:45:01.580620: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:45:01.580685: Standing charge is set to 46.63p
2026-08-18 20:45:01.670397: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:45:01.670695: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:45:01.671427: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:45:01.673354: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:45:01.673502: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:45:01.673682: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:45:01.680572: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:45:01.681072: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:45:01.722400: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:45:01.722495: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:45:01.723613: High export rate found rates in range 99p to -99p
2026-08-18 20:45:01.747398: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:45:01.747480: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:45:01.759441: Battery level now 3.23kWh, -1hr ago 4.16kWh, at midnight 6.84kWh, battery value change in the last hour -6.38p, change today -24.8p, rate_forward 6.87p
2026-08-18 20:45:01.759794: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:45:01.828018: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 20:45:01.828167: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:45:01.910366: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:45:01.944885: Today's load divergence 102.75%, in-day adjustment 101.26%, damping 0.95x, yesterday 92.68% today 102.61% blend 13.54%
2026-08-18 20:45:01.944957: Today's predicted so far 12.87kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 12.87kWh forecast extra.
2026-08-18 20:45:01.945026: Today's actual load so far 13.31kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 20:45:01.976844: Inverter 0: Type SK Sunsynk
2026-08-18 20:45:01.976932: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:45:01.977203: Reserve min: 7%, battery_min: 7%
2026-08-18 20:45:01.977297: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:45:01.977544: Inverter 0 SoC: 3.23kW 20%, current charge rate 5000W, current discharge rate 5250W, current battery power 1136W, current battery voltage 51.2V, grid power -55W, load power 1128W, PV Power 0W
2026-08-18 20:45:01.977693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:45:01.977772: Inverter 0 scheduled charge enable is False
2026-08-18 20:45:01.977808: Inverter 0 charge windows currently []
2026-08-18 20:45:01.977835: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:45:01.977944: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:45:01.978004: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:45:01.978049: Inverter 0 scheduled discharge enable is False
2026-08-18 20:45:01.978389: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:45:01.978429: Inverter 0 discharge windows currently []
2026-08-18 20:45:01.978452: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:45:01.978474: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:45:01.978491: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:45:02.036279: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:45:02.036414: Plan was last updated on 2026-08-18 20:40:00+01:00 and is now 5.0 minutes old
2026-08-18 20:45:02.036648: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:45:02.036693: Best export window [  ]
2026-08-18 20:45:02.037497: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:45:02.040920: Load divergence over 8.0 hours mean 630.97W, min 417.0W, max 1402.8W, std dev 248.49W, divergence 19.69%
2026-08-18 20:45:02.060272: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:45:02.060367: LoadML is_calculating False
2026-08-18 20:45:02.060424: Creating pool of 12 processes to match your CPU count
2026-08-18 20:45:02.176544: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 651.12p, metric_keep 126.56kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.28kWh, PV 0.0kWh
2026-08-18 20:45:02.299400: Battery has 2.33 hours left - now at 3.23kWh
2026-08-18 20:45:02.344442: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 675.67p, metric_keep 126.81kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.18kWh, PV 0.0kWh
2026-08-18 20:45:02.419308: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 379.66p, metric_keep 4.49kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.18kWh, PV 0.0kWh
2026-08-18 20:45:02.497467: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 369.72p, metric_keep 2.2kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.28kWh, PV 0.0kWh
2026-08-18 20:45:02.497545: Saving plan best values to HA entities
2026-08-18 20:45:02.648898: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:45:02.654025: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:45:02.658843: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.26kWh, house 0.41kWh, export 0.0kWh, metric 369.72p, metric10 379.66p
2026-08-18 20:45:02.738905: Marginal costs baseline metric (no standing charge): 323.083
2026-08-18 20:45:02.987873: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:45:03.058062: Rate array import [{'start': 1245, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1245, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:45:03.058765: - Your estimated bill for today is £1.93 and tomorrow is £1.97
2026-08-18 20:45:03.058810: - 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-18 20:45:03.058833: - The battery is currently at 20% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 20:45:03.058855: - For the next 48 hours there will be no solar generation.
2026-08-18 20:45:03.058873: - You will run out of battery in 2 and a quarter hours.
2026-08-18 20:45:03.058890: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 20:45:03.058916: 
2026-08-18 20:45:03.114197: Plan calculation took 1.08 seconds
2026-08-18 20:45:03.118286: No high rate period found
2026-08-18 20:45:03.171200: Import threshold used for optimisation was 8.0p
2026-08-18 20:45:03.217656: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:45:03.222521: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 20%, target 100%
2026-08-18 20:45:03.222620: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:45:03.222706: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:45:03.222908: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:45:03.223005: No export window planned
2026-08-18 20:45:03.223113: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:45:03.223143: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:45:03.223255: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:45:03.223403: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:45:03.223457: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:45:03.223509: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:45:03.223588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223746: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.223954: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.224005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:45:03.224024: Inverter 0 count register writes 0
2026-08-18 20:45:03.240558: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 20:45:03.245516: Total inverter register writes now 867
2026-08-18 20:45:03.277236: Info: Completed run status Demand
2026-08-18 20:45:03.282266: Info: record_status Demand
2026-08-18 20:45:03.287685: Saved current settings to /config/predbat_config.json
2026-08-18 20:45:03.287992: Compare, best tariff: current metric 129.87p
2026-08-18 20:45:34.388788: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:45:34.389051: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:45:34.389121: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:45:34.389311: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:45:34.389391: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:45:34.389414: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:45:34.389432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:46:52.159512: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 20:46:53.116161: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:46:53.116336: Zero load period starting at 2026-08-17T10:54:00+0100 (2031 minutes) for 189 minutes with base value 393.4
2026-08-18 20:46:53.117823: Processing 1345 30-minute periods for power integration
2026-08-18 20:46:53.223315: ML Component: Car charging hold False, car energy reported load False
2026-08-18 20:46:53.323408: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:46:53.418286: ML Temperature data points: 49156
2026-08-18 20:46:53.692143: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 20:46:53.729482: ML Component: Data fetch completed, load data age 60.0 days, 17360 data points
2026-08-18 20:46:53.729601: ML Component: No training needed, model age is 0.79 hours
2026-08-18 20:46:53.729662: ML Component: Generating predictions load data age 60.0 days, 17360 data points
2026-08-18 20:46:53.874563: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0855 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 20:46:54.273796: ML Component: Generated 576 predictions (total 31.29 kWh over 48h)
2026-08-18 20:46:54.309172: ML Component: Prediction cycle completed
2026-08-18 20:46:54.430476: ML Component: Saved 17360 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 20:47:48.934854: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:47:48.935056: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:47:48.935092: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:47:48.935256: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:47:48.935287: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:47:48.935304: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:47:48.935319: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:49:49.132322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:49:49.132543: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:49:49.132584: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:49:49.132714: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:49:49.132751: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:49:49.132773: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:49:49.132791: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:50:00.225792: --------------- PredBat - update at 2026-08-18 20:50:00+01:00 with clock skew 0 minutes, minutes now 1250
2026-08-18 20:50:00.226699: Saved current settings to /config/predbat_config.json
2026-08-18 20:50:00.226850: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 20:50:00.226974: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:50:00.227056: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:50:00.246837: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:50:00.247061: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:50:00.247240: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:50:00.247728: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:50:00.247842: Predbat mode is set to Control charge & discharge
2026-08-18 20:50:00.399677: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:50:00.399807: Using load_power data to fill gaps in load_today data
2026-08-18 20:50:01.145483: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:50:01.145683: Zero load period starting at 2026-08-17T10:54:00+0100 (2036 minutes) for 189 minutes with base value 204.875
2026-08-18 20:50:01.147115: Processing 721 30-minute periods for power integration
2026-08-18 20:50:01.335347: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:50:01.335473: Car charging hold False, threshold 6.0kWh
2026-08-18 20:50:01.335524: Current data so far today: load 13.35kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:50:01.352546: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:50:01.352652: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:50:01.353509: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:50:01.353601: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:50:01.353687: Standing charge is set to 46.63p
2026-08-18 20:50:01.440450: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:50:01.440750: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:50:01.441056: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:50:01.442241: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:50:01.442383: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:50:01.442556: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:50:01.448062: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:50:01.448412: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:50:01.492843: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:50:01.492991: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:50:01.494424: High export rate found rates in range 99p to -99p
2026-08-18 20:50:01.525632: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:50:01.525757: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:50:01.536681: Battery level now 3.23kWh, -1hr ago 4.16kWh, at midnight 6.84kWh, battery value change in the last hour -6.38p, change today -24.8p, rate_forward 6.87p
2026-08-18 20:50:01.537059: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:50:01.596522: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 20:50:01.596656: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:50:01.694115: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:50:01.731416: Today's load divergence 102.36%, in-day adjustment 100.98%, damping 0.95x, yesterday 92.68% today 102.24% blend 13.19%
2026-08-18 20:50:01.731502: Today's predicted so far 12.9kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 12.9kWh forecast extra.
2026-08-18 20:50:01.731534: Today's actual load so far 13.28kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 20:50:01.762204: Inverter 0: Type SK Sunsynk
2026-08-18 20:50:01.762285: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:50:01.762571: Reserve min: 7%, battery_min: 7%
2026-08-18 20:50:01.762677: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:50:01.763042: Inverter 0 SoC: 3.2kW 20%, current charge rate 5000W, current discharge rate 5250W, current battery power 639W, current battery voltage 51.2V, grid power -54W, load power 686W, PV Power 0W
2026-08-18 20:50:01.763252: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:50:01.763370: Inverter 0 scheduled charge enable is False
2026-08-18 20:50:01.763418: Inverter 0 charge windows currently []
2026-08-18 20:50:01.763478: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:50:01.763669: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:50:01.763711: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:50:01.763767: Inverter 0 scheduled discharge enable is False
2026-08-18 20:50:01.763975: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:50:01.764043: Inverter 0 discharge windows currently []
2026-08-18 20:50:01.764074: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:50:01.764113: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:50:01.764137: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:50:01.822209: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:50:01.822309: Plan was last updated on 2026-08-18 20:40:00+01:00 and is now 10.0 minutes old
2026-08-18 20:50:01.822582: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:50:01.822633: Best export window [  ]
2026-08-18 20:50:01.823522: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:50:01.826658: Load divergence over 8.0 hours mean 631.16W, min 386.4W, max 1405.2W, std dev 252.8W, divergence 20.03%
2026-08-18 20:50:01.845695: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:50:01.845802: LoadML is_calculating False
2026-08-18 20:50:01.845871: Creating pool of 12 processes to match your CPU count
2026-08-18 20:50:01.955080: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 650.65p, metric_keep 126.47kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.26kWh, PV 0.0kWh
2026-08-18 20:50:02.061824: Battery has 2.33 hours left - now at 3.2kWh
2026-08-18 20:50:02.102493: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 675.13p, metric_keep 126.72kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 33.16kWh, PV 0.0kWh
2026-08-18 20:50:02.168008: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 381.84p, metric_keep 4.28kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 33.16kWh, PV 0.0kWh
2026-08-18 20:50:02.233584: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 372.72p, metric_keep 2.02kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.26kWh, PV 0.0kWh
2026-08-18 20:50:02.233661: Saving plan best values to HA entities
2026-08-18 20:50:02.381873: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:50:02.386235: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:50:02.390504: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.77kWh, house 0.37kWh, export 0.0kWh, metric 372.72p, metric10 381.84p
2026-08-18 20:50:02.459094: Marginal costs baseline metric (no standing charge): 326.0899
2026-08-18 20:50:02.669201: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:50:02.727968: Rate array import [{'start': 1250, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1250, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:50:02.728888: - Your estimated bill for today is £1.92 and tomorrow is £1.97
2026-08-18 20:50:02.728944: - 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-18 20:50:02.728963: - The battery is currently at 20% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 20:50:02.728979: - For the next 48 hours there will be no solar generation.
2026-08-18 20:50:02.728993: - You will run out of battery in 2 and a quarter hours.
2026-08-18 20:50:02.729009: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 20:50:02.729027: 
2026-08-18 20:50:02.770797: Plan calculation took 0.95 seconds
2026-08-18 20:50:02.774725: No high rate period found
2026-08-18 20:50:02.820595: Import threshold used for optimisation was 8.0p
2026-08-18 20:50:02.865988: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:50:02.871097: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 20%, target 100%
2026-08-18 20:50:02.871260: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:50:02.871425: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:50:02.871762: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:50:02.871955: No export window planned
2026-08-18 20:50:02.872188: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:50:02.872241: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:50:02.872453: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:50:02.872710: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:50:02.872797: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:50:02.872927: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:50:02.873091: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873156: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873368: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873427: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873479: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:02.873783: Inverter 0 count register writes 0
2026-08-18 20:50:02.890055: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 20:50:02.890226: Recompute is saving previous plan...
2026-08-18 20:50:02.891173: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 20:50:02.891224: Best export window [  ]
2026-08-18 20:50:02.892284: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:50:02.895728: Load divergence over 8.0 hours mean 631.16W, min 386.4W, max 1405.2W, std dev 252.8W, divergence 20.03%
2026-08-18 20:50:02.913616: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:50:02.913717: LoadML is_calculating False
2026-08-18 20:50:02.913778: Creating pool of 12 processes to match your CPU count
2026-08-18 20:50:02.989757: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 20:50:02.990566: Optimise levels pass started at 2026-08-18 20:50:02
2026-08-18 20:50:02.990651: Optimise all windows, total charge 24 export 1
2026-08-18 20:50:03.290593: >> Region optimisation pass width 960 gives best_metric 440.21p, best_cost 463.31p, best_cycle 50.75kWh, best_import 37.3kWh
2026-08-18 20:50:03.419028: >> Region optimisation pass width 480 gives best_metric 440.21p, best_cost 463.31p, best_cycle 50.75kWh, best_import 37.3kWh
2026-08-18 20:50:03.697472: >> Region optimisation pass width 240 gives best_metric 440.21p, best_cost 463.31p, best_cycle 50.75kWh, best_import 37.3kWh
2026-08-18 20:50:04.472659: >> Region optimisation pass width 120 gives best_metric 439.85p, best_cost 463.36p, best_cycle 50.85kWh, best_import 37.3kWh
2026-08-18 20:50:04.473039: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 20:50:04.473219: Optimise levels pass ended at 2026-08-18 20:50:04, duration 1.5 seconds tried 77 combinations
2026-08-18 20:50:04.473305: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 439.85p, best_keep 2.02kWh, best_cycle 50.85kWh, best_carbon 0kg, best_import 37.3kWh
2026-08-18 20:50:04.491507: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.5, 14.5, 14.5, 14.5, 14.5, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 20:50:06.783283: Tweak plan optimisation started metric 310.56p, cost 319.48p
2026-08-18 20:50:07.096145: Tweak optimisation finished metric 310.56p, cost 319.48p, metric_keep 2.02kWh, cycle 28.13kWh, carbon 0kg, import 19.32kWh, changed 8 window(s)
2026-08-18 20:50:07.116992: Swap charge optimisation started metric 310.56p, cost 319.48p, min_improvement_swap 0.1p
2026-08-18 20:50:07.863742: Swap charge optimisation finished metric 310.56p, cost 319.48p
2026-08-18 20:50:08.000884: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 309.12p -> 309.08p, plan now metric 310.97p, cost 318.06p, cycle 28.45kWh, import 19.14kWh
2026-08-18 20:50:08.011024: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:50:08.011363: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:50:08.011689: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:50:08.011957: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 20:50:08.054321: Previous plan best metric is 310.59 (cost 319.85) and new plan best metric is 310.56 (cost 319.48)
2026-08-18 20:50:08.054524: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 20:50:08.054685: Plan valid is now true after recompute was False
2026-08-18 20:50:08.083460: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 649.08p, metric_keep 126.21kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.06kWh, PV 0.0kWh
2026-08-18 20:50:08.178077: Battery has 2.33 hours left - now at 3.2kWh
2026-08-18 20:50:08.218924: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 673.49p, metric_keep 126.47kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.95kWh, PV 0.0kWh
2026-08-18 20:50:08.279558: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 374.64p, metric_keep 4.26kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.95kWh, PV 0.0kWh
2026-08-18 20:50:08.352246: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 364.49p, metric_keep 2.02kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 32.06kWh, PV 0.0kWh
2026-08-18 20:50:08.352328: Saving plan best values to HA entities
2026-08-18 20:50:08.493911: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:50:08.498617: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:50:08.503327: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.37kWh, export 0.0kWh, metric 364.49p, metric10 374.64p
2026-08-18 20:50:08.576675: Marginal costs baseline metric (no standing charge): 317.8568
2026-08-18 20:50:08.843125: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:50:08.905928: Rate array import [{'start': 1250, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1250, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:50:08.906512: - Your estimated bill for today is £1.92 and tomorrow is £1.97
2026-08-18 20:50:08.906555: - 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-18 20:50:08.906578: - The battery is currently at 20% and is in eco mode for the next 2 and three quarters hours.
2026-08-18 20:50:08.906597: - For the next 48 hours there will be no solar generation.
2026-08-18 20:50:08.906622: - You will run out of battery in 2 and a quarter hours.
2026-08-18 20:50:08.906641: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 20:50:08.906658: 
2026-08-18 20:50:08.951448: Plan calculation took 6.06 seconds
2026-08-18 20:50:08.951721: Inverter 0: Type SK Sunsynk
2026-08-18 20:50:08.951756: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:50:08.951998: Reserve min: 7%, battery_min: 7%
2026-08-18 20:50:08.952067: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:50:08.952389: Inverter 0 SoC: 3.06kW 19%, current charge rate 5000W, current discharge rate 5250W, current battery power 605W, current battery voltage 51.2V, grid power -56W, load power 664W, PV Power 0W
2026-08-18 20:50:08.952598: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:50:08.952682: Inverter 0 scheduled charge enable is False
2026-08-18 20:50:08.952710: Inverter 0 charge windows currently []
2026-08-18 20:50:08.952734: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:50:08.952818: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:50:08.952849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:50:08.952877: Inverter 0 scheduled discharge enable is False
2026-08-18 20:50:08.952998: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:50:08.953031: Inverter 0 discharge windows currently []
2026-08-18 20:50:08.953050: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:50:08.953065: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:50:08.953082: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:50:09.001353: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 19%, target 100%
2026-08-18 20:50:09.001472: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:50:09.001528: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:50:09.001697: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:50:09.001772: No export window planned
2026-08-18 20:50:09.001860: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:50:09.001889: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:50:09.002018: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:50:09.002151: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:50:09.002193: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:50:09.002241: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:50:09.002317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002399: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002461: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:50:09.002713: Inverter 0 count register writes 0
2026-08-18 20:50:09.020573: Total inverter register writes now 867
2026-08-18 20:50:09.048851: Info: Completed run status Demand
2026-08-18 20:50:09.054181: Info: record_status Demand
2026-08-18 20:50:09.059478: Saved current settings to /config/predbat_config.json
2026-08-18 20:50:09.059721: Compare, best tariff: current metric 129.87p
2026-08-18 20:50:49.163374: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:50:49.163593: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:50:49.163635: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:50:49.163787: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:50:49.163848: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:50:49.163869: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:50:49.163950: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:52:49.382522: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:52:49.382751: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:52:49.382793: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:52:49.382947: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:52:49.382986: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:52:49.383008: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:52:49.383027: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:54:49.589428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:54:49.589647: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:54:49.589688: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:54:49.589820: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:54:49.589881: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:54:49.589908: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:54:49.589929: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:55:00.669400: --------------- PredBat - update at 2026-08-18 20:55:00+01:00 with clock skew 0 minutes, minutes now 1255
2026-08-18 20:55:00.670218: Saved current settings to /config/predbat_config.json
2026-08-18 20:55:00.670339: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 20:55:00.670427: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 20:55:00.670523: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 20:55:00.685152: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 20:55:00.685250: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 20:55:00.685378: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 20:55:00.685802: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 20:55:00.685912: Predbat mode is set to Control charge & discharge
2026-08-18 20:55:00.860588: Found 21602 load_today datapoints going back 28 days
2026-08-18 20:55:00.860705: Using load_power data to fill gaps in load_today data
2026-08-18 20:55:01.663453: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 20:55:01.663625: Zero load period starting at 2026-08-17T10:54:00+0100 (2041 minutes) for 189 minutes with base value 204.85
2026-08-18 20:55:01.665072: Processing 721 30-minute periods for power integration
2026-08-18 20:55:01.813922: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 20:55:01.814051: Car charging hold False, threshold 6.0kWh
2026-08-18 20:55:01.814113: Current data so far today: load 13.4kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 20:55:01.827873: Car 0 using Octopus Intelligent is unplugged
2026-08-18 20:55:01.828006: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 20:55:01.828647: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:55:01.828716: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 20:55:01.828780: Standing charge is set to 46.63p
2026-08-18 20:55:01.910284: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:55:01.910524: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:55:01.910704: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 20:55:01.911784: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 20:55:01.911940: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 20:55:01.912106: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 20:55:01.917388: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 20:55:01.917822: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 20:55:01.960937: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 20:55:01.961058: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 20:55:01.962384: High export rate found rates in range 99p to -99p
2026-08-18 20:55:01.990823: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 20:55:01.990945: Car 0 on Octopus Intelligent, no active plan
2026-08-18 20:55:02.002393: Battery level now 3.2kWh, -1hr ago 4.0kWh, at midnight 6.84kWh, battery value change in the last hour -5.5p, change today -25.02p, rate_forward 6.87p
2026-08-18 20:55:02.002749: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 20:55:02.058474: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 20:55:02.058620: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 20:55:02.142869: Using weighted-bucket historical load forecast over 14 days
2026-08-18 20:55:02.175180: Today's load divergence 102.66%, in-day adjustment 101.26%, damping 0.95x, yesterday 92.68% today 102.53% blend 12.85%
2026-08-18 20:55:02.175256: Today's predicted so far 12.93kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 12.93kWh forecast extra.
2026-08-18 20:55:02.175298: Today's actual load so far 13.36kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 20:55:02.204556: Inverter 0: Type SK Sunsynk
2026-08-18 20:55:02.204623: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 20:55:02.204764: Reserve min: 7%, battery_min: 7%
2026-08-18 20:55:02.204823: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 20:55:02.205055: Inverter 0 SoC: 3.06kW 19%, current charge rate 5000W, current discharge rate 5250W, current battery power 657W, current battery voltage 51.2V, grid power -57W, load power 721W, PV Power 0W
2026-08-18 20:55:02.205180: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:55:02.205251: Inverter 0 scheduled charge enable is False
2026-08-18 20:55:02.205277: Inverter 0 charge windows currently []
2026-08-18 20:55:02.205298: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 20:55:02.205386: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:55:02.205415: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:55:02.205444: Inverter 0 scheduled discharge enable is False
2026-08-18 20:55:02.205549: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:55:02.205573: Inverter 0 discharge windows currently []
2026-08-18 20:55:02.205590: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:55:02.205605: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:55:02.205618: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:55:02.262438: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 20:55:02.262528: Plan was last updated on 2026-08-18 20:50:00+01:00 and is now 5.0 minutes old
2026-08-18 20:55:02.262706: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 20:55:02.262740: Best export window [  ]
2026-08-18 20:55:02.263417: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 20:55:02.265946: Load divergence over 8.0 hours mean 630.98W, min 344.4W, max 1693.2W, std dev 279.81W, divergence 22.17%
2026-08-18 20:55:02.281071: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 20:55:02.281151: LoadML is_calculating False
2026-08-18 20:55:02.281199: Creating pool of 12 processes to match your CPU count
2026-08-18 20:55:02.391646: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 653.53p, metric_keep 126.46kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.18kWh, PV 0.0kWh
2026-08-18 20:55:02.500359: Battery has 2.17 hours left - now at 3.06kWh
2026-08-18 20:55:02.546731: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 677.99p, metric_keep 126.68kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.07kWh, PV 0.0kWh
2026-08-18 20:55:02.619009: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 381.99p, metric_keep 4.46kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.07kWh, PV 0.0kWh
2026-08-18 20:55:02.687622: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 371.74p, metric_keep 2.19kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.18kWh, PV 0.0kWh
2026-08-18 20:55:02.687694: Saving plan best values to HA entities
2026-08-18 20:55:02.832622: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 20:55:02.837568: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 20:55:02.842516: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.47kWh, export 0.0kWh, metric 371.74p, metric10 381.99p
2026-08-18 20:55:02.914187: Marginal costs baseline metric (no standing charge): 325.1094
2026-08-18 20:55:03.131095: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 20:55:03.189400: Rate array import [{'start': 1255, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1255, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 20:55:03.189930: - Your estimated bill for today is £1.96 and tomorrow is £1.96
2026-08-18 20:55:03.189967: - 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-18 20:55:03.189986: - The battery is currently at 19% and is in eco mode for the next 2 and a half hours.
2026-08-18 20:55:03.190000: - For the next 48 hours there will be no solar generation.
2026-08-18 20:55:03.190014: - You will run out of battery in 2 and a quarter hours.
2026-08-18 20:55:03.190027: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-18 20:55:03.190041: 
2026-08-18 20:55:03.242103: Plan calculation took 0.98 seconds
2026-08-18 20:55:03.245929: No high rate period found
2026-08-18 20:55:03.373924: Import threshold used for optimisation was 8.0p
2026-08-18 20:55:03.418103: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 20:55:03.423028: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 19%, target 100%
2026-08-18 20:55:03.423132: Inverter 0 disabled charge window while waiting for schedule (now 08-18 20:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 20:55:03.423221: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:55:03.423455: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:55:03.423538: No export window planned
2026-08-18 20:55:03.423668: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 20:55:03.423701: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 20:55:03.423815: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 20:55:03.424025: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 20:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 20:55:03.424080: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 20:55:03.424163: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 20:55:03.424267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424401: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424431: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424474: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424504: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 20:55:03.424784: Inverter 0 count register writes 0
2026-08-18 20:55:03.438995: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 20:55:03.443623: Total inverter register writes now 867
2026-08-18 20:55:03.471000: Info: Completed run status Demand
2026-08-18 20:55:03.476190: Info: record_status Demand
2026-08-18 20:55:03.481541: Saved current settings to /config/predbat_config.json
2026-08-18 20:55:03.481773: Compare, best tariff: current metric 129.87p
2026-08-18 20:55:34.576378: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:55:34.576602: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:55:34.576649: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:55:34.576796: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:55:34.576853: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:55:34.576879: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:55:34.576897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:56:51.252254: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 20:56:51.402955: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 20:57:48.797231: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:57:48.797457: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:57:48.797491: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:57:48.797646: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:57:48.797709: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:57:48.797749: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:57:48.797768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 20:59:49.020502: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 20:59:49.020721: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 20:59:49.020762: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 20:59:49.020913: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 20:59:49.020954: Note: Inverter does not support discharge freeze - disabled
2026-08-18 20:59:49.020976: Note: Inverter does not support charge freeze - disabled
2026-08-18 20:59:49.020995: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:00:00.104029: --------------- PredBat - update at 2026-08-18 21:00:00+01:00 with clock skew 0 minutes, minutes now 1260
2026-08-18 21:00:00.104819: Saved current settings to /config/predbat_config.json
2026-08-18 21:00:00.104952: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 21:00:00.105020: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:00:00.105138: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:00:00.122152: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:00:00.122257: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:00:00.122388: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:00:00.122882: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:00:00.123008: Predbat mode is set to Control charge & discharge
2026-08-18 21:00:00.305010: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:00:00.305161: Using load_power data to fill gaps in load_today data
2026-08-18 21:00:01.111358: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:00:01.111539: Zero load period starting at 2026-08-17T10:54:00+0100 (2046 minutes) for 189 minutes with base value 204.825
2026-08-18 21:00:01.113056: Processing 721 30-minute periods for power integration
2026-08-18 21:00:01.275693: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:00:01.275836: Car charging hold False, threshold 6.0kWh
2026-08-18 21:00:01.275888: Current data so far today: load 13.6kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:00:01.293260: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:00:01.293889: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:00:01.294655: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:00:01.294741: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:00:01.294796: Standing charge is set to 46.63p
2026-08-18 21:00:01.392972: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:00:01.393524: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:00:01.394112: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:00:01.395482: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:00:01.395601: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:00:01.395724: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:00:01.402467: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:00:01.402839: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:00:01.447129: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:00:01.447246: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:00:01.448723: High export rate found rates in range 99p to -99p
2026-08-18 21:00:01.476629: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:00:01.476718: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:00:01.488168: Battery level now 3.06kWh, -1hr ago 4.0kWh, at midnight 6.84kWh, battery value change in the last hour -6.49p, change today -26.01p, rate_forward 6.87p
2026-08-18 21:00:01.488576: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 1.05kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:00:01.553312: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:00:01.553460: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:00:01.658838: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:00:01.700768: Today's load divergence 103.09%, in-day adjustment 101.66%, damping 0.95x, yesterday 92.68% today 102.94% blend 12.5%
2026-08-18 21:00:01.700949: Today's predicted so far 13.05kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 13.05kWh forecast extra.
2026-08-18 21:00:01.700991: Today's actual load so far 13.55kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 21:00:01.733572: Inverter 0: Type SK Sunsynk
2026-08-18 21:00:01.733656: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:00:01.733850: Reserve min: 7%, battery_min: 7%
2026-08-18 21:00:01.733929: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:00:01.734186: Inverter 0 SoC: 2.96kW 19%, current charge rate 5000W, current discharge rate 5250W, current battery power 876W, current battery voltage 51.2V, grid power -52W, load power 928W, PV Power 0W
2026-08-18 21:00:01.734335: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:00:01.734419: Inverter 0 scheduled charge enable is False
2026-08-18 21:00:01.734455: Inverter 0 charge windows currently []
2026-08-18 21:00:01.734481: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:00:01.734594: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:00:01.734628: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:00:01.734663: Inverter 0 scheduled discharge enable is False
2026-08-18 21:00:01.734783: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:00:01.734835: Inverter 0 discharge windows currently []
2026-08-18 21:00:01.734859: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:00:01.734883: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:00:01.734901: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:00:01.798175: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:00:01.798261: Plan was last updated on 2026-08-18 20:50:00+01:00 and is now 10.0 minutes old
2026-08-18 21:00:01.798431: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:00:01.798465: Best export window [  ]
2026-08-18 21:00:01.799071: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:00:01.801695: Load divergence over 8.0 hours mean 629.51W, min 323.4W, max 1621.2W, std dev 272.85W, divergence 21.67%
2026-08-18 21:00:01.817095: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:00:01.817199: LoadML is_calculating False
2026-08-18 21:00:01.817255: Creating pool of 12 processes to match your CPU count
2026-08-18 21:00:01.913260: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 655.33p, metric_keep 126.59kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.41kWh, PV 0.0kWh
2026-08-18 21:00:02.020600: Battery has 2.0 hours left - now at 2.96kWh
2026-08-18 21:00:02.070180: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 679.66p, metric_keep 126.78kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.31kWh, PV 0.0kWh
2026-08-18 21:00:02.154269: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 386.51p, metric_keep 4.43kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.31kWh, PV 0.0kWh
2026-08-18 21:00:02.242141: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 377.2p, metric_keep 2.24kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.41kWh, PV 0.0kWh
2026-08-18 21:00:02.242214: Saving plan best values to HA entities
2026-08-18 21:00:02.421397: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:00:02.425930: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:00:02.430534: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.75kWh, house 0.51kWh, export 0.0kWh, metric 377.2p, metric10 386.51p
2026-08-18 21:00:02.497854: Marginal costs baseline metric (no standing charge): 330.5667
2026-08-18 21:00:02.731124: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:00:02.802349: Rate array import [{'start': 1260, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1260, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:00:02.802893: - Your estimated bill for today is £1.97 and tomorrow is £1.96
2026-08-18 21:00:02.802932: - 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-18 21:00:02.802951: - The battery is currently at 19% and is in eco mode for the next 2 and a half hours.
2026-08-18 21:00:02.802966: - For the next 48 hours there will be no solar generation.
2026-08-18 21:00:02.802980: - You will run out of battery in 2 hours.
2026-08-18 21:00:02.802998: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-18 21:00:02.803013: 
2026-08-18 21:00:02.851134: Plan calculation took 1.05 seconds
2026-08-18 21:00:02.854127: No high rate period found
2026-08-18 21:00:02.895690: Import threshold used for optimisation was 8.0p
2026-08-18 21:00:02.940461: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:00:02.945189: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 19%, target 100%
2026-08-18 21:00:02.945314: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:00:02.945430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:00:02.945693: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:00:02.945815: No export window planned
2026-08-18 21:00:02.945975: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:00:02.946018: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:00:02.946177: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:00:02.946376: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:00:02.946441: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:00:02.946513: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:00:02.946633: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946728: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.946984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:02.947276: Inverter 0 count register writes 0
2026-08-18 21:00:02.960506: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 21:00:02.960653: Recompute is saving previous plan...
2026-08-18 21:00:02.961424: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 21:00:02.961467: Best export window [  ]
2026-08-18 21:00:02.962160: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:00:02.964773: Load divergence over 8.0 hours mean 629.51W, min 323.4W, max 1621.2W, std dev 272.85W, divergence 21.67%
2026-08-18 21:00:02.979634: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:00:02.979709: LoadML is_calculating False
2026-08-18 21:00:02.979756: Creating pool of 12 processes to match your CPU count
2026-08-18 21:00:03.052595: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 21:00:03.053331: Optimise levels pass started at 2026-08-18 21:00:03
2026-08-18 21:00:03.053386: Optimise all windows, total charge 24 export 1
2026-08-18 21:00:03.405226: >> Region optimisation pass width 960 gives best_metric 445.83p, best_cost 470.07p, best_cycle 50.9kWh, best_import 37.7kWh
2026-08-18 21:00:03.547118: >> Region optimisation pass width 480 gives best_metric 445.83p, best_cost 470.07p, best_cycle 50.9kWh, best_import 37.7kWh
2026-08-18 21:00:03.789473: >> Region optimisation pass width 240 gives best_metric 445.83p, best_cost 470.07p, best_cycle 50.9kWh, best_import 37.7kWh
2026-08-18 21:00:04.387647: >> Region optimisation pass width 120 gives best_metric 445.83p, best_cost 470.07p, best_cycle 50.9kWh, best_import 37.7kWh
2026-08-18 21:00:04.387859: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 21:00:04.387955: Optimise levels pass ended at 2026-08-18 21:00:04, duration 1.3 seconds tried 72 combinations
2026-08-18 21:00:04.388033: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 445.83p, best_keep 2.24kWh, best_cycle 50.9kWh, best_carbon 0kg, best_import 37.7kWh
2026-08-18 21:00:04.406961: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 21:00:07.115181: Tweak plan optimisation started metric 315.45p, cost 324.48p
2026-08-18 21:00:07.502171: Tweak optimisation finished metric 315.45p, cost 324.48p, metric_keep 2.24kWh, cycle 27.85kWh, carbon 0kg, import 19.5kWh, changed 8 window(s)
2026-08-18 21:00:07.521430: Swap charge optimisation started metric 315.45p, cost 324.48p, min_improvement_swap 0.1p
2026-08-18 21:00:08.107070: Swap charge optimisation finished metric 315.45p, cost 324.48p
2026-08-18 21:00:08.213255: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 314.03p -> 313.87p, plan now metric 315.89p, cost 322.44p, cycle 28.12kWh, import 19.25kWh
2026-08-18 21:00:08.221255: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:00:08.221521: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:00:08.221701: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:00:08.221854: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:00:08.250435: Previous plan best metric is 315.45 (cost 324.48) and new plan best metric is 315.45 (cost 324.48)
2026-08-18 21:00:08.250581: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 21:00:08.250706: Plan valid is now true after recompute was False
2026-08-18 21:00:08.274536: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 653.87p, metric_keep 126.34kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.23kWh, PV 0.0kWh
2026-08-18 21:00:08.396731: Battery has 2.0 hours left - now at 2.96kWh
2026-08-18 21:00:08.440500: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 678.13p, metric_keep 126.52kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.12kWh, PV 0.0kWh
2026-08-18 21:00:08.512178: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 379.42p, metric_keep 4.41kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.12kWh, PV 0.0kWh
2026-08-18 21:00:08.584259: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 369.08p, metric_keep 2.24kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.23kWh, PV 0.0kWh
2026-08-18 21:00:08.584341: Saving plan best values to HA entities
2026-08-18 21:00:08.729641: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:00:08.734629: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:00:08.739712: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.51kWh, export 0.0kWh, metric 369.08p, metric10 379.42p
2026-08-18 21:00:08.818777: Marginal costs baseline metric (no standing charge): 322.4424
2026-08-18 21:00:09.095524: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:00:09.162027: Rate array import [{'start': 1260, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1260, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:00:09.162621: - Your estimated bill for today is £1.97 and tomorrow is £1.96
2026-08-18 21:00:09.162663: - 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-18 21:00:09.162687: - The battery is currently at 19% and is in eco mode for the next 2 and a half hours.
2026-08-18 21:00:09.162705: - For the next 48 hours there will be no solar generation.
2026-08-18 21:00:09.162726: - You will run out of battery in 2 hours.
2026-08-18 21:00:09.162744: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-18 21:00:09.162761: 
2026-08-18 21:00:09.212292: Plan calculation took 6.25 seconds
2026-08-18 21:00:09.212601: Inverter 0: Type SK Sunsynk
2026-08-18 21:00:09.212644: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:00:09.212897: Reserve min: 7%, battery_min: 7%
2026-08-18 21:00:09.212977: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:00:09.213364: Inverter 0 SoC: 2.96kW 19%, current charge rate 5000W, current discharge rate 5250W, current battery power 876W, current battery voltage 51.2V, grid power -52W, load power 928W, PV Power 0W
2026-08-18 21:00:09.213594: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:00:09.213694: Inverter 0 scheduled charge enable is False
2026-08-18 21:00:09.213730: Inverter 0 charge windows currently []
2026-08-18 21:00:09.213760: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:00:09.213885: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:00:09.213928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:00:09.213989: Inverter 0 scheduled discharge enable is False
2026-08-18 21:00:09.214146: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:00:09.214203: Inverter 0 discharge windows currently []
2026-08-18 21:00:09.214237: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:00:09.214257: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:00:09.214275: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:00:09.267863: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 19%, target 100%
2026-08-18 21:00:09.268064: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:00:09.268146: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:00:09.268344: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:00:09.268424: No export window planned
2026-08-18 21:00:09.268529: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:00:09.268564: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:00:09.268744: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:00:09.268934: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:00:09.269012: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:00:09.269106: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:00:09.269224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269356: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269380: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269409: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:00:09.269643: Inverter 0 count register writes 0
2026-08-18 21:00:09.293954: Total inverter register writes now 867
2026-08-18 21:00:09.325849: Info: Completed run status Demand
2026-08-18 21:00:09.332317: Info: record_status Demand
2026-08-18 21:00:09.338794: Saved current settings to /config/predbat_config.json
2026-08-18 21:00:09.339156: Compare, best tariff: current metric 129.87p
2026-08-18 21:00:49.452099: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:00:49.452392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:00:49.452486: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:00:49.452890: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:00:49.453008: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:00:49.453044: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:00:49.453087: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:02:31.071598: Info: HAHistory: Pruning history data started.
2026-08-18 21:02:31.074722: Info: HAHistory: Pruning history data completed.
2026-08-18 21:03:03.678299: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:03:03.678515: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:03:03.678556: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:03:03.678689: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:03:03.678726: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:03:03.678747: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:03:03.678769: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:05:00.885496: --------------- PredBat - update at 2026-08-18 21:05:00+01:00 with clock skew 0 minutes, minutes now 1265
2026-08-18 21:05:00.886262: Saved current settings to /config/predbat_config.json
2026-08-18 21:05:00.886379: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 21:05:00.886467: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:05:00.886550: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:05:00.901908: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:05:00.902004: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:05:00.902226: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:05:00.902741: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:05:00.902882: Predbat mode is set to Control charge & discharge
2026-08-18 21:05:01.059666: Found 21602 load_today datapoints going back 27 days
2026-08-18 21:05:01.059785: Using load_power data to fill gaps in load_today data
2026-08-18 21:05:01.792102: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:05:01.792252: Zero load period starting at 2026-08-17T10:54:00+0100 (2051 minutes) for 189 minutes with base value 204.8
2026-08-18 21:05:01.793364: Processing 721 30-minute periods for power integration
2026-08-18 21:05:01.941312: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:05:01.941619: Car charging hold False, threshold 6.0kWh
2026-08-18 21:05:01.941666: Current data so far today: load 13.7kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:05:01.954967: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:05:01.955043: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:05:01.955634: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:05:01.955700: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:05:01.955743: Standing charge is set to 46.63p
2026-08-18 21:05:02.025250: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:05:02.025444: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:05:02.025582: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:05:02.026519: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:05:02.026606: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:05:02.026713: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:05:02.031281: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:05:02.031615: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:05:02.066831: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:05:02.066939: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:05:02.068171: High export rate found rates in range 99p to -99p
2026-08-18 21:05:02.090918: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:05:02.091011: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:05:02.101379: Battery level now 2.96kWh, -1hr ago 4.0kWh, at midnight 6.84kWh, battery value change in the last hour -7.15p, change today -26.67p, rate_forward 6.87p
2026-08-18 21:05:02.101735: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:05:02.161795: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:05:02.161965: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:05:02.261616: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:05:02.300349: Today's load divergence 103.15%, in-day adjustment 101.74%, damping 0.95x, yesterday 92.68% today 102.99% blend 12.15%
2026-08-18 21:05:02.300443: Today's predicted so far 13.15kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 13.15kWh forecast extra.
2026-08-18 21:05:02.300476: Today's actual load so far 13.66kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 21:05:02.328803: Inverter 0: Type SK Sunsynk
2026-08-18 21:05:02.328896: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:05:02.329065: Reserve min: 7%, battery_min: 7%
2026-08-18 21:05:02.329133: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:05:02.329376: Inverter 0 SoC: 2.96kW 19%, current charge rate 5000W, current discharge rate 5250W, current battery power 893W, current battery voltage 51.2V, grid power -54W, load power 943W, PV Power 0W
2026-08-18 21:05:02.329521: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:05:02.329604: Inverter 0 scheduled charge enable is False
2026-08-18 21:05:02.329639: Inverter 0 charge windows currently []
2026-08-18 21:05:02.329666: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:05:02.329768: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:05:02.329803: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:05:02.329838: Inverter 0 scheduled discharge enable is False
2026-08-18 21:05:02.329974: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:05:02.330012: Inverter 0 discharge windows currently []
2026-08-18 21:05:02.330034: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:05:02.330056: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:05:02.330073: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:05:02.388559: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:05:02.388671: Plan was last updated on 2026-08-18 21:00:00+01:00 and is now 5.0 minutes old
2026-08-18 21:05:02.388891: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:05:02.388933: Best export window [  ]
2026-08-18 21:05:02.389868: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:05:02.393053: Load divergence over 8.0 hours mean 628.08W, min 343.8W, max 1617.6W, std dev 289.16W, divergence 23.02%
2026-08-18 21:05:02.408889: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:05:02.408984: LoadML is_calculating False
2026-08-18 21:05:02.409033: Creating pool of 12 processes to match your CPU count
2026-08-18 21:05:02.510767: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 652.51p, metric_keep 126.16kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.37kWh, PV 0.0kWh
2026-08-18 21:05:02.621630: Battery has 2.0 hours left - now at 2.96kWh
2026-08-18 21:05:02.663610: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 676.75p, metric_keep 126.35kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.26kWh, PV 0.0kWh
2026-08-18 21:05:02.733257: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 380.83p, metric_keep 4.2kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.26kWh, PV 0.0kWh
2026-08-18 21:05:02.807246: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 371.11p, metric_keep 1.99kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.37kWh, PV 0.0kWh
2026-08-18 21:05:02.807320: Saving plan best values to HA entities
2026-08-18 21:05:02.965916: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:05:02.971060: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:05:02.975829: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.45kWh, export 0.0kWh, metric 371.11p, metric10 380.83p
2026-08-18 21:05:03.046877: Marginal costs baseline metric (no standing charge): 324.4728
2026-08-18 21:05:03.317792: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:05:03.375639: Rate array import [{'start': 1265, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1265, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:05:03.376249: - Your estimated bill for today is £1.94 and tomorrow is £1.96
2026-08-18 21:05:03.376298: - 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-18 21:05:03.376323: - The battery is currently at 19% and is in eco mode for the next 2 and a half hours.
2026-08-18 21:05:03.376361: - For the next 48 hours there will be no solar generation.
2026-08-18 21:05:03.376383: - You will run out of battery in 2 hours.
2026-08-18 21:05:03.376398: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-18 21:05:03.376411: 
2026-08-18 21:05:03.424952: Plan calculation took 1.04 seconds
2026-08-18 21:05:03.429004: No high rate period found
2026-08-18 21:05:03.475223: Import threshold used for optimisation was 8.0p
2026-08-18 21:05:03.522226: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:05:03.528722: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 19%, target 100%
2026-08-18 21:05:03.528924: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:05:03.529085: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:05:03.529387: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:05:03.529533: No export window planned
2026-08-18 21:05:03.529732: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:05:03.529783: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:05:03.530016: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:05:03.530259: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:05:03.530346: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:05:03.530451: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:05:03.530610: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530675: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530791: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530872: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.530978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:05:03.531204: Inverter 0 count register writes 0
2026-08-18 21:05:03.547655: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 21:05:03.552737: Total inverter register writes now 867
2026-08-18 21:05:03.581209: Info: Completed run status Demand
2026-08-18 21:05:03.586508: Info: record_status Demand
2026-08-18 21:05:03.592420: Saved current settings to /config/predbat_config.json
2026-08-18 21:05:03.592730: Compare, best tariff: current metric 129.87p
2026-08-18 21:05:33.688090: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:05:33.688312: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:05:33.688425: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:05:33.688629: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:05:33.688675: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:05:33.688698: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:05:33.688729: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:07:33.896321: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:07:33.896536: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:07:33.896576: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:07:33.896727: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:07:33.896764: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:07:33.896785: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:07:33.896803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:09:34.099490: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:09:34.099773: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:09:34.099825: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:09:34.100066: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:09:34.100122: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:09:34.100144: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:09:34.100187: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:10:00.201671: --------------- PredBat - update at 2026-08-18 21:10:00+01:00 with clock skew 0 minutes, minutes now 1270
2026-08-18 21:10:00.202531: Saved current settings to /config/predbat_config.json
2026-08-18 21:10:00.202687: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 21:10:00.202812: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:10:00.202950: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:10:00.220538: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:10:00.220686: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:10:00.220853: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:10:00.221363: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:10:00.221505: Predbat mode is set to Control charge & discharge
2026-08-18 21:10:00.396469: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:10:00.396603: Using load_power data to fill gaps in load_today data
2026-08-18 21:10:01.176302: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:10:01.176673: Zero load period starting at 2026-08-17T10:54:00+0100 (2056 minutes) for 189 minutes with base value 204.775
2026-08-18 21:10:01.178155: Processing 721 30-minute periods for power integration
2026-08-18 21:10:01.365513: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:10:01.365624: Car charging hold False, threshold 6.0kWh
2026-08-18 21:10:01.365671: Current data so far today: load 13.65kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:10:01.382205: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:10:01.382291: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:10:01.383028: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:10:01.383108: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:10:01.383166: Standing charge is set to 46.63p
2026-08-18 21:10:01.469974: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:10:01.470208: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:10:01.470392: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:10:01.471508: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:10:01.471613: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:10:01.471727: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:10:01.477080: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:10:01.477512: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:10:01.521000: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:10:01.521370: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:10:01.522929: High export rate found rates in range 99p to -99p
2026-08-18 21:10:01.551800: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:10:01.551887: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:10:01.563077: Battery level now 2.96kWh, -1hr ago 3.78kWh, at midnight 6.84kWh, battery value change in the last hour -5.66p, change today -26.67p, rate_forward 6.87p
2026-08-18 21:10:01.563456: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:10:01.614989: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.66p, export 0.0p, carbon 0.0kg
2026-08-18 21:10:01.615121: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:10:01.710242: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:10:01.747707: Today's load divergence 102.67%, in-day adjustment 101.37%, damping 0.95x, yesterday 92.68% today 102.53% blend 11.81%
2026-08-18 21:10:01.747814: Today's predicted so far 13.16kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 13.16kWh forecast extra.
2026-08-18 21:10:01.747847: Today's actual load so far 13.59kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 21:10:01.778871: Inverter 0: Type SK Sunsynk
2026-08-18 21:10:01.778970: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:10:01.779145: Reserve min: 7%, battery_min: 7%
2026-08-18 21:10: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-18 21:10:01.779481: Inverter 0 SoC: 2.88kW 18%, current charge rate 5000W, current discharge rate 5250W, current battery power 1084W, current battery voltage 51.2V, grid power -54W, load power 1143W, PV Power 0W
2026-08-18 21:10:01.779627: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:10:01.779709: Inverter 0 scheduled charge enable is False
2026-08-18 21:10:01.779742: Inverter 0 charge windows currently []
2026-08-18 21:10:01.779768: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:10:01.779879: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:10:01.779956: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:10:01.780004: Inverter 0 scheduled discharge enable is False
2026-08-18 21:10:01.780141: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:10:01.780178: Inverter 0 discharge windows currently []
2026-08-18 21:10:01.780200: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:10:01.780220: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:10:01.780237: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:10:01.834612: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:10:01.834704: Plan was last updated on 2026-08-18 21:00:00+01:00 and is now 10.0 minutes old
2026-08-18 21:10:01.834950: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:10:01.834995: Best export window [  ]
2026-08-18 21:10:01.835814: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:10:01.838941: Load divergence over 8.0 hours mean 626.96W, min 390.6W, max 1642.8W, std dev 273.94W, divergence 21.85%
2026-08-18 21:10:01.857572: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:10:01.857676: LoadML is_calculating False
2026-08-18 21:10:01.857736: Creating pool of 12 processes to match your CPU count
2026-08-18 21:10:01.971383: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 653.66p, metric_keep 126.21kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.35kWh, PV 0.0kWh
2026-08-18 21:10:02.076898: Battery has 1.92 hours left - now at 2.88kWh
2026-08-18 21:10:02.120090: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 677.8p, metric_keep 126.37kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.24kWh, PV 0.0kWh
2026-08-18 21:10:02.199287: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 384.57p, metric_keep 4.14kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.24kWh, PV 0.0kWh
2026-08-18 21:10:02.274399: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 375.68p, metric_keep 1.96kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.35kWh, PV 0.0kWh
2026-08-18 21:10:02.274484: Saving plan best values to HA entities
2026-08-18 21:10:02.413078: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:10:02.418045: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:10:02.422951: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.77kWh, house 0.46kWh, export 0.0kWh, metric 375.68p, metric10 384.57p
2026-08-18 21:10:02.504082: Marginal costs baseline metric (no standing charge): 329.0506
2026-08-18 21:10:02.767406: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:10:02.839345: Rate array import [{'start': 1270, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1270, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:10:02.840051: - Your estimated bill for today is £1.95 and tomorrow is £1.96
2026-08-18 21:10:02.840117: - 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-18 21:10:02.840144: - The battery is currently at 18% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 21:10:02.840163: - For the next 48 hours there will be no solar generation.
2026-08-18 21:10:02.840186: - You will run out of battery in 1  hours.
2026-08-18 21:10:02.840204: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 21:10:02.840225: 
2026-08-18 21:10:02.895147: Plan calculation took 1.06 seconds
2026-08-18 21:10:02.898255: No high rate period found
2026-08-18 21:10:02.940363: Import threshold used for optimisation was 8.0p
2026-08-18 21:10:02.982889: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:10:02.988220: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 18%, target 100%
2026-08-18 21:10:02.988356: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:10:02.988475: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:10:02.988733: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:10:02.988841: No export window planned
2026-08-18 21:10:02.989001: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:10:02.989040: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:10:02.989199: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:10:02.989388: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:10:02.989443: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:10:02.989503: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:10:02.989608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989682: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989709: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989777: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989949: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.989999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.990019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:02.990036: Inverter 0 count register writes 0
2026-08-18 21:10:03.004005: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 21:10:03.004170: Recompute is saving previous plan...
2026-08-18 21:10:03.005025: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 21:10:03.005072: Best export window [  ]
2026-08-18 21:10:03.005819: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:10:03.008599: Load divergence over 8.0 hours mean 626.96W, min 390.6W, max 1642.8W, std dev 273.94W, divergence 21.85%
2026-08-18 21:10:03.023961: Calculating data from yesterday for savings calculation
2026-08-18 21:10:03.034312: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 21:10:03.072721: predict yesterday end_record 08-19 00:00:00, final soc 6.75kWh, metric 175.96p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 21:10:03.085608: predict yesterday10 end_record 08-19 00:00:00, final soc 6.36kWh, metric 172.62p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 21:10:03.103412: predict yesterday end_record 08-19 00:00:00, final soc 6.75kWh, metric 175.96p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 21:10:03.140850: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.17kWh, export 0.0kWh, battery_cycle 23.22kWh, start_soc 6.7kWh,  final_soc 6.75kWh and battery_value 46.38kWh
2026-08-18 21:10:03.205214: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 440.69p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 21:10:03.205318: Yesterday: No Battery/PV system cost predicted was £4.41 (adjusted £4.41) vs £1.81 (adjusted £1.36), saving £2.6 (adjusted £3.04) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 21:10:03.214194: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:10:03.214276: LoadML is_calculating False
2026-08-18 21:10:03.214328: Creating pool of 12 processes to match your CPU count
2026-08-18 21:10:03.292350: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 21:10:03.293156: Optimise levels pass started at 2026-08-18 21:10:03
2026-08-18 21:10:03.293214: Optimise all windows, total charge 24 export 1
2026-08-18 21:10:03.608963: >> Region optimisation pass width 960 gives best_metric 444.67p, best_cost 466.23p, best_cycle 50.67kWh, best_import 37.38kWh
2026-08-18 21:10:03.745286: >> Region optimisation pass width 480 gives best_metric 444.67p, best_cost 466.23p, best_cycle 50.67kWh, best_import 37.38kWh
2026-08-18 21:10:04.006045: >> Region optimisation pass width 240 gives best_metric 444.67p, best_cost 466.23p, best_cycle 50.67kWh, best_import 37.38kWh
2026-08-18 21:10:04.739766: >> Region optimisation pass width 120 gives best_metric 443.34p, best_cost 454.5p, best_cycle 52.2kWh, best_import 35.91kWh
2026-08-18 21:10:04.740002: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 21:10:04.740150: Optimise levels pass ended at 2026-08-18 21:10:04, duration 1.4 seconds tried 73 combinations
2026-08-18 21:10:04.740229: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 443.34p, best_keep 1.96kWh, best_cycle 52.2kWh, best_carbon 0kg, best_import 35.91kWh
2026-08-18 21:10:04.754694: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 21:10:07.193722: Tweak plan optimisation started metric 313.45p, cost 322.81p
2026-08-18 21:10:07.477530: Tweak optimisation finished metric 313.45p, cost 322.81p, metric_keep 1.96kWh, cycle 27.77kWh, carbon 0kg, import 19.45kWh, changed 8 window(s)
2026-08-18 21:10:07.495354: Swap charge optimisation started metric 313.45p, cost 322.81p, min_improvement_swap 0.1p
2026-08-18 21:10:08.124155: Swap charge optimisation finished metric 313.45p, cost 322.81p
2026-08-18 21:10:08.235527: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 312.05p -> 311.8p, plan now metric 314.69p, cost 318.65p, cycle 27.78kWh, import 18.93kWh
2026-08-18 21:10:08.243160: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:10:08.243435: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:10:08.243613: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:10:08.243750: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:10:08.272664: Previous plan best metric is 313.45 (cost 322.81) and new plan best metric is 313.45 (cost 322.81)
2026-08-18 21:10:08.272790: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 21:10:08.272933: Plan valid is now true after recompute was False
2026-08-18 21:10:08.297646: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 652.07p, metric_keep 125.96kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.15kWh, PV 0.0kWh
2026-08-18 21:10:08.384921: Battery has 1.92 hours left - now at 2.88kWh
2026-08-18 21:10:08.420421: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 676.14p, metric_keep 126.12kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.03kWh, PV 0.0kWh
2026-08-18 21:10:08.480395: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 377.35p, metric_keep 4.12kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.03kWh, PV 0.0kWh
2026-08-18 21:10:08.541040: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 367.43p, metric_keep 1.96kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 32.15kWh, PV 0.0kWh
2026-08-18 21:10:08.541107: Saving plan best values to HA entities
2026-08-18 21:10:08.656093: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:10:08.660478: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:10:08.665442: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.46kWh, export 0.0kWh, metric 367.43p, metric10 377.35p
2026-08-18 21:10:08.726430: Marginal costs baseline metric (no standing charge): 320.7967
2026-08-18 21:10:08.939858: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:10:08.999516: Rate array import [{'start': 1270, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1270, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:10:09.000157: - Your estimated bill for today is £1.95 and tomorrow is £1.96
2026-08-18 21:10:09.000205: - 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-18 21:10:09.000228: - The battery is currently at 18% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 21:10:09.000246: - For the next 48 hours there will be no solar generation.
2026-08-18 21:10:09.000263: - You will run out of battery in 1  hours.
2026-08-18 21:10:09.000281: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 21:10:09.000298: 
2026-08-18 21:10:09.047670: Plan calculation took 6.04 seconds
2026-08-18 21:10:09.048036: Inverter 0: Type SK Sunsynk
2026-08-18 21:10:09.048090: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:10:09.048312: Reserve min: 7%, battery_min: 7%
2026-08-18 21:10:09.048448: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:10:09.048996: Inverter 0 SoC: 2.82kW 18%, current charge rate 5000W, current discharge rate 5250W, current battery power 1071W, current battery voltage 51.2V, grid power -54W, load power 1135W, PV Power 0W
2026-08-18 21:10:09.049293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:10:09.049398: Inverter 0 scheduled charge enable is False
2026-08-18 21:10:09.049434: Inverter 0 charge windows currently []
2026-08-18 21:10:09.049463: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:10:09.049666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:10:09.049734: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:10:09.049816: Inverter 0 scheduled discharge enable is False
2026-08-18 21:10:09.050087: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:10:09.050144: Inverter 0 discharge windows currently []
2026-08-18 21:10:09.050172: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:10:09.050192: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:10:09.050216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:10:09.099121: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 18%, target 100%
2026-08-18 21:10:09.099302: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:10:09.099389: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:10:09.099609: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:10:09.099701: No export window planned
2026-08-18 21:10:09.099812: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:10:09.099847: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:10:09.100077: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:10:09.100247: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:10:09.100300: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:10:09.100383: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:10:09.100475: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100514: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100542: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100629: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100846: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:10:09.100895: Inverter 0 count register writes 0
2026-08-18 21:10:09.122179: Total inverter register writes now 867
2026-08-18 21:10:09.150083: Info: Completed run status Demand
2026-08-18 21:10:09.155322: Info: record_status Demand
2026-08-18 21:10:09.161501: Saved current settings to /config/predbat_config.json
2026-08-18 21:10:09.161822: Compare, best tariff: current metric 129.87p
2026-08-18 21:10:49.269006: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:10:49.269233: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:10:49.269273: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:10:49.269401: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:10:49.269438: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:10:49.269459: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:10:49.269477: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:12:49.486138: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:12:49.486425: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:12:49.486474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:12:49.486660: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:12:49.486721: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:12:49.486748: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:12:49.486772: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:15:00.713396: --------------- PredBat - update at 2026-08-18 21:15:00+01:00 with clock skew 0 minutes, minutes now 1275
2026-08-18 21:15:00.714104: Saved current settings to /config/predbat_config.json
2026-08-18 21:15:00.714250: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 21:15:00.714377: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:15:00.714450: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:15:00.732155: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:15:00.732255: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:15:00.732422: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:15:00.732865: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:15:00.733007: Predbat mode is set to Control charge & discharge
2026-08-18 21:15:00.904274: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:15:00.904411: Using load_power data to fill gaps in load_today data
2026-08-18 21:15:01.705863: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:15:01.706036: Zero load period starting at 2026-08-17T10:54:00+0100 (2061 minutes) for 189 minutes with base value 204.75
2026-08-18 21:15:01.707439: Processing 721 30-minute periods for power integration
2026-08-18 21:15:01.867377: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:15:01.867531: Car charging hold False, threshold 6.0kWh
2026-08-18 21:15:01.867593: Current data so far today: load 13.7kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:15:01.882160: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:15:01.882241: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:15:01.882827: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:15:01.882895: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:15:01.882957: Standing charge is set to 46.63p
2026-08-18 21:15:01.968096: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:15:01.968290: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:15:01.968482: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:15:01.969415: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:15:01.969500: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:15:01.969583: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:15:01.974174: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:15:01.974425: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:15:02.009612: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:15:02.009685: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:15:02.010780: High export rate found rates in range 99p to -99p
2026-08-18 21:15:02.034711: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:15:02.034786: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:15:02.046246: Battery level now 2.88kWh, -1hr ago 3.78kWh, at midnight 6.84kWh, battery value change in the last hour -6.21p, change today -27.22p, rate_forward 6.87p
2026-08-18 21:15:02.046608: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:15:02.103338: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:15:02.103471: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:15:02.183499: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:15:02.212655: Today's load divergence 102.78%, in-day adjustment 101.5%, damping 0.95x, yesterday 92.68% today 102.64% blend 11.46%
2026-08-18 21:15:02.212716: Today's predicted so far 13.18kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 13.18kWh forecast extra.
2026-08-18 21:15:02.212742: Today's actual load so far 13.63kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 21:15:02.245225: Inverter 0: Type SK Sunsynk
2026-08-18 21:15:02.245297: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:15:02.245462: Reserve min: 7%, battery_min: 7%
2026-08-18 21:15:02.245559: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:15:02.245838: Inverter 0 SoC: 2.82kW 18%, current charge rate 5000W, current discharge rate 5250W, current battery power 1075W, current battery voltage 51.2V, grid power -54W, load power 1157W, PV Power 0W
2026-08-18 21:15:02.246001: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:15:02.246086: Inverter 0 scheduled charge enable is False
2026-08-18 21:15:02.246114: Inverter 0 charge windows currently []
2026-08-18 21:15:02.246139: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:15:02.246274: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:15:02.246302: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:15:02.246340: Inverter 0 scheduled discharge enable is False
2026-08-18 21:15:02.246459: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:15:02.246494: Inverter 0 discharge windows currently []
2026-08-18 21:15:02.246517: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:15:02.246538: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:15:02.246555: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:15:02.303494: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:15:02.303591: Plan was last updated on 2026-08-18 21:10:00+01:00 and is now 5.0 minutes old
2026-08-18 21:15:02.303787: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:15:02.303827: Best export window [  ]
2026-08-18 21:15:02.304661: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:15:02.308231: Load divergence over 8.0 hours mean 625.33W, min 394.8W, max 1402.8W, std dev 252.19W, divergence 20.16%
2026-08-18 21:15:02.327201: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:15:02.327302: LoadML is_calculating False
2026-08-18 21:15:02.327359: Creating pool of 12 processes to match your CPU count
2026-08-18 21:15:02.439206: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 653.18p, metric_keep 125.96kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.26kWh, PV 0.0kWh
2026-08-18 21:15:02.548248: Battery has 1.75 hours left - now at 2.82kWh
2026-08-18 21:15:02.593044: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 677.21p, metric_keep 126.11kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.14kWh, PV 0.0kWh
2026-08-18 21:15:02.673449: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 381.2p, metric_keep 4.08kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 33.14kWh, PV 0.0kWh
2026-08-18 21:15:02.748379: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 371.78p, metric_keep 1.89kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.26kWh, PV 0.0kWh
2026-08-18 21:15:02.748730: Saving plan best values to HA entities
2026-08-18 21:15:02.895737: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:15:02.900177: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:15:02.904524: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.26kWh, house 0.47kWh, export 0.0kWh, metric 371.78p, metric10 381.2p
2026-08-18 21:15:02.967216: Marginal costs baseline metric (no standing charge): 325.1422
2026-08-18 21:15:03.180470: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:15:03.234274: Rate array import [{'start': 1275, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1275, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:15:03.234813: - Your estimated bill for today is £1.95 and tomorrow is £1.97
2026-08-18 21:15:03.234853: - 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-18 21:15:03.234873: - The battery is currently at 18% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 21:15:03.234897: - For the next 48 hours there will be no solar generation.
2026-08-18 21:15:03.234936: - You will run out of battery in 1 and three quarters hours.
2026-08-18 21:15:03.234965: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 21:15:03.234997: 
2026-08-18 21:15:03.276224: Plan calculation took 0.97 seconds
2026-08-18 21:15:03.280449: No high rate period found
2026-08-18 21:15:03.327029: Import threshold used for optimisation was 8.0p
2026-08-18 21:15:03.373591: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:15:03.379187: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 18%, target 100%
2026-08-18 21:15:03.379323: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:15:03.379429: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:15:03.379676: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:15:03.379777: No export window planned
2026-08-18 21:15:03.379969: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:15:03.380023: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:15:03.380170: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:15:03.380348: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:15:03.380411: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:15:03.380474: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:15:03.380564: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380604: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380679: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380702: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380785: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380874: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.380975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:15:03.381004: Inverter 0 count register writes 0
2026-08-18 21:15:03.395700: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 21:15:03.400569: Total inverter register writes now 867
2026-08-18 21:15:03.429992: Info: Completed run status Demand
2026-08-18 21:15:03.435062: Info: record_status Demand
2026-08-18 21:15:03.440371: Saved current settings to /config/predbat_config.json
2026-08-18 21:15:03.440586: Compare, best tariff: current metric 129.87p
2026-08-18 21:15:34.548256: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:15:34.548443: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:15:34.548490: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:15:34.548652: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:15:34.548694: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:15:34.548713: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:15:34.548727: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:16:56.007668: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 21:16:56.865118: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:16:56.865265: Zero load period starting at 2026-08-17T10:54:00+0100 (2061 minutes) for 189 minutes with base value 393.25
2026-08-18 21:16:56.866385: Processing 1345 30-minute periods for power integration
2026-08-18 21:16:56.949370: ML Component: Car charging hold False, car energy reported load False
2026-08-18 21:16:57.030549: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:16:57.110410: ML Temperature data points: 49126
2026-08-18 21:16:57.326237: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 21:16:57.359821: ML Component: Data fetch completed, load data age 60.0 days, 17366 data points
2026-08-18 21:16:57.359952: ML Component: No training needed, model age is 1.29 hours
2026-08-18 21:16:57.360034: ML Component: Generating predictions load data age 60.0 days, 17366 data points
2026-08-18 21:16:57.471172: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0999 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 21:16:57.799558: ML Component: Generated 576 predictions (total 31.33 kWh over 48h)
2026-08-18 21:16:57.827567: ML Component: Prediction cycle completed
2026-08-18 21:16:57.916043: ML Component: Saved 17366 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 21:17:48.786536: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:17:48.786821: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:17:48.786874: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:17:48.787062: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:17:48.787104: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:17:48.787125: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:17:48.787149: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:19:11.290333: Error dumping YAML: cannot represent an object: np.float64(0.0019339837881604581)
2026-08-18 21:19:49.017945: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:19:49.018168: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:19:49.018209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:19:49.018340: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:19:49.018377: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:19:49.018399: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:19:49.018417: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:20:00.113369: --------------- PredBat - update at 2026-08-18 21:20:00+01:00 with clock skew 0 minutes, minutes now 1280
2026-08-18 21:20:00.114097: Saved current settings to /config/predbat_config.json
2026-08-18 21:20:00.114250: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 21:20:00.114351: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:20:00.114451: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:20:00.143217: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:20:00.143339: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:20:00.143498: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:20:00.144174: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:20:00.144377: Predbat mode is set to Control charge & discharge
2026-08-18 21:20:00.357588: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:20:00.357716: Using load_power data to fill gaps in load_today data
2026-08-18 21:20:01.178403: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:20:01.178574: Zero load period starting at 2026-08-17T10:54:00+0100 (2066 minutes) for 189 minutes with base value 204.725
2026-08-18 21:20:01.180070: Processing 721 30-minute periods for power integration
2026-08-18 21:20:01.357577: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:20:01.357695: Car charging hold False, threshold 6.0kWh
2026-08-18 21:20:01.357738: Current data so far today: load 13.9kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:20:01.373983: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:20:01.374064: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:20:01.374792: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:20:01.374872: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:20:01.374943: Standing charge is set to 46.63p
2026-08-18 21:20:01.462316: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:20:01.462954: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:20:01.463150: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:20:01.464314: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:20:01.464427: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:20:01.464536: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:20:01.469977: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:20:01.470262: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:20:01.514441: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:20:01.514553: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:20:01.516005: High export rate found rates in range 99p to -99p
2026-08-18 21:20:01.544530: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:20:01.544634: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:20:01.556113: Battery level now 2.82kWh, -1hr ago 3.68kWh, at midnight 6.84kWh, battery value change in the last hour -5.94p, change today -27.66p, rate_forward 6.87p
2026-08-18 21:20:01.556503: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:20:01.616899: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:20:01.617057: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:20:01.703293: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:20:01.732846: Today's load divergence 103.73%, in-day adjustment 102.34%, damping 0.95x, yesterday 92.68% today 103.54% blend 11.11%
2026-08-18 21:20:01.732917: Today's predicted so far 13.21kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 13.21kWh forecast extra.
2026-08-18 21:20:01.732957: Today's actual load so far 13.82kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 21:20:01.761032: Inverter 0: Type SK Sunsynk
2026-08-18 21:20:01.761116: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:20:01.761294: Reserve min: 7%, battery_min: 7%
2026-08-18 21:20:01.761365: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:20:01.761621: Inverter 0 SoC: 2.72kW 17%, current charge rate 5000W, current discharge rate 5250W, current battery power 1098W, current battery voltage 51.2V, grid power -57W, load power 1159W, PV Power 0W
2026-08-18 21:20:01.761768: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:20:01.761852: Inverter 0 scheduled charge enable is False
2026-08-18 21:20:01.761886: Inverter 0 charge windows currently []
2026-08-18 21:20:01.761912: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:20:01.762034: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:20:01.762071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:20:01.762106: Inverter 0 scheduled discharge enable is False
2026-08-18 21:20:01.762227: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:20:01.762263: Inverter 0 discharge windows currently []
2026-08-18 21:20:01.762285: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:20:01.762308: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:20:01.762326: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:20:01.817820: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:20:01.817921: Plan was last updated on 2026-08-18 21:10:00+01:00 and is now 10.0 minutes old
2026-08-18 21:20:01.818118: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:20:01.818152: Best export window [  ]
2026-08-18 21:20:01.818824: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:20:01.821447: Load divergence over 8.0 hours mean 625.29W, min 386.4W, max 1405.2W, std dev 256.57W, divergence 20.52%
2026-08-18 21:20:01.837393: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:20:01.837483: LoadML is_calculating False
2026-08-18 21:20:01.837551: Creating pool of 12 processes to match your CPU count
2026-08-18 21:20:01.935183: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 655.74p, metric_keep 126.05kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.52kWh, PV 0.0kWh
2026-08-18 21:20:02.048752: Battery has 1.67 hours left - now at 2.72kWh
2026-08-18 21:20:02.093660: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 679.75p, metric_keep 126.18kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.41kWh, PV 0.0kWh
2026-08-18 21:20:02.170413: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 386.46p, metric_keep 4.05kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.41kWh, PV 0.0kWh
2026-08-18 21:20:02.237812: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 377.81p, metric_keep 1.91kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.52kWh, PV 0.0kWh
2026-08-18 21:20:02.238234: Saving plan best values to HA entities
2026-08-18 21:20:02.379729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:20:02.384547: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:20:02.389989: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.78kWh, house 0.52kWh, export 0.0kWh, metric 377.81p, metric10 386.46p
2026-08-18 21:20:02.465769: Marginal costs baseline metric (no standing charge): 331.1801
2026-08-18 21:20:02.718550: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:20:02.771792: Rate array import [{'start': 1280, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1280, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:20:02.772352: - Your estimated bill for today is £1.98 and tomorrow is £1.97
2026-08-18 21:20:02.772394: - 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-18 21:20:02.772414: - The battery is currently at 17% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 21:20:02.772429: - For the next 48 hours there will be no solar generation.
2026-08-18 21:20:02.772444: - You will run out of battery in 1 and three quarters hours.
2026-08-18 21:20:02.772458: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 21:20:02.772488: 
2026-08-18 21:20:02.817679: Plan calculation took 1.00 seconds
2026-08-18 21:20:02.821511: No high rate period found
2026-08-18 21:20:02.868799: Import threshold used for optimisation was 8.0p
2026-08-18 21:20:02.921861: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:20:02.926400: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 17%, target 100%
2026-08-18 21:20:02.926496: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:20:02.926598: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:20:02.926805: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:20:02.926893: No export window planned
2026-08-18 21:20:02.927008: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:20:02.927039: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:20:02.927148: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:20:02.927293: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:20:02.927344: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:20:02.927398: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:20:02.927473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927528: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927564: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927612: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927652: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.927976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:02.928016: Inverter 0 count register writes 0
2026-08-18 21:20:02.941527: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 21:20:02.941702: Recompute is saving previous plan...
2026-08-18 21:20:02.942741: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 21:20:02.942815: Best export window [  ]
2026-08-18 21:20:02.943670: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:20:02.947165: Load divergence over 8.0 hours mean 625.29W, min 386.4W, max 1405.2W, std dev 256.57W, divergence 20.52%
2026-08-18 21:20:02.963221: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:20:02.963323: LoadML is_calculating False
2026-08-18 21:20:02.963391: Creating pool of 12 processes to match your CPU count
2026-08-18 21:20:03.040891: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 21:20:03.042762: Optimise levels pass started at 2026-08-18 21:20:03
2026-08-18 21:20:03.042810: Optimise all windows, total charge 24 export 1
2026-08-18 21:20:03.357233: >> Region optimisation pass width 960 gives best_metric 447.51p, best_cost 468.4p, best_cycle 50.62kWh, best_import 37.45kWh
2026-08-18 21:20:03.477043: >> Region optimisation pass width 480 gives best_metric 447.51p, best_cost 468.4p, best_cycle 50.62kWh, best_import 37.45kWh
2026-08-18 21:20:03.739867: >> Region optimisation pass width 240 gives best_metric 447.51p, best_cost 468.4p, best_cycle 50.62kWh, best_import 37.45kWh
2026-08-18 21:20:04.486364: >> Region optimisation pass width 120 gives best_metric 446.18p, best_cost 456.64p, best_cycle 52.15kWh, best_import 35.98kWh
2026-08-18 21:20:04.486554: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 21:20:04.486619: Optimise levels pass ended at 2026-08-18 21:20:04, duration 1.4 seconds tried 73 combinations
2026-08-18 21:20:04.486677: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 446.18p, best_keep 1.91kWh, best_cycle 52.15kWh, best_carbon 0kg, best_import 35.98kWh
2026-08-18 21:20:04.505507: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 21:20:06.945278: Tweak plan optimisation started metric 315.5p, cost 324.94p
2026-08-18 21:20:07.304607: Tweak optimisation finished metric 315.5p, cost 324.94p, metric_keep 1.91kWh, cycle 27.62kWh, carbon 0kg, import 19.52kWh, changed 8 window(s)
2026-08-18 21:20:07.328301: Swap charge optimisation started metric 315.5p, cost 324.94p, min_improvement_swap 0.1p
2026-08-18 21:20:08.107681: Swap charge optimisation finished metric 315.5p, cost 324.94p
2026-08-18 21:20:08.217204: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 314.13p -> 313.88p, plan now metric 316.73p, cost 320.8p, cycle 27.62kWh, import 19.01kWh
2026-08-18 21:20:08.225509: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:20:08.225873: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:20:08.226126: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:20:08.226329: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:20:08.255769: Previous plan best metric is 315.5 (cost 324.94) and new plan best metric is 315.5 (cost 324.94)
2026-08-18 21:20:08.255982: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 21:20:08.256119: Plan valid is now true after recompute was False
2026-08-18 21:20:08.279478: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 654.17p, metric_keep 125.8kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.32kWh, PV 0.0kWh
2026-08-18 21:20:08.375668: Battery has 1.67 hours left - now at 2.72kWh
2026-08-18 21:20:08.414295: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 678.11p, metric_keep 125.92kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.2kWh, PV 0.0kWh
2026-08-18 21:20:08.481871: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 379.27p, metric_keep 4.03kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.2kWh, PV 0.0kWh
2026-08-18 21:20:08.560936: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 369.58p, metric_keep 1.91kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 32.32kWh, PV 0.0kWh
2026-08-18 21:20:08.561045: Saving plan best values to HA entities
2026-08-18 21:20:08.711088: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:20:08.716486: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:20:08.721845: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.75kWh, house 0.52kWh, export 0.0kWh, metric 369.58p, metric10 379.27p
2026-08-18 21:20:08.803521: Marginal costs baseline metric (no standing charge): 322.947
2026-08-18 21:20:09.090359: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:20:09.154082: Rate array import [{'start': 1280, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1280, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:20:09.154789: - Your estimated bill for today is £1.98 and tomorrow is £1.97
2026-08-18 21:20:09.154837: - 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-18 21:20:09.154882: - The battery is currently at 17% and is in eco mode for the next 2 and a quarter hours.
2026-08-18 21:20:09.154902: - For the next 48 hours there will be no solar generation.
2026-08-18 21:20:09.154920: - You will run out of battery in 1 and three quarters hours.
2026-08-18 21:20:09.154959: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 21:20:09.154979: 
2026-08-18 21:20:09.201866: Plan calculation took 6.26 seconds
2026-08-18 21:20:09.202148: Inverter 0: Type SK Sunsynk
2026-08-18 21:20:09.202185: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:20:09.202375: Reserve min: 7%, battery_min: 7%
2026-08-18 21:20:09.202439: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:20:09.202725: Inverter 0 SoC: 2.72kW 17%, current charge rate 5000W, current discharge rate 5250W, current battery power 1098W, current battery voltage 51.2V, grid power -57W, load power 1159W, PV Power 0W
2026-08-18 21:20:09.202913: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:20:09.203015: Inverter 0 scheduled charge enable is False
2026-08-18 21:20:09.203046: Inverter 0 charge windows currently []
2026-08-18 21:20:09.203071: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:20:09.203160: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:20:09.203192: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:20:09.203221: Inverter 0 scheduled discharge enable is False
2026-08-18 21:20:09.203322: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:20:09.203352: Inverter 0 discharge windows currently []
2026-08-18 21:20:09.203370: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:20:09.203385: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:20:09.203402: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:20:09.250412: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 17%, target 100%
2026-08-18 21:20:09.250571: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:20:09.250658: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:20:09.250833: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:20:09.250906: No export window planned
2026-08-18 21:20:09.251070: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:20:09.251109: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:20:09.251229: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:20:09.251391: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:20:09.251442: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:20:09.251491: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:20:09.251561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251612: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251713: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251733: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:20:09.251991: Inverter 0 count register writes 0
2026-08-18 21:20:09.271686: Total inverter register writes now 867
2026-08-18 21:20:09.300351: Info: Completed run status Demand
2026-08-18 21:20:09.305996: Info: record_status Demand
2026-08-18 21:20:09.311253: Saved current settings to /config/predbat_config.json
2026-08-18 21:20:09.311525: Compare, best tariff: current metric 129.87p
2026-08-18 21:20:49.435558: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:20:49.435878: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:20:49.435983: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:20:49.436191: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:20:49.436254: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:20:49.436295: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:20:49.436338: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:23:04.325274: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:23:04.325507: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:23:04.325541: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:23:04.325684: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:23:04.325722: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:23:04.325743: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:23:04.325761: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:25:00.485468: --------------- PredBat - update at 2026-08-18 21:25:00+01:00 with clock skew 0 minutes, minutes now 1285
2026-08-18 21:25:00.486283: Saved current settings to /config/predbat_config.json
2026-08-18 21:25:00.486481: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 21:25:00.486599: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:25:00.486716: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:25:00.504122: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:25:00.504260: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:25:00.504485: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:25:00.505033: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:25:00.505188: Predbat mode is set to Control charge & discharge
2026-08-18 21:25:00.660075: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:25:00.660187: Using load_power data to fill gaps in load_today data
2026-08-18 21:25:01.431464: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:25:01.431645: Zero load period starting at 2026-08-17T10:54:00+0100 (2071 minutes) for 189 minutes with base value 204.7
2026-08-18 21:25:01.433249: Processing 721 30-minute periods for power integration
2026-08-18 21:25:01.603465: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:25:01.603567: Car charging hold False, threshold 6.0kWh
2026-08-18 21:25:01.603603: Current data so far today: load 14.0kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:25:01.616626: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:25:01.616691: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:25:01.617336: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:25:01.617403: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:25:01.617446: Standing charge is set to 46.63p
2026-08-18 21:25:01.687952: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:25:01.688172: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:25:01.688343: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:25:01.689211: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:25:01.689296: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:25:01.689381: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:25:01.693635: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:25:01.693892: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:25:01.728671: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:25:01.728751: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:25:01.729811: High export rate found rates in range 99p to -99p
2026-08-18 21:25:01.752993: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:25:01.753059: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:25:01.764905: Battery level now 2.72kWh, -1hr ago 3.58kWh, at midnight 6.84kWh, battery value change in the last hour -5.88p, change today -28.32p, rate_forward 6.87p
2026-08-18 21:25:01.765287: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:25:01.817064: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.66p, export 0.0p, carbon 0.0kg
2026-08-18 21:25:01.817239: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:25:01.915608: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:25:01.951707: Today's load divergence 104.25%, in-day adjustment 102.81%, damping 0.95x, yesterday 92.68% today 104.04% blend 10.76%
2026-08-18 21:25:01.951793: Today's predicted so far 13.23kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 13.23kWh forecast extra.
2026-08-18 21:25:01.951826: Today's actual load so far 13.93kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 21:25:01.984561: Inverter 0: Type SK Sunsynk
2026-08-18 21:25:01.984640: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:25:01.984816: Reserve min: 7%, battery_min: 7%
2026-08-18 21:25:01.984884: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:25:01.985178: Inverter 0 SoC: 2.62kW 16%, current charge rate 5000W, current discharge rate 5250W, current battery power 1091W, current battery voltage 51.2V, grid power -54W, load power 1083W, PV Power 0W
2026-08-18 21:25:01.985328: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:25:01.985412: Inverter 0 scheduled charge enable is False
2026-08-18 21:25:01.985447: Inverter 0 charge windows currently []
2026-08-18 21:25:01.985473: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:25:01.985585: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:25:01.985620: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:25:01.985655: Inverter 0 scheduled discharge enable is False
2026-08-18 21:25:01.985778: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:25:01.985814: Inverter 0 discharge windows currently []
2026-08-18 21:25:01.985836: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:25:01.985857: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:25:01.985874: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:25:02.057839: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:25:02.057972: Plan was last updated on 2026-08-18 21:20:00+01:00 and is now 5.0 minutes old
2026-08-18 21:25:02.058175: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:25:02.058216: Best export window [  ]
2026-08-18 21:25:02.059224: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:25:02.062462: Load divergence over 8.0 hours mean 625.33W, min 344.4W, max 1693.2W, std dev 283.05W, divergence 22.63%
2026-08-18 21:25:02.084946: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:25:02.085052: LoadML is_calculating False
2026-08-18 21:25:02.085110: Creating pool of 12 processes to match your CPU count
2026-08-18 21:25:02.200453: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 657.74p, metric_keep 125.89kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.5kWh, PV 0.0kWh
2026-08-18 21:25:02.310477: Battery has 1.5 hours left - now at 2.62kWh
2026-08-18 21:25:02.355125: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 681.73p, metric_keep 126.0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.38kWh, PV 0.0kWh
2026-08-18 21:25:02.428977: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 385.73p, metric_keep 4.1kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.38kWh, PV 0.0kWh
2026-08-18 21:25:02.494140: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 375.95p, metric_keep 1.94kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.5kWh, PV 0.0kWh
2026-08-18 21:25:02.494212: Saving plan best values to HA entities
2026-08-18 21:25:02.639786: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 21:25:02.644516: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:25:02.649236: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.59kWh, export 0.0kWh, metric 375.95p, metric10 385.73p
2026-08-18 21:25:02.727078: Marginal costs baseline metric (no standing charge): 329.3194
2026-08-18 21:25:02.988002: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:25:03.053196: Rate array import [{'start': 1285, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1285, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:25:03.053840: - Your estimated bill for today is £2.00 and tomorrow is £1.96
2026-08-18 21:25:03.053883: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 21:25:03.053905: - The battery is currently at 16% and is in eco mode for the next 2 hours.
2026-08-18 21:25:03.053923: - For the next 48 hours there will be no solar generation.
2026-08-18 21:25:03.053961: - You will run out of battery in 1 and a half hours.
2026-08-18 21:25:03.053979: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-18 21:25:03.053996: 
2026-08-18 21:25:03.106211: Plan calculation took 1.05 seconds
2026-08-18 21:25:03.110038: No high rate period found
2026-08-18 21:25:03.158110: Import threshold used for optimisation was 8.0p
2026-08-18 21:25:03.202060: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:25:03.206775: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 16%, target 100%
2026-08-18 21:25:03.206908: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:25:03.207051: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:25:03.207305: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:25:03.207419: No export window planned
2026-08-18 21:25:03.207611: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:25:03.207654: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:25:03.207810: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:25:03.208060: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:25:03.208135: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:25:03.208227: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:25:03.208363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208551: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208600: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.208995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:25:03.209033: Inverter 0 count register writes 0
2026-08-18 21:25:03.221726: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 21:25:03.226181: Total inverter register writes now 867
2026-08-18 21:25:03.252545: Info: Completed run status Demand
2026-08-18 21:25:03.257847: Info: record_status Demand
2026-08-18 21:25:03.264030: Saved current settings to /config/predbat_config.json
2026-08-18 21:25:03.264354: Compare, best tariff: current metric 129.87p
2026-08-18 21:25:34.358008: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:25:34.358224: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:25:34.358270: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:25:34.358445: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:25:34.358502: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:25:34.358525: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:25:34.358551: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:27:34.567307: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:27:34.567590: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:27:34.567634: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:27:34.567805: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:27:34.567865: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:27:34.567954: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:27:34.567989: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:29:48.803785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:29:48.804062: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:29:48.804109: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:29:48.804239: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:29:48.804277: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:29:48.804298: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:29:48.804316: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:30:00.905436: --------------- PredBat - update at 2026-08-18 21:30:00+01:00 with clock skew 0 minutes, minutes now 1290
2026-08-18 21:30:00.906224: Saved current settings to /config/predbat_config.json
2026-08-18 21:30:00.906364: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 21:30:00.906437: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:30:00.906505: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:30:00.923634: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:30:00.923757: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:30:00.923978: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:30:00.924485: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:30:00.924601: Predbat mode is set to Control charge & discharge
2026-08-18 21:30:01.100609: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:30:01.100723: Using load_power data to fill gaps in load_today data
2026-08-18 21:30:01.918646: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:30:01.918883: Zero load period starting at 2026-08-17T10:54:00+0100 (2076 minutes) for 189 minutes with base value 204.675
2026-08-18 21:30:01.920783: Processing 721 30-minute periods for power integration
2026-08-18 21:30:02.109718: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:30:02.109825: Car charging hold False, threshold 6.0kWh
2026-08-18 21:30:02.109864: Current data so far today: load 14.1kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:30:02.124695: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:30:02.124790: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:30:02.125446: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:30:02.125518: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:30:02.125585: Standing charge is set to 46.63p
2026-08-18 21:30:02.205719: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:30:02.206076: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:30:02.206340: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:30:02.207470: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:30:02.207586: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:30:02.207703: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:30:02.213620: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:30:02.214045: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:30:02.260756: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:30:02.260871: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:30:02.262206: High export rate found rates in range 99p to -99p
2026-08-18 21:30:02.290508: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:30:02.290626: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:30:02.303681: Battery level now 2.62kWh, -1hr ago 3.52kWh, at midnight 6.84kWh, battery value change in the last hour -6.21p, change today -29.03p, rate_forward 6.87p
2026-08-18 21:30:02.304061: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 0.16p, import 0.16p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:30:02.361667: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:30:02.361795: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:30:02.452177: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:30:02.491158: Today's load divergence 104.21%, in-day adjustment 102.82%, damping 0.95x, yesterday 92.68% today 104.0% blend 10.42%
2026-08-18 21:30:02.491251: Today's predicted so far 13.35kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 13.35kWh forecast extra.
2026-08-18 21:30:02.491286: Today's actual load so far 14.04kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 21:30:02.521531: Inverter 0: Type SK Sunsynk
2026-08-18 21:30:02.521617: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:30:02.521896: Reserve min: 7%, battery_min: 7%
2026-08-18 21:30:02.522022: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:30:02.522294: Inverter 0 SoC: 2.43kW 15%, current charge rate 5000W, current discharge rate 5250W, current battery power 1001W, current battery voltage 51.2V, grid power -58W, load power 1089W, PV Power 0W
2026-08-18 21:30:02.522446: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:30:02.522531: Inverter 0 scheduled charge enable is False
2026-08-18 21:30:02.522566: Inverter 0 charge windows currently []
2026-08-18 21:30:02.522592: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:30:02.522703: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:30:02.522737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:30:02.522773: Inverter 0 scheduled discharge enable is False
2026-08-18 21:30:02.522923: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:30:02.522978: Inverter 0 discharge windows currently []
2026-08-18 21:30:02.523002: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:30:02.523021: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:30:02.523044: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:30:02.586046: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:30:02.586167: Plan was last updated on 2026-08-18 21:20:00+01:00 and is now 10.0 minutes old
2026-08-18 21:30:02.586378: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:30:02.586420: Best export window [  ]
2026-08-18 21:30:02.587282: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:30:02.590719: Load divergence over 8.0 hours mean 625.21W, min 323.4W, max 1621.2W, std dev 275.57W, divergence 22.04%
2026-08-18 21:30:02.608722: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:30:02.608825: LoadML is_calculating False
2026-08-18 21:30:02.608883: Creating pool of 12 processes to match your CPU count
2026-08-18 21:30:02.726797: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 661.96p, metric_keep 126.07kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.62kWh, PV 0.0kWh
2026-08-18 21:30:02.842317: Battery has 1.33 hours left - now at 2.43kWh
2026-08-18 21:30:02.885356: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 685.83p, metric_keep 126.16kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.5kWh, PV 0.0kWh
2026-08-18 21:30:02.963680: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 392.68p, metric_keep 4.14kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.5kWh, PV 0.0kWh
2026-08-18 21:30:03.031601: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 383.83p, metric_keep 2.06kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.62kWh, PV 0.0kWh
2026-08-18 21:30:03.031672: Saving plan best values to HA entities
2026-08-18 21:30:03.194280: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 21:30:03.199447: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:30:03.223225: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.76kWh, house 0.71kWh, export 0.0kWh, metric 383.83p, metric10 392.68p
2026-08-18 21:30:03.299881: Marginal costs baseline metric (no standing charge): 337.2001
2026-08-18 21:30:03.572673: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:30:03.634164: Rate array import [{'start': 1290, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1290, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:30:03.634756: - Your estimated bill for today is £2.03 and tomorrow is £1.96
2026-08-18 21:30:03.634798: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 21:30:03.634820: - The battery is currently at 15% and is in eco mode for the next 2 hours.
2026-08-18 21:30:03.634839: - For the next 48 hours there will be no solar generation.
2026-08-18 21:30:03.634856: - You will run out of battery in 1 and a quarter hours.
2026-08-18 21:30:03.634877: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-18 21:30:03.634917: 
2026-08-18 21:30:03.687231: Plan calculation took 1.10 seconds
2026-08-18 21:30:03.690957: No high rate period found
2026-08-18 21:30:03.732493: Import threshold used for optimisation was 8.0p
2026-08-18 21:30:03.790267: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:30:03.797357: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 15%, target 100%
2026-08-18 21:30:03.797517: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:30:03.797650: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:30:03.797907: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:30:03.798029: No export window planned
2026-08-18 21:30:03.798176: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:30:03.798227: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:30:03.798372: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:30:03.798531: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:30:03.798588: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:30:03.798648: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:30:03.798734: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798815: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798854: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798873: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.798999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.799042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.799065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.799089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.799109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:03.799125: Inverter 0 count register writes 0
2026-08-18 21:30:03.812698: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 21:30:03.812821: Recompute is saving previous plan...
2026-08-18 21:30:03.813525: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 21:30:03.813565: Best export window [  ]
2026-08-18 21:30:03.814241: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:30:03.816867: Load divergence over 8.0 hours mean 625.21W, min 323.4W, max 1621.2W, std dev 275.57W, divergence 22.04%
2026-08-18 21:30:03.831333: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:30:03.831411: LoadML is_calculating False
2026-08-18 21:30:03.831461: Creating pool of 12 processes to match your CPU count
2026-08-18 21:30:03.914208: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 21:30:03.915001: Optimise levels pass started at 2026-08-18 21:30:03
2026-08-18 21:30:03.915055: Optimise all windows, total charge 24 export 1
2026-08-18 21:30:04.447786: >> Region optimisation pass width 960 gives best_metric 454.38p, best_cost 474.66p, best_cycle 50.98kWh, best_import 37.65kWh
2026-08-18 21:30:04.569769: >> Region optimisation pass width 480 gives best_metric 454.38p, best_cost 474.66p, best_cycle 50.98kWh, best_import 37.65kWh
2026-08-18 21:30:05.019260: >> Region optimisation pass width 240 gives best_metric 454.38p, best_cost 474.66p, best_cycle 50.98kWh, best_import 37.65kWh
2026-08-18 21:30:05.617054: >> Region optimisation pass width 120 gives best_metric 453.62p, best_cost 464.91p, best_cycle 52.24kWh, best_import 36.43kWh
2026-08-18 21:30:05.617296: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 21:30:05.617434: Optimise levels pass ended at 2026-08-18 21:30:05, duration 1.7 seconds tried 73 combinations
2026-08-18 21:30:05.617538: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 453.62p, best_keep 2.06kWh, best_cycle 52.24kWh, best_carbon 0kg, best_import 36.43kWh
2026-08-18 21:30:05.635133: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 21:30:09.855366: Tweak plan optimisation started metric 321.83p, cost 331.11p
2026-08-18 21:30:10.168313: Tweak optimisation finished metric 321.83p, cost 331.11p, metric_keep 2.06kWh, cycle 27.34kWh, carbon 0kg, import 19.7kWh, changed 8 window(s)
2026-08-18 21:30:10.187044: Swap charge optimisation started metric 321.83p, cost 331.11p, min_improvement_swap 0.1p
2026-08-18 21:30:10.948004: Swap charge optimisation finished metric 321.83p, cost 331.11p
2026-08-18 21:30:11.060150: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 38%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 38%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:30:11.060755: Unclipped charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:30:11.061039: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:30:11.061246: Filtered charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:30:11.091204: Previous plan best metric is 321.83 (cost 331.11) and new plan best metric is 321.83 (cost 331.11)
2026-08-18 21:30:11.091382: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 21:30:11.091517: Plan valid is now true after recompute was False
2026-08-18 21:30:11.115156: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 660.5p, metric_keep 125.82kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.44kWh, PV 0.0kWh
2026-08-18 21:30:11.211829: Battery has 1.33 hours left - now at 2.43kWh
2026-08-18 21:30:11.258619: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 684.3p, metric_keep 125.9kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.31kWh, PV 0.0kWh
2026-08-18 21:30:11.332625: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 385.6p, metric_keep 4.13kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.31kWh, PV 0.0kWh
2026-08-18 21:30:11.400008: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 375.71p, metric_keep 2.06kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 32.44kWh, PV 0.0kWh
2026-08-18 21:30:11.400100: Saving plan best values to HA entities
2026-08-18 21:30:11.539258: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 21:30:11.544608: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:30:11.550711: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.71kWh, export 0.0kWh, metric 375.71p, metric10 385.6p
2026-08-18 21:30:11.625114: Marginal costs baseline metric (no standing charge): 329.0758
2026-08-18 21:30:11.893927: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:30:11.947360: Rate array import [{'start': 1290, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1290, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:30:11.947987: - Your estimated bill for today is £2.03 and tomorrow is £1.96
2026-08-18 21:30:11.948071: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 21:30:11.948106: - The battery is currently at 15% and is in eco mode for the next 2 hours.
2026-08-18 21:30:11.948134: - For the next 48 hours there will be no solar generation.
2026-08-18 21:30:11.948170: - You will run out of battery in 1 and a quarter hours.
2026-08-18 21:30:11.948190: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-18 21:30:11.948223: 
2026-08-18 21:30:11.998063: Plan calculation took 8.19 seconds
2026-08-18 21:30:11.998368: Inverter 0: Type SK Sunsynk
2026-08-18 21:30:11.998413: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:30:11.998621: Reserve min: 7%, battery_min: 7%
2026-08-18 21:30:11.998700: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:30:11.999059: Inverter 0 SoC: 2.43kW 15%, current charge rate 5000W, current discharge rate 5250W, current battery power 1143W, current battery voltage 51.2V, grid power -58W, load power 1200W, PV Power 0W
2026-08-18 21:30:11.999279: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:30:11.999382: Inverter 0 scheduled charge enable is False
2026-08-18 21:30:11.999417: Inverter 0 charge windows currently []
2026-08-18 21:30:11.999448: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:30:11.999556: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:30:11.999595: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:30:11.999631: Inverter 0 scheduled discharge enable is False
2026-08-18 21:30:11.999754: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:30:11.999791: Inverter 0 discharge windows currently []
2026-08-18 21:30:11.999813: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:30:11.999836: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:30:11.999878: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:30:12.049427: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 15%, target 100%
2026-08-18 21:30:12.049565: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:30:12.049635: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:30:12.049806: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:30:12.049886: No export window planned
2026-08-18 21:30:12.050023: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:30:12.050063: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:30:12.050199: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:30:12.050354: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:30:12.050407: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:30:12.050463: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:30:12.050550: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050590: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050625: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050729: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050908: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.050997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:30:12.051025: Inverter 0 count register writes 0
2026-08-18 21:30:12.069208: Total inverter register writes now 867
2026-08-18 21:30:12.098023: Info: Completed run status Demand
2026-08-18 21:30:12.103774: Info: record_status Demand
2026-08-18 21:30:12.110107: Saved current settings to /config/predbat_config.json
2026-08-18 21:30:12.110457: Compare, best tariff: current metric 129.87p
2026-08-18 21:30:49.219064: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:30:49.219313: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:30:49.219392: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:30:49.219569: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:30:49.219613: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:30:49.219636: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:30:49.219657: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:32:49.429584: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:32:49.429770: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:32:49.429803: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:32:49.429934: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:32:49.430050: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:32:49.430068: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:32:49.430083: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:34:49.628179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:34:49.628426: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:34:49.628461: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:34:49.628589: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:34:49.628628: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:34:49.628649: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:34:49.628668: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:35:00.716350: --------------- PredBat - update at 2026-08-18 21:35:00+01:00 with clock skew 0 minutes, minutes now 1295
2026-08-18 21:35:00.717210: Saved current settings to /config/predbat_config.json
2026-08-18 21:35:00.717405: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-18 21:35:00.717497: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 21:35:00.717620: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 21:35:00.735562: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:35:00.735671: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:35:00.735878: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:35:00.736475: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:35:00.736635: Predbat mode is set to Control charge & discharge
2026-08-18 21:35:00.892692: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:35:00.892802: Using load_power data to fill gaps in load_today data
2026-08-18 21:35:01.571270: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:35:01.571422: Zero load period starting at 2026-08-17T10:54:00+0100 (2081 minutes) for 189 minutes with base value 204.65
2026-08-18 21:35:01.572578: Processing 721 30-minute periods for power integration
2026-08-18 21:35:01.720704: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:35:01.720816: Car charging hold False, threshold 6.0kWh
2026-08-18 21:35:01.720852: Current data so far today: load 14.2kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:35:01.734327: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:35:01.734398: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:35:01.735049: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:35:01.735114: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:35:01.735158: Standing charge is set to 46.63p
2026-08-18 21:35:01.818348: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:35:01.818594: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:35:01.818815: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:35:01.819775: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:35:01.819889: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:35:01.820071: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:35:01.824722: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:35:01.825060: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:35:01.860041: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:35:01.860132: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:35:01.861338: High export rate found rates in range 99p to -99p
2026-08-18 21:35:01.884639: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:35:01.884752: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:35:01.894827: Battery level now 2.43kWh, -1hr ago 3.39kWh, at midnight 6.84kWh, battery value change in the last hour -6.6p, change today -30.3p, rate_forward 6.87p
2026-08-18 21:35:01.895186: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:35:01.948679: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.66p, export 0.0p, carbon 0.0kg
2026-08-18 21:35:01.948876: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:35:02.046694: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:35:02.085907: Today's load divergence 104.31%, in-day adjustment 102.94%, damping 0.95x, yesterday 92.68% today 104.09% blend 10.07%
2026-08-18 21:35:02.086013: Today's predicted so far 13.44kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 13.44kWh forecast extra.
2026-08-18 21:35:02.086045: Today's actual load so far 14.15kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 21:35:02.115333: Inverter 0: Type SK Sunsynk
2026-08-18 21:35:02.115402: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:35:02.115548: Reserve min: 7%, battery_min: 7%
2026-08-18 21:35:02.115603: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:35:02.115873: Inverter 0 SoC: 2.43kW 15%, current charge rate 5000W, current discharge rate 5250W, current battery power 1099W, current battery voltage 51.2V, grid power -57W, load power 1131W, PV Power 0W
2026-08-18 21:35:02.116105: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:35:02.116230: Inverter 0 scheduled charge enable is False
2026-08-18 21:35:02.116269: Inverter 0 charge windows currently []
2026-08-18 21:35:02.116292: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:35:02.116384: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:35:02.116414: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:35:02.116444: Inverter 0 scheduled discharge enable is False
2026-08-18 21:35:02.116540: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:35:02.116569: Inverter 0 discharge windows currently []
2026-08-18 21:35:02.116587: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:35:02.116602: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:35:02.116616: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:35:02.167394: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:35:02.167521: Plan was last updated on 2026-08-18 21:30:00+01:00 and is now 5.0 minutes old
2026-08-18 21:35:02.167704: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:35:02.167739: Best export window [  ]
2026-08-18 21:35:02.168470: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:35:02.170932: Load divergence over 8.0 hours mean 624.88W, min 343.8W, max 1617.6W, std dev 291.3W, divergence 23.31%
2026-08-18 21:35:02.186049: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:35:02.186122: LoadML is_calculating False
2026-08-18 21:35:02.186170: Creating pool of 12 processes to match your CPU count
2026-08-18 21:35:02.303276: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 659.4p, metric_keep 125.67kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.58kWh, PV 0.0kWh
2026-08-18 21:35:02.411336: Battery has 1.33 hours left - now at 2.43kWh
2026-08-18 21:35:02.455253: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 683.17p, metric_keep 125.75kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 33.46kWh, PV 0.0kWh
2026-08-18 21:35:02.532998: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 387.25p, metric_keep 3.96kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 33.46kWh, PV 0.0kWh
2026-08-18 21:35:02.610229: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 378.0p, metric_keep 1.85kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.58kWh, PV 0.0kWh
2026-08-18 21:35:02.610314: Saving plan best values to HA entities
2026-08-18 21:35:02.766877: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:35:02.772200: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:35:02.777573: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.26kWh, house 0.65kWh, export 0.0kWh, metric 378.0p, metric10 387.25p
2026-08-18 21:35:02.852789: Marginal costs baseline metric (no standing charge): 331.3616
2026-08-18 21:35:03.121835: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:35:03.186379: Rate array import [{'start': 1295, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1295, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:35:03.187049: - Your estimated bill for today is £2.01 and tomorrow is £1.96
2026-08-18 21:35:03.187094: - Import rates are very expensive (33.8p) for the next 1  hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 21:35:03.187118: - The battery is currently at 15% and is in eco mode for the next 1  hours.
2026-08-18 21:35:03.187137: - For the next 48 hours there will be no solar generation.
2026-08-18 21:35:03.187159: - You will run out of battery in 1 and a quarter hours.
2026-08-18 21:35:03.187176: - Your next charge slot will be in 1  hours where import rates will be cheap (8.0p).
2026-08-18 21:35:03.187194: 
2026-08-18 21:35:03.231428: Plan calculation took 1.06 seconds
2026-08-18 21:35:03.235219: No high rate period found
2026-08-18 21:35:03.284197: Import threshold used for optimisation was 8.0p
2026-08-18 21:35:03.332443: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:35:03.337947: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 15%, target 100%
2026-08-18 21:35:03.338093: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:35:03.338204: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:35:03.338453: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:35:03.338552: No export window planned
2026-08-18 21:35:03.338678: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:35:03.338713: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:35:03.338846: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:35:03.339044: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:35:03.339106: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:35:03.339174: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:35:03.339276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339341: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339558: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:35:03.339774: Inverter 0 count register writes 0
2026-08-18 21:35:03.353700: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 21:35:03.358460: Total inverter register writes now 867
2026-08-18 21:35:03.387565: Info: Completed run status Demand
2026-08-18 21:35:03.393221: Info: record_status Demand
2026-08-18 21:35:03.399012: Saved current settings to /config/predbat_config.json
2026-08-18 21:35:03.399339: Compare, best tariff: current metric 129.87p
2026-08-18 21:35:34.495494: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:35:34.495721: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:35:34.495769: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:35:34.495993: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:35:34.496046: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:35:34.496069: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:35:34.496093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:37:48.713215: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:37:48.713437: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:37:48.713473: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:37:48.713602: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:37:48.713640: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:37:48.713661: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:37:48.713682: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:39:48.921521: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:39:48.921742: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:39:48.921784: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:39:48.921933: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:39:48.921973: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:39:48.921995: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:39:48.922014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:40:00.020374: --------------- PredBat - update at 2026-08-18 21:40:00+01:00 with clock skew 0 minutes, minutes now 1300
2026-08-18 21:40:00.021198: Saved current settings to /config/predbat_config.json
2026-08-18 21:40:05.272277: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 21:40:05.272403: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 21:40:05.289382: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:40:05.289495: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:40:05.289658: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:40:05.290177: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:40:05.290294: Predbat mode is set to Control charge & discharge
2026-08-18 21:40:05.444456: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:40:05.444575: Using load_power data to fill gaps in load_today data
2026-08-18 21:40:06.130244: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:40:06.130387: Zero load period starting at 2026-08-17T10:54:00+0100 (2086 minutes) for 189 minutes with base value 204.625
2026-08-18 21:40:06.131585: Processing 721 30-minute periods for power integration
2026-08-18 21:40:06.284540: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:40:06.285251: Car charging hold False, threshold 6.0kWh
2026-08-18 21:40:06.285302: Current data so far today: load 14.3kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:40:06.299991: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:40:06.300433: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:40:06.301109: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:40:06.301168: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:40:06.301210: Standing charge is set to 46.63p
2026-08-18 21:40:06.385867: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:40:06.386096: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:40:06.386248: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:40:06.387155: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:40:06.387247: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:40:06.387334: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:40:06.391779: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:40:06.392373: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:40:06.427011: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:40:06.427085: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:40:06.428175: High export rate found rates in range 99p to -99p
2026-08-18 21:40:06.450584: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:40:06.450656: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:40:06.460398: Battery level now 2.43kWh, -1hr ago 3.23kWh, at midnight 6.84kWh, battery value change in the last hour -5.5p, change today -30.3p, rate_forward 6.87p
2026-08-18 21:40:06.460694: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.05kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:40:06.509004: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:40:06.509115: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:40:06.591573: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:40:06.623121: Today's load divergence 104.68%, in-day adjustment 103.3%, damping 0.95x, yesterday 92.68% today 104.45% blend 9.72%
2026-08-18 21:40:06.623196: Today's predicted so far 13.46kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 13.46kWh forecast extra.
2026-08-18 21:40:06.623222: Today's actual load so far 14.23kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 21:40:06.647476: Inverter 0: Type SK Sunsynk
2026-08-18 21:40:06.647546: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:40:06.647690: Reserve min: 7%, battery_min: 7%
2026-08-18 21:40:06.647752: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:40:06.647996: Inverter 0 SoC: 2.38kW 15%, current charge rate 5000W, current discharge rate 5250W, current battery power 1167W, current battery voltage 51.2V, grid power -55W, load power 1140W, PV Power 0W
2026-08-18 21:40:06.648123: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:40:06.648192: Inverter 0 scheduled charge enable is False
2026-08-18 21:40:06.648215: Inverter 0 charge windows currently []
2026-08-18 21:40:06.648236: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:40:06.648320: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:40:06.648348: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:40:06.648377: Inverter 0 scheduled discharge enable is False
2026-08-18 21:40:06.648472: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:40:06.648502: Inverter 0 discharge windows currently []
2026-08-18 21:40:06.648520: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:40:06.648535: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:40:06.648550: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:40:06.694323: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:40:06.694407: Plan was last updated on 2026-08-18 21:30:00+01:00 and is now 10.0 minutes old
2026-08-18 21:40:06.694579: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:40:06.694612: Best export window [  ]
2026-08-18 21:40:06.695281: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:40:06.697835: Load divergence over 8.0 hours mean 625.11W, min 390.6W, max 1642.8W, std dev 275.12W, divergence 22.01%
2026-08-18 21:40:06.712983: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:40:06.713069: LoadML is_calculating False
2026-08-18 21:40:06.713118: Creating pool of 12 processes to match your CPU count
2026-08-18 21:40:06.815545: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 660.17p, metric_keep 125.63kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.73kWh, PV 0.0kWh
2026-08-18 21:40:06.919590: Battery has 1.25 hours left - now at 2.38kWh
2026-08-18 21:40:06.959005: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 683.87p, metric_keep 125.7kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 33.61kWh, PV 0.0kWh
2026-08-18 21:40:07.028954: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 390.64p, metric_keep 3.83kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 33.61kWh, PV 0.0kWh
2026-08-18 21:40:07.095403: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 382.2p, metric_keep 1.75kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.73kWh, PV 0.0kWh
2026-08-18 21:40:07.095890: Saving plan best values to HA entities
2026-08-18 21:40:07.243105: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:40:07.248682: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:40:07.254724: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.78kWh, house 0.65kWh, export 0.0kWh, metric 382.2p, metric10 390.64p
2026-08-18 21:40:07.330460: Marginal costs baseline metric (no standing charge): 335.5636
2026-08-18 21:40:07.593567: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:40:07.650577: Rate array import [{'start': 1300, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1300, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:40:07.651120: - Your estimated bill for today is £2.01 and tomorrow is £1.96
2026-08-18 21:40:07.651157: - 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-18 21:40:07.651175: - The battery is currently at 15% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 21:40:07.651190: - For the next 48 hours there will be no solar generation.
2026-08-18 21:40:07.651204: - You will run out of battery in 1 and a quarter hours.
2026-08-18 21:40:07.651220: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 21:40:07.651234: 
2026-08-18 21:40:07.694810: Plan calculation took 1.00 seconds
2026-08-18 21:40:07.698512: No high rate period found
2026-08-18 21:40:07.745490: Import threshold used for optimisation was 8.0p
2026-08-18 21:40:07.794452: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:40:07.799217: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 15%, target 100%
2026-08-18 21:40:07.799313: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:40:07.799449: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:40:07.799695: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:40:07.799790: No export window planned
2026-08-18 21:40:07.799979: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:40:07.800032: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:40:07.800157: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:40:07.800309: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:40:07.800359: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:40:07.800412: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:40:07.800495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800552: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:07.800863: Inverter 0 count register writes 0
2026-08-18 21:40:07.814098: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 21:40:07.814260: Recompute is saving previous plan...
2026-08-18 21:40:07.815015: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 21:40:07.815072: Best export window [  ]
2026-08-18 21:40:07.815735: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:40:07.818254: Load divergence over 8.0 hours mean 625.11W, min 390.6W, max 1642.8W, std dev 275.12W, divergence 22.01%
2026-08-18 21:40:07.832517: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:40:07.832590: LoadML is_calculating False
2026-08-18 21:40:07.832657: Creating pool of 12 processes to match your CPU count
2026-08-18 21:40:07.905167: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 21:40:07.905785: Optimise levels pass started at 2026-08-18 21:40:07
2026-08-18 21:40:07.905826: Optimise all windows, total charge 24 export 1
2026-08-18 21:40:08.215167: >> Region optimisation pass width 960 gives best_metric 453.21p, best_cost 472.74p, best_cycle 50.5kWh, best_import 37.58kWh
2026-08-18 21:40:08.348406: >> Region optimisation pass width 480 gives best_metric 453.21p, best_cost 472.74p, best_cycle 50.5kWh, best_import 37.58kWh
2026-08-18 21:40:08.625447: >> Region optimisation pass width 240 gives best_metric 453.21p, best_cost 472.74p, best_cycle 50.5kWh, best_import 37.58kWh
2026-08-18 21:40:09.412049: >> Region optimisation pass width 120 gives best_metric 452.09p, best_cost 463.72p, best_cycle 51.68kWh, best_import 36.45kWh
2026-08-18 21:40:09.412672: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 21:40:09.412848: Optimise levels pass ended at 2026-08-18 21:40:09, duration 1.5 seconds tried 71 combinations
2026-08-18 21:40:09.412982: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 452.09p, best_keep 1.75kWh, best_cycle 51.68kWh, best_carbon 0kg, best_import 36.45kWh
2026-08-18 21:40:09.431063: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 21:40:11.586780: Tweak plan optimisation started metric 320.87p, cost 331.11p
2026-08-18 21:40:11.875717: Tweak optimisation finished metric 320.86p, cost 331.09p, metric_keep 1.75kWh, cycle 29.2kWh, carbon 0kg, import 19.87kWh, changed 8 window(s)
2026-08-18 21:40:11.893957: Swap charge optimisation started metric 320.86p, cost 331.09p, min_improvement_swap 0.1p
2026-08-18 21:40:12.685696: Swap charge optimisation finished metric 320.86p, cost 331.09p
2026-08-18 21:40:12.791273: Pruned 1 dead plan slot(s) in 9 trial(s), nominal metric 319.55p -> 319.19p, plan now metric 323.24p, cost 326.92p, cycle 29.37kWh, import 19.35kWh
2026-08-18 21:40:12.800805: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:40:12.801149: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:40:12.801368: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:40:12.801537: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:40:12.837612: Previous plan best metric is 319.69 (cost 329.32) and new plan best metric is 320.86 (cost 331.09)
2026-08-18 21:40:12.837820: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 21:40:12.838081: Plan valid is now true after recompute was False
2026-08-18 21:40:12.867154: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 658.59p, metric_keep 125.38kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.53kWh, PV 0.0kWh
2026-08-18 21:40:12.972249: Battery has 1.25 hours left - now at 2.38kWh
2026-08-18 21:40:13.018207: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 682.21p, metric_keep 125.45kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 33.4kWh, PV 0.0kWh
2026-08-18 21:40:13.095097: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 383.42p, metric_keep 3.81kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 33.4kWh, PV 0.0kWh
2026-08-18 21:40:13.161524: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 373.94p, metric_keep 1.75kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 32.53kWh, PV 0.0kWh
2026-08-18 21:40:13.161591: Saving plan best values to HA entities
2026-08-18 21:40:13.290754: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:40:13.295805: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:40:13.300738: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.75kWh, house 0.65kWh, export 0.0kWh, metric 373.94p, metric10 383.42p
2026-08-18 21:40:13.367407: Marginal costs baseline metric (no standing charge): 327.3098
2026-08-18 21:40:13.588867: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:40:13.650373: Rate array import [{'start': 1300, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1300, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:40:13.650885: - Your estimated bill for today is £2.01 and tomorrow is £1.96
2026-08-18 21:40:13.650935: - 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-18 21:40:13.650969: - The battery is currently at 15% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 21:40:13.650985: - For the next 48 hours there will be no solar generation.
2026-08-18 21:40:13.651004: - You will run out of battery in 1 and a quarter hours.
2026-08-18 21:40:13.651019: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 21:40:13.651036: 
2026-08-18 21:40:13.693554: Plan calculation took 5.88 seconds
2026-08-18 21:40:13.693854: Inverter 0: Type SK Sunsynk
2026-08-18 21:40:13.693912: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:40:13.694134: Reserve min: 7%, battery_min: 7%
2026-08-18 21:40:13.694211: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:40:13.694557: Inverter 0 SoC: 2.24kW 14%, current charge rate 5000W, current discharge rate 5250W, current battery power 2395W, current battery voltage 51.2V, grid power -760W, load power 3137W, PV Power 0W
2026-08-18 21:40:13.694776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:40:13.694879: Inverter 0 scheduled charge enable is False
2026-08-18 21:40:13.694931: Inverter 0 charge windows currently []
2026-08-18 21:40:13.694964: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:40:13.695096: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:40:13.695142: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:40:13.695188: Inverter 0 scheduled discharge enable is False
2026-08-18 21:40:13.695342: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:40:13.695382: Inverter 0 discharge windows currently []
2026-08-18 21:40:13.695405: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:40:13.695424: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:40:13.695445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:40:13.752179: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 14%, target 100%
2026-08-18 21:40:13.752323: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:40:13.752399: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:40:13.752574: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:40:13.752655: No export window planned
2026-08-18 21:40:13.752758: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:40:13.752792: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:40:13.752950: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:40:13.753109: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:40:13.753160: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:40:13.753224: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:40:13.753311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753351: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753581: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:40:13.753906: Inverter 0 count register writes 0
2026-08-18 21:40:13.773686: Total inverter register writes now 867
2026-08-18 21:40:13.805228: Info: Completed run status Demand
2026-08-18 21:40:13.810190: Info: record_status Demand
2026-08-18 21:40:13.815611: Saved current settings to /config/predbat_config.json
2026-08-18 21:40:13.815890: Compare, best tariff: current metric 129.87p
2026-08-18 21:40:48.914800: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:40:48.915113: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:40:48.915149: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:40:48.915304: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:40:48.915343: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:40:48.915364: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:40:48.915382: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:42:49.140159: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:42:49.140445: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:42:49.140497: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:42:49.140681: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:42:49.140727: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:42:49.140784: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:42:49.140827: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:44:49.343432: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:44:49.343649: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:44:49.343683: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:44:49.343829: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:44:49.343867: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:44:49.343889: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:44:49.344003: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:45:00.433533: --------------- PredBat - update at 2026-08-18 21:45:00+01:00 with clock skew 0 minutes, minutes now 1305
2026-08-18 21:45:00.434366: Saved current settings to /config/predbat_config.json
2026-08-18 21:45:00.434535: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 21:45:00.434617: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 21:45:00.434735: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 21:45:00.452510: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:45:00.452650: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:45:00.452870: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:45:00.453554: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:45:00.453720: Predbat mode is set to Control charge & discharge
2026-08-18 21:45:00.642403: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:45:00.642518: Using load_power data to fill gaps in load_today data
2026-08-18 21:45:01.432431: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:45:01.432838: Zero load period starting at 2026-08-17T10:54:00+0100 (2091 minutes) for 189 minutes with base value 204.6
2026-08-18 21:45:01.433993: Processing 721 30-minute periods for power integration
2026-08-18 21:45:01.589971: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:45:01.590257: Car charging hold False, threshold 6.0kWh
2026-08-18 21:45:01.590305: Current data so far today: load 14.4kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:45:01.603597: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:45:01.603666: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:45:01.604334: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:45:01.604403: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:45:01.604455: Standing charge is set to 46.63p
2026-08-18 21:45:01.689483: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:45:01.689785: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:45:01.690027: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:45:01.691238: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:45:01.691502: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:45:01.691665: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:45:01.697212: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:45:01.697574: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:45:01.734144: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:45:01.734259: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:45:01.735399: High export rate found rates in range 99p to -99p
2026-08-18 21:45:01.758319: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:45:01.758418: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:45:01.778624: Battery level now 2.38kWh, -1hr ago 3.23kWh, at midnight 6.84kWh, battery value change in the last hour -5.88p, change today -30.68p, rate_forward 6.87p
2026-08-18 21:45:01.778986: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:45:01.835022: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.66p, export 0.0p, carbon 0.0kg
2026-08-18 21:45:01.835176: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:45:01.932332: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:45:01.970273: Today's load divergence 105.06%, in-day adjustment 103.67%, damping 0.95x, yesterday 92.68% today 104.81% blend 9.38%
2026-08-18 21:45:01.970354: Today's predicted so far 13.48kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 13.48kWh forecast extra.
2026-08-18 21:45:01.970386: Today's actual load so far 14.31kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 21:45:01.999887: Inverter 0: Type SK Sunsynk
2026-08-18 21:45:01.999988: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:45:02.000174: Reserve min: 7%, battery_min: 7%
2026-08-18 21:45:02.000245: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:45:02.000496: Inverter 0 SoC: 2.1kW 13%, current charge rate 5000W, current discharge rate 5250W, current battery power 1075W, current battery voltage 51.2V, grid power -54W, load power 1122W, PV Power 0W
2026-08-18 21:45:02.000643: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:45:02.000727: Inverter 0 scheduled charge enable is False
2026-08-18 21:45:02.000755: Inverter 0 charge windows currently []
2026-08-18 21:45:02.000785: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:45:02.000892: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:45:02.000927: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:45:02.000961: Inverter 0 scheduled discharge enable is False
2026-08-18 21:45:02.001077: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:45:02.001127: Inverter 0 discharge windows currently []
2026-08-18 21:45:02.001151: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:45:02.001170: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:45:02.001187: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:45:02.057520: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:45:02.057604: Plan was last updated on 2026-08-18 21:40:00+01:00 and is now 5.0 minutes old
2026-08-18 21:45:02.057773: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:45:02.057805: Best export window [  ]
2026-08-18 21:45:02.058444: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:45:02.060954: Load divergence over 8.0 hours mean 624.78W, min 394.8W, max 1402.8W, std dev 252.45W, divergence 20.2%
2026-08-18 21:45:02.076440: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:45:02.076550: LoadML is_calculating False
2026-08-18 21:45:02.076601: Creating pool of 12 processes to match your CPU count
2026-08-18 21:45:02.174873: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 666.33p, metric_keep 125.59kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.69kWh, PV 0.0kWh
2026-08-18 21:45:02.273156: Battery has 0.92 hours left - now at 2.1kWh
2026-08-18 21:45:02.312197: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 689.91p, metric_keep 125.63kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.56kWh, PV 0.0kWh
2026-08-18 21:45:02.374853: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 393.9p, metric_keep 3.98kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.56kWh, PV 0.0kWh
2026-08-18 21:45:02.436153: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 384.92p, metric_keep 1.91kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.69kWh, PV 0.0kWh
2026-08-18 21:45:02.436216: Saving plan best values to HA entities
2026-08-18 21:45:02.562799: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:45:02.567224: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:45:02.571487: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.85kWh, export 0.0kWh, metric 384.92p, metric10 393.9p
2026-08-18 21:45:02.633539: Marginal costs baseline metric (no standing charge): 338.2884
2026-08-18 21:45:02.843745: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:45:02.897983: Rate array import [{'start': 1305, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1305, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:45:02.898479: - Your estimated bill for today is £2.09 and tomorrow is £1.97
2026-08-18 21:45:02.898516: - 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-18 21:45:02.898534: - The battery is currently at 13% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 21:45:02.898549: - For the next 48 hours there will be no solar generation.
2026-08-18 21:45:02.898563: - You will run out of battery in 55 minutes.
2026-08-18 21:45:02.898581: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 21:45:02.898595: 
2026-08-18 21:45:02.949591: Plan calculation took 0.89 seconds
2026-08-18 21:45:02.952722: No high rate period found
2026-08-18 21:45:02.993131: Import threshold used for optimisation was 8.0p
2026-08-18 21:45:03.036862: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:45:03.041574: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 13%, target 100%
2026-08-18 21:45:03.041678: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:45:03.041769: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:45:03.041975: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:45:03.042058: No export window planned
2026-08-18 21:45:03.042182: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:45:03.042213: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:45:03.042326: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:45:03.042472: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:45:03.042522: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:45:03.042581: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:45:03.042665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042722: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042744: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042788: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.042978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.043003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.043023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:45:03.043042: Inverter 0 count register writes 0
2026-08-18 21:45:03.058054: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 21:45:03.063356: Total inverter register writes now 867
2026-08-18 21:45:03.091085: Info: Completed run status Demand
2026-08-18 21:45:03.097200: Info: record_status Demand
2026-08-18 21:45:03.102870: Saved current settings to /config/predbat_config.json
2026-08-18 21:45:03.103207: Compare, best tariff: current metric 129.87p
2026-08-18 21:45:34.203563: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:45:34.203826: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:45:34.203878: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:45:34.204177: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:45:34.204232: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:45:34.204254: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:45:34.204272: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:46:59.727564: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 21:47:00.798588: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:47:00.798753: Zero load period starting at 2026-08-17T10:54:00+0100 (2091 minutes) for 189 minutes with base value 393.1
2026-08-18 21:47:00.800219: Processing 1345 30-minute periods for power integration
2026-08-18 21:47:00.901973: ML Component: Car charging hold False, car energy reported load False
2026-08-18 21:47:01.001980: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:47:01.100946: ML Temperature data points: 49096
2026-08-18 21:47:01.376804: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 21:47:01.415389: ML Component: Data fetch completed, load data age 60.0 days, 17372 data points
2026-08-18 21:47:01.415501: ML Component: No training needed, model age is 1.79 hours
2026-08-18 21:47:01.415558: ML Component: Generating predictions load data age 60.0 days, 17372 data points
2026-08-18 21:47:01.557686: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0978 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 21:47:02.040682: ML Component: Generated 576 predictions (total 31.12 kWh over 48h)
2026-08-18 21:47:02.077534: ML Component: Prediction cycle completed
2026-08-18 21:47:02.199262: ML Component: Saved 17372 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 21:47:34.430747: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:47:34.430967: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:47:34.431054: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:47:34.431306: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:47:34.431356: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:47:34.431377: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:47:34.431396: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:49:34.638523: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:49:34.638745: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:49:34.638808: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:49:34.638984: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:49:34.639043: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:49:34.639067: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:49:34.639094: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:50:00.749887: --------------- PredBat - update at 2026-08-18 21:50:00+01:00 with clock skew 0 minutes, minutes now 1310
2026-08-18 21:50:00.750755: Saved current settings to /config/predbat_config.json
2026-08-18 21:50:00.750880: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 21:50:00.750965: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 21:50:00.751046: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 21:50:00.768411: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:50:00.768533: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:50:00.768691: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:50:00.769174: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:50:00.769290: Predbat mode is set to Control charge & discharge
2026-08-18 21:50:00.941884: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:50:00.941998: Using load_power data to fill gaps in load_today data
2026-08-18 21:50:01.761115: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:50:01.761320: Zero load period starting at 2026-08-17T10:54:00+0100 (2096 minutes) for 189 minutes with base value 204.55
2026-08-18 21:50:01.762751: Processing 721 30-minute periods for power integration
2026-08-18 21:50:01.955838: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:50:01.956008: Car charging hold False, threshold 6.0kWh
2026-08-18 21:50:01.956073: Current data so far today: load 14.5kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:50:01.973021: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:50:01.973120: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:50:01.973793: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:50:01.973896: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:50:01.973948: Standing charge is set to 46.63p
2026-08-18 21:50:02.057657: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:50:02.057865: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:50:02.058017: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:50:02.058941: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:50:02.059053: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:50:02.059157: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:50:02.063918: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:50:02.064182: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:50:02.104165: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:50:02.104290: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:50:02.105725: High export rate found rates in range 99p to -99p
2026-08-18 21:50:02.128808: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:50:02.128888: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:50:02.140035: Battery level now 2.1kWh, -1hr ago 3.2kWh, at midnight 6.84kWh, battery value change in the last hour -7.53p, change today -32.55p, rate_forward 6.87p
2026-08-18 21:50:02.140389: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:50:02.197304: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 21:50:02.197474: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:50:02.300224: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:50:02.330674: Today's load divergence 105.46%, in-day adjustment 104.05%, damping 0.95x, yesterday 92.68% today 105.18% blend 9.03%
2026-08-18 21:50:02.330752: Today's predicted so far 13.5kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 13.5kWh forecast extra.
2026-08-18 21:50:02.330779: Today's actual load so far 14.41kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 21:50:02.359310: Inverter 0: Type SK Sunsynk
2026-08-18 21:50:02.359404: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:50:02.359577: Reserve min: 7%, battery_min: 7%
2026-08-18 21:50:02.359648: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:50:02.359986: Inverter 0 SoC: 2.1kW 13%, current charge rate 5000W, current discharge rate 5250W, current battery power 1036W, current battery voltage 51.2V, grid power -54W, load power 1092W, PV Power 0W
2026-08-18 21:50:02.360160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:50:02.360279: Inverter 0 scheduled charge enable is False
2026-08-18 21:50:02.360318: Inverter 0 charge windows currently []
2026-08-18 21:50:02.360374: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:50:02.360508: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:50:02.360545: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:50:02.360582: Inverter 0 scheduled discharge enable is False
2026-08-18 21:50:02.360700: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:50:02.360736: Inverter 0 discharge windows currently []
2026-08-18 21:50:02.360759: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:50:02.360777: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:50:02.360794: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:50:02.417842: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:50:02.417932: Plan was last updated on 2026-08-18 21:40:00+01:00 and is now 10.0 minutes old
2026-08-18 21:50:02.418135: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:50:02.418207: Best export window [  ]
2026-08-18 21:50:02.419076: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:50:02.422237: Load divergence over 8.0 hours mean 625.05W, min 386.4W, max 1405.2W, std dev 256.53W, divergence 20.52%
2026-08-18 21:50:02.440811: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:50:02.440890: LoadML is_calculating False
2026-08-18 21:50:02.440943: Creating pool of 12 processes to match your CPU count
2026-08-18 21:50:02.548402: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 665.4p, metric_keep 125.45kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.84kWh, PV 0.0kWh
2026-08-18 21:50:02.657242: Battery has 0.92 hours left - now at 2.1kWh
2026-08-18 21:50:02.694933: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 688.93p, metric_keep 125.49kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.71kWh, PV 0.0kWh
2026-08-18 21:50:02.767529: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 395.64p, metric_keep 3.76kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.71kWh, PV 0.0kWh
2026-08-18 21:50:02.846044: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 387.48p, metric_keep 1.72kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.84kWh, PV 0.0kWh
2026-08-18 21:50:02.846125: Saving plan best values to HA entities
2026-08-18 21:50:02.993488: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:50:02.998270: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:50:03.003003: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.79kWh, house 0.81kWh, export 0.0kWh, metric 387.48p, metric10 395.64p
2026-08-18 21:50:03.076788: Marginal costs baseline metric (no standing charge): 340.8432
2026-08-18 21:50:03.341263: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:50:03.403566: Rate array import [{'start': 1310, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1310, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:50:03.404190: - Your estimated bill for today is £2.07 and tomorrow is £1.97
2026-08-18 21:50:03.404236: - 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-18 21:50:03.404259: - The battery is currently at 13% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 21:50:03.404285: - For the next 48 hours there will be no solar generation.
2026-08-18 21:50:03.404307: - You will run out of battery in 55 minutes.
2026-08-18 21:50:03.404325: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 21:50:03.404342: 
2026-08-18 21:50:03.453518: Plan calculation took 1.04 seconds
2026-08-18 21:50:03.456662: No high rate period found
2026-08-18 21:50:03.500626: Import threshold used for optimisation was 8.0p
2026-08-18 21:50:03.549707: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:50:03.555000: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 13%, target 100%
2026-08-18 21:50:03.555118: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:50:03.555265: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:50:03.555541: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:50:03.555641: No export window planned
2026-08-18 21:50:03.555771: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:50:03.555828: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:50:03.556012: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:50:03.556194: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:50:03.556274: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:50:03.556339: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:50:03.556458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556534: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556652: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:03.556950: Inverter 0 count register writes 0
2026-08-18 21:50:03.575111: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 21:50:03.575373: Recompute is saving previous plan...
2026-08-18 21:50:03.576475: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 21:50:03.576558: Best export window [  ]
2026-08-18 21:50:03.577420: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:50:03.580705: Load divergence over 8.0 hours mean 625.05W, min 386.4W, max 1405.2W, std dev 256.53W, divergence 20.52%
2026-08-18 21:50:03.599792: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:50:03.599935: LoadML is_calculating False
2026-08-18 21:50:03.600082: Creating pool of 12 processes to match your CPU count
2026-08-18 21:50:03.689062: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 21:50:03.689877: Optimise levels pass started at 2026-08-18 21:50:03
2026-08-18 21:50:03.689937: Optimise all windows, total charge 24 export 1
2026-08-18 21:50:03.984124: >> Region optimisation pass width 960 gives best_metric 459.24p, best_cost 478.06p, best_cycle 50.35kWh, best_import 37.75kWh
2026-08-18 21:50:04.101925: >> Region optimisation pass width 480 gives best_metric 459.24p, best_cost 478.06p, best_cycle 50.35kWh, best_import 37.75kWh
2026-08-18 21:50:04.345200: >> Region optimisation pass width 240 gives best_metric 459.24p, best_cost 478.06p, best_cycle 50.35kWh, best_import 37.75kWh
2026-08-18 21:50:05.067648: >> Region optimisation pass width 120 gives best_metric 458.12p, best_cost 469.09p, best_cycle 51.51kWh, best_import 36.63kWh
2026-08-18 21:50:05.068108: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 21:50:05.068178: Optimise levels pass ended at 2026-08-18 21:50:05, duration 1.4 seconds tried 71 combinations
2026-08-18 21:50:05.068262: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 458.12p, best_keep 1.72kWh, best_cycle 51.51kWh, best_carbon 0kg, best_import 36.63kWh
2026-08-18 21:50:05.083090: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 21:50:07.203852: Tweak plan optimisation started metric 326.09p, cost 336.4p
2026-08-18 21:50:07.489243: Tweak optimisation finished metric 326.07p, cost 336.38p, metric_keep 1.72kWh, cycle 28.93kWh, carbon 0kg, import 20.04kWh, changed 8 window(s)
2026-08-18 21:50:07.507803: Swap charge optimisation started metric 326.07p, cost 336.38p, min_improvement_swap 0.1p
2026-08-18 21:50:08.163142: Swap charge optimisation finished metric 326.07p, cost 336.38p
2026-08-18 21:50:08.251666: Pruned 1 dead plan slot(s) in 9 trial(s), nominal metric 324.79p -> 324.45p, plan now metric 328.51p, cost 332.13p, cycle 29.12kWh, import 19.51kWh
2026-08-18 21:50:08.259210: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:50:08.259512: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 97%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:50:08.259688: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:50:08.259825: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 21:50:08.287500: Previous plan best metric is 324.9 (cost 334.61) and new plan best metric is 326.07 (cost 336.38)
2026-08-18 21:50:08.287618: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 21:50:08.287788: Plan valid is now true after recompute was False
2026-08-18 21:50:08.319219: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 663.83p, metric_keep 125.2kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.64kWh, PV 0.0kWh
2026-08-18 21:50:08.408145: Battery has 0.92 hours left - now at 2.1kWh
2026-08-18 21:50:08.443270: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 687.29p, metric_keep 125.24kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.51kWh, PV 0.0kWh
2026-08-18 21:50:08.503151: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 388.45p, metric_keep 3.74kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.51kWh, PV 0.0kWh
2026-08-18 21:50:08.565627: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 379.24p, metric_keep 1.72kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.64kWh, PV 0.0kWh
2026-08-18 21:50:08.565692: Saving plan best values to HA entities
2026-08-18 21:50:08.686846: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:50:08.691455: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 21:50:08.695854: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.76kWh, house 0.81kWh, export 0.0kWh, metric 379.24p, metric10 388.45p
2026-08-18 21:50:08.770073: Marginal costs baseline metric (no standing charge): 332.6101
2026-08-18 21:50:09.039351: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:50:09.104450: Rate array import [{'start': 1310, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1310, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:50:09.105047: - Your estimated bill for today is £2.07 and tomorrow is £1.97
2026-08-18 21:50:09.105088: - 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-18 21:50:09.105128: - The battery is currently at 13% and is in eco mode for the next 1 and three quarters hours.
2026-08-18 21:50:09.105148: - For the next 48 hours there will be no solar generation.
2026-08-18 21:50:09.105166: - You will run out of battery in 55 minutes.
2026-08-18 21:50:09.105183: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-18 21:50:09.105206: 
2026-08-18 21:50:09.151225: Plan calculation took 5.58 seconds
2026-08-18 21:50:09.151610: Inverter 0: Type SK Sunsynk
2026-08-18 21:50:09.151675: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:50:09.151892: Reserve min: 7%, battery_min: 7%
2026-08-18 21:50:09.152048: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:50:09.152532: Inverter 0 SoC: 2.02kW 13%, current charge rate 5000W, current discharge rate 5250W, current battery power 1042W, current battery voltage 51.2V, grid power -54W, load power 1094W, PV Power 0W
2026-08-18 21:50:09.152810: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:50:09.152914: Inverter 0 scheduled charge enable is False
2026-08-18 21:50:09.152951: Inverter 0 charge windows currently []
2026-08-18 21:50:09.152982: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:50:09.153090: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:50:09.153128: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:50:09.153164: Inverter 0 scheduled discharge enable is False
2026-08-18 21:50:09.153289: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:50:09.153326: Inverter 0 discharge windows currently []
2026-08-18 21:50:09.153348: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:50:09.153389: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:50:09.153409: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:50:09.202798: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 13%, target 100%
2026-08-18 21:50:09.202930: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:50:09.202994: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:50:09.203225: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:50:09.203323: No export window planned
2026-08-18 21:50:09.203475: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:50:09.203546: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:50:09.203708: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:50:09.203864: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:50:09.203963: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:50:09.204034: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:50:09.204151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204222: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204333: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204358: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:50:09.204633: Inverter 0 count register writes 0
2026-08-18 21:50:09.223705: Total inverter register writes now 867
2026-08-18 21:50:09.253779: Info: Completed run status Demand
2026-08-18 21:50:09.260284: Info: record_status Demand
2026-08-18 21:50:09.266501: Saved current settings to /config/predbat_config.json
2026-08-18 21:50:09.266789: Compare, best tariff: current metric 129.87p
2026-08-18 21:50:49.369295: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:50:49.369556: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:50:49.369591: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:50:49.369766: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:50:49.369804: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:50:49.369826: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:50:49.369844: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:52:49.573449: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:52:49.573693: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:52:49.573727: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:52:49.573897: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:52:49.573929: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:52:49.573946: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:52:49.573966: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:55:00.793687: --------------- PredBat - update at 2026-08-18 21:55:00+01:00 with clock skew 0 minutes, minutes now 1315
2026-08-18 21:55:00.794407: Saved current settings to /config/predbat_config.json
2026-08-18 21:55:00.794615: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 21:55:00.794707: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 21:55:00.794801: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 21:55:00.812179: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 21:55:00.812283: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 21:55:00.812437: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 21:55:00.812961: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 21:55:00.813076: Predbat mode is set to Control charge & discharge
2026-08-18 21:55:00.993391: Found 21602 load_today datapoints going back 28 days
2026-08-18 21:55:00.993541: Using load_power data to fill gaps in load_today data
2026-08-18 21:55:01.760740: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 21:55:01.760920: Zero load period starting at 2026-08-17T10:54:00+0100 (2101 minutes) for 189 minutes with base value 204.5
2026-08-18 21:55:01.762115: Processing 721 30-minute periods for power integration
2026-08-18 21:55:01.924682: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 21:55:01.924792: Car charging hold False, threshold 6.0kWh
2026-08-18 21:55:01.924851: Current data so far today: load 14.6kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 21:55:01.943115: Car 0 using Octopus Intelligent is unplugged
2026-08-18 21:55:01.943220: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 21:55:01.943940: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:55:01.944046: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 21:55:01.944119: Standing charge is set to 46.63p
2026-08-18 21:55:02.035579: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:55:02.036054: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:55:02.036290: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 21:55:02.037220: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 21:55:02.037353: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 21:55:02.037526: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 21:55:02.041968: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 21:55:02.042388: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 21:55:02.076773: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 21:55:02.077023: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 21:55:02.078207: High export rate found rates in range 99p to -99p
2026-08-18 21:55:02.100717: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 21:55:02.100799: Car 0 on Octopus Intelligent, no active plan
2026-08-18 21:55:02.110522: Battery level now 2.1kWh, -1hr ago 3.06kWh, at midnight 6.84kWh, battery value change in the last hour -6.54p, change today -32.55p, rate_forward 6.87p
2026-08-18 21:55:02.110917: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 21:55:02.161942: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.66p, export 0.0p, carbon 0.0kg
2026-08-18 21:55:02.162088: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 21:55:02.246276: Using weighted-bucket historical load forecast over 14 days
2026-08-18 21:55:02.279212: Today's load divergence 105.91%, in-day adjustment 104.49%, damping 0.95x, yesterday 92.68% today 105.62% blend 8.68%
2026-08-18 21:55:02.279301: Today's predicted so far 13.54kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 13.54kWh forecast extra.
2026-08-18 21:55:02.279334: Today's actual load so far 14.53kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 21:55:02.307851: Inverter 0: Type SK Sunsynk
2026-08-18 21:55:02.307962: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 21:55:02.308138: Reserve min: 7%, battery_min: 7%
2026-08-18 21:55:02.308207: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 21:55:02.308469: Inverter 0 SoC: 2.02kW 13%, current charge rate 5000W, current discharge rate 5250W, current battery power 1010W, current battery voltage 51.2V, grid power -55W, load power 1067W, PV Power 0W
2026-08-18 21:55:02.308674: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:55:02.308768: Inverter 0 scheduled charge enable is False
2026-08-18 21:55:02.308803: Inverter 0 charge windows currently []
2026-08-18 21:55:02.308830: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 21:55:02.308939: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:55:02.308996: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:55:02.309064: Inverter 0 scheduled discharge enable is False
2026-08-18 21:55:02.309281: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:55:02.309326: Inverter 0 discharge windows currently []
2026-08-18 21:55:02.309351: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:55:02.309391: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:55:02.309431: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:55:02.364235: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 21:55:02.364324: Plan was last updated on 2026-08-18 21:50:00+01:00 and is now 5.0 minutes old
2026-08-18 21:55:02.364542: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 21:55:02.364584: Best export window [  ]
2026-08-18 21:55:02.365470: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 21:55:02.368567: Load divergence over 8.0 hours mean 624.93W, min 344.4W, max 1693.2W, std dev 283.2W, divergence 22.66%
2026-08-18 21:55:02.383804: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 21:55:02.383885: LoadML is_calculating False
2026-08-18 21:55:02.383993: Creating pool of 12 processes to match your CPU count
2026-08-18 21:55:02.480878: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 666.29p, metric_keep 125.15kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.8kWh, PV 0.0kWh
2026-08-18 21:55:02.593806: Battery has 0.83 hours left - now at 2.02kWh
2026-08-18 21:55:02.634561: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 689.81p, metric_keep 125.18kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.67kWh, PV 0.0kWh
2026-08-18 21:55:02.708799: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 393.81p, metric_keep 3.7kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.67kWh, PV 0.0kWh
2026-08-18 21:55:02.777678: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 384.5p, metric_keep 1.62kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.8kWh, PV 0.0kWh
2026-08-18 21:55:02.777753: Saving plan best values to HA entities
2026-08-18 21:55:02.930234: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 21:55:02.934742: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 21:55:02.939167: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.26kWh, house 0.84kWh, export 0.0kWh, metric 384.5p, metric10 393.81p
2026-08-18 21:55:03.001765: Marginal costs baseline metric (no standing charge): 337.8705
2026-08-18 21:55:03.219483: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 21:55:03.336863: Rate array import [{'start': 1315, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1315, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 21:55:03.337490: - Your estimated bill for today is £2.09 and tomorrow is £1.96
2026-08-18 21:55:03.337533: - 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-18 21:55:03.337555: - The battery is currently at 13% and is in eco mode for the next 1 and a half hours.
2026-08-18 21:55:03.337574: - For the next 48 hours there will be no solar generation.
2026-08-18 21:55:03.337592: - You will run out of battery in 50 minutes.
2026-08-18 21:55:03.337609: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-18 21:55:03.337626: 
2026-08-18 21:55:03.382544: Plan calculation took 1.02 seconds
2026-08-18 21:55:03.386139: No high rate period found
2026-08-18 21:55:03.435542: Import threshold used for optimisation was 8.0p
2026-08-18 21:55:03.484307: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 21:55:03.489701: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 13%, target 100%
2026-08-18 21:55:03.489821: Inverter 0 disabled charge window while waiting for schedule (now 08-18 21:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 21:55:03.489929: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:55:03.490175: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:55:03.490272: No export window planned
2026-08-18 21:55:03.490414: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 21:55:03.490466: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 21:55:03.490606: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 21:55:03.490780: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 21:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 21:55:03.490835: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 21:55:03.490900: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 21:55:03.491007: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491079: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491111: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491137: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491167: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491193: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 21:55:03.491560: Inverter 0 count register writes 0
2026-08-18 21:55:03.508885: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 21:55:03.513922: Total inverter register writes now 867
2026-08-18 21:55:03.542748: Info: Completed run status Demand
2026-08-18 21:55:03.548531: Info: record_status Demand
2026-08-18 21:55:03.555153: Saved current settings to /config/predbat_config.json
2026-08-18 21:55:03.555513: Compare, best tariff: current metric 129.87p
2026-08-18 21:55:33.644426: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:55:33.644728: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:55:33.644785: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:55:33.645009: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:55:33.645059: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:55:33.645107: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:55:33.645144: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:56:55.344243: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 21:56:55.495820: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 21:57:33.860181: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:57:33.860404: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:57:33.860457: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:57:33.860620: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:57:33.860658: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:57:33.860679: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:57:33.860697: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 21:59:34.065982: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 21:59:34.066273: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 21:59:34.066321: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 21:59:34.066535: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 21:59:34.066578: Note: Inverter does not support discharge freeze - disabled
2026-08-18 21:59:34.066611: Note: Inverter does not support charge freeze - disabled
2026-08-18 21:59:34.066638: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:00:00.162333: --------------- PredBat - update at 2026-08-18 22:00:00+01:00 with clock skew 0 minutes, minutes now 1320
2026-08-18 22:00:00.163161: Saved current settings to /config/predbat_config.json
2026-08-18 22:00:00.163309: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 22:00:00.163448: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:00:00.163577: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:00:00.183238: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:00:00.183398: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:00:00.183584: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:00:00.184252: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:00:00.184419: Predbat mode is set to Control charge & discharge
2026-08-18 22:00:00.355874: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:00:00.356288: Using load_power data to fill gaps in load_today data
2026-08-18 22:00:01.180208: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:00:01.180372: Zero load period starting at 2026-08-17T10:54:00+0100 (2106 minutes) for 189 minutes with base value 204.475
2026-08-18 22:00:01.181861: Processing 721 30-minute periods for power integration
2026-08-18 22:00:01.393184: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:00:01.393322: Car charging hold False, threshold 6.0kWh
2026-08-18 22:00:01.393389: Current data so far today: load 14.7kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:00:01.411332: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:00:01.411450: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:00:01.412378: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:00:01.412506: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:00:01.412592: Standing charge is set to 46.63p
2026-08-18 22:00:01.505645: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:00:01.505848: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:00:01.505999: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:00:01.506859: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:00:01.506948: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:00:01.507039: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:00:01.511500: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:00:01.511844: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:00:01.551506: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:00:01.551621: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:00:01.552978: High export rate found rates in range 99p to -99p
2026-08-18 22:00:01.581241: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:00:01.581342: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:00:01.593631: Battery level now 2.02kWh, -1hr ago 2.96kWh, at midnight 6.84kWh, battery value change in the last hour -6.49p, change today -33.15p, rate_forward 6.87p
2026-08-18 22:00:01.593997: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.15kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:00:01.652570: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 22:00:01.652707: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:00:01.751749: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:00:01.790135: Today's load divergence 105.83%, in-day adjustment 104.46%, damping 0.95x, yesterday 92.68% today 105.53% blend 8.33%
2026-08-18 22:00:01.790222: Today's predicted so far 13.68kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 13.68kWh forecast extra.
2026-08-18 22:00:01.790254: Today's actual load so far 14.65kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 22:00:01.818275: Inverter 0: Type SK Sunsynk
2026-08-18 22:00:01.818355: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:00:01.818549: Reserve min: 7%, battery_min: 7%
2026-08-18 22:00:01.818628: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:00:01.818889: Inverter 0 SoC: 1.81kW 11%, current charge rate 5000W, current discharge rate 5250W, current battery power 1148W, current battery voltage 51.2V, grid power -54W, load power 1206W, PV Power 0W
2026-08-18 22:00:01.819034: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:00:01.819116: Inverter 0 scheduled charge enable is False
2026-08-18 22:00:01.819148: Inverter 0 charge windows currently []
2026-08-18 22:00:01.819174: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:00:01.819277: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:00:01.819332: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:00:01.819371: Inverter 0 scheduled discharge enable is False
2026-08-18 22:00:01.819527: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:00:01.819566: Inverter 0 discharge windows currently []
2026-08-18 22:00:01.819589: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:00:01.819611: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:00:01.819629: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:00:01.879417: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:00:01.879552: Plan was last updated on 2026-08-18 21:50:00+01:00 and is now 10.0 minutes old
2026-08-18 22:00:01.879793: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:00:01.879840: Best export window [  ]
2026-08-18 22:00:01.880782: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:00:01.884049: Load divergence over 8.0 hours mean 623.46W, min 323.4W, max 1621.2W, std dev 276.68W, divergence 22.19%
2026-08-18 22:00:01.902865: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:00:01.902970: LoadML is_calculating False
2026-08-18 22:00:01.903039: Creating pool of 12 processes to match your CPU count
2026-08-18 22:00:02.028726: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 670.52p, metric_keep 125.15kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.9kWh, PV 0.0kWh
2026-08-18 22:00:02.152855: Battery has 0.58 hours left - now at 1.81kWh
2026-08-18 22:00:02.197974: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 693.86p, metric_keep 125.17kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.77kWh, PV 0.0kWh
2026-08-18 22:00:02.274680: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 400.71p, metric_keep 3.59kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.77kWh, PV 0.0kWh
2026-08-18 22:00:02.352412: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 392.39p, metric_keep 1.58kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.9kWh, PV 0.0kWh
2026-08-18 22:00:02.352514: Saving plan best values to HA entities
2026-08-18 22:00:02.505794: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:00:02.510373: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:00:02.515281: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.77kWh, house 0.96kWh, export 0.0kWh, metric 392.39p, metric10 400.71p
2026-08-18 22:00:02.599499: Marginal costs baseline metric (no standing charge): 345.7549
2026-08-18 22:00:02.872068: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 22:00:02.929496: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 22:00:03.567127: Rate array import [{'start': 1320, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1320, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:00:03.572957: - Your estimated bill for today is £2.12 and tomorrow is £1.96
2026-08-18 22:00:03.578161: - 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-18 22:00:03.583357: - The battery is currently at 11% and is in eco mode for the next 1 and a half hours.
2026-08-18 22:00:03.588646: - For the next 48 hours there will be no solar generation.
2026-08-18 22:00:03.593863: - You will run out of battery in 35 minutes.
2026-08-18 22:00:03.599061: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-18 22:00:03.614597: 
2026-08-18 22:00:03.925277: Plan calculation took 2.05 seconds
2026-08-18 22:00:03.934046: No high rate period found
2026-08-18 22:00:04.090148: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:00:04.090300: Zero load period starting at 2026-08-17T10:54:00+0100 (2106 minutes) for 189 minutes with base value 393.025
2026-08-18 22:00:04.091488: Processing 1345 30-minute periods for power integration
2026-08-18 22:00:04.194247: ML Component: Car charging hold False, car energy reported load False
2026-08-18 22:00:04.296924: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:00:04.392985: ML Temperature data points: 49081
2026-08-18 22:00:04.639558: Import threshold used for optimisation was 8.0p
2026-08-18 22:00:04.651023: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 22:00:04.688689: ML Component: Data fetch completed, load data age 60.0 days, 17375 data points
2026-08-18 22:00:04.689986: ML Component: Starting fine-tune training (2h interval), model age is 2.0371559366666667 hours
2026-08-18 22:00:04.691295: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-18 22:00:04.729978: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:00:04.737361: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 11%, target 100%
2026-08-18 22:00:04.737519: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:00:04.737615: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:00:04.737848: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:00:04.737932: No export window planned
2026-08-18 22:00:04.738048: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:00:04.738082: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:00:04.738212: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:00:04.738384: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:00:04.738454: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:00:04.738514: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:00:04.738627: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.738711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.738800: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.738870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.738921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.738975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739023: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:04.739509: Inverter 0 count register writes 0
2026-08-18 22:00:04.753832: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 22:00:04.754014: Recompute is saving previous plan...
2026-08-18 22:00:04.754939: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 22:00:04.754989: Best export window [  ]
2026-08-18 22:00:04.755865: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:00:04.759061: Load divergence over 8.0 hours mean 623.46W, min 323.4W, max 1621.2W, std dev 276.68W, divergence 22.19%
2026-08-18 22:00:04.775618: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:00:04.775705: LoadML is_calculating False
2026-08-18 22:00:04.775781: Creating pool of 12 processes to match your CPU count
2026-08-18 22:00:04.861478: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 22:00:04.862484: Optimise levels pass started at 2026-08-18 22:00:04
2026-08-18 22:00:04.862556: Optimise all windows, total charge 24 export 1
2026-08-18 22:00:05.382240: >> Region optimisation pass width 960 gives best_metric 465.1p, best_cost 485.26p, best_cycle 50.46kWh, best_import 38.16kWh
2026-08-18 22:00:05.528625: >> Region optimisation pass width 480 gives best_metric 465.1p, best_cost 485.26p, best_cycle 50.46kWh, best_import 38.16kWh
2026-08-18 22:00:06.019046: >> Region optimisation pass width 240 gives best_metric 465.43p, best_cost 485.26p, best_cycle 50.46kWh, best_import 38.16kWh
2026-08-18 22:00:06.833307: >> Region optimisation pass width 120 gives best_metric 464.4p, best_cost 476.28p, best_cycle 51.63kWh, best_import 37.04kWh
2026-08-18 22:00:06.833585: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 22:00:06.833659: Optimise levels pass ended at 2026-08-18 22:00:06, duration 2.0 seconds tried 70 combinations
2026-08-18 22:00:06.833722: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 464.4p, best_keep 1.58kWh, best_cycle 51.63kWh, best_carbon 0kg, best_import 37.04kWh
2026-08-18 22:00:06.852738: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 22:00:11.117879: Tweak plan optimisation started metric 329.83p, cost 339.67p
2026-08-18 22:00:11.396820: Tweak optimisation finished metric 329.83p, cost 339.67p, metric_keep 1.58kWh, cycle 26.74kWh, carbon 0kg, import 19.96kWh, changed 8 window(s)
2026-08-18 22:00:11.412900: Swap charge optimisation started metric 329.83p, cost 339.67p, min_improvement_swap 0.1p
2026-08-18 22:00:12.215583: Swap charge optimisation finished metric 329.83p, cost 339.67p
2026-08-18 22:00:12.341517: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 38%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 38%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:00:12.342020: Unclipped charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:00:12.342414: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:00:12.342759: Filtered charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:00:12.379381: Previous plan best metric is 329.83 (cost 339.67) and new plan best metric is 329.83 (cost 339.67)
2026-08-18 22:00:12.379588: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 22:00:12.379732: Plan valid is now true after recompute was False
2026-08-18 22:00:12.409147: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 669.06p, metric_keep 124.9kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.72kWh, PV 0.0kWh
2026-08-18 22:00:12.511084: Battery has 0.58 hours left - now at 1.81kWh
2026-08-18 22:00:12.550408: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 692.33p, metric_keep 124.91kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.58kWh, PV 0.0kWh
2026-08-18 22:00:12.629858: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 393.63p, metric_keep 3.57kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.58kWh, PV 0.0kWh
2026-08-18 22:00:12.696079: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 384.26p, metric_keep 1.58kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.72kWh, PV 0.0kWh
2026-08-18 22:00:12.696150: Saving plan best values to HA entities
2026-08-18 22:00:12.834547: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:00:12.839210: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:00:12.843800: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.75kWh, house 0.96kWh, export 0.0kWh, metric 384.26p, metric10 393.63p
2026-08-18 22:00:12.908574: Marginal costs baseline metric (no standing charge): 337.6307
2026-08-18 22:00:13.124091: Marginal energy costs matrix computed: min=8.0 max=33.75
2026-08-18 22:00:13.177859: Rate array import [{'start': 1320, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1320, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:00:13.178346: - Your estimated bill for today is £2.12 and tomorrow is £1.96
2026-08-18 22:00:13.178380: - 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-18 22:00:13.178398: - The battery is currently at 11% and is in eco mode for the next 1 and a half hours.
2026-08-18 22:00:13.178413: - For the next 48 hours there will be no solar generation.
2026-08-18 22:00:13.178438: - You will run out of battery in 35 minutes.
2026-08-18 22:00:13.178453: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-18 22:00:13.178469: 
2026-08-18 22:00:13.226943: Plan calculation took 8.47 seconds
2026-08-18 22:00:13.227324: Inverter 0: Type SK Sunsynk
2026-08-18 22:00:13.227381: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:00:13.227643: Reserve min: 7%, battery_min: 7%
2026-08-18 22:00:13.227723: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:00:13.228141: Inverter 0 SoC: 1.81kW 11%, current charge rate 5000W, current discharge rate 5250W, current battery power 1148W, current battery voltage 51.2V, grid power -54W, load power 1206W, PV Power 0W
2026-08-18 22:00:13.228478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:00:13.228625: Inverter 0 scheduled charge enable is False
2026-08-18 22:00:13.228669: Inverter 0 charge windows currently []
2026-08-18 22:00:13.228701: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:00:13.228816: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:00:13.228856: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:00:13.228892: Inverter 0 scheduled discharge enable is False
2026-08-18 22:00:13.229021: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:00:13.229058: Inverter 0 discharge windows currently []
2026-08-18 22:00:13.229080: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:00:13.229099: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:00:13.229116: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:00:13.279100: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 11%, target 100%
2026-08-18 22:00:13.279222: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:00:13.279275: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:00:13.279421: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:00:13.279504: No export window planned
2026-08-18 22:00:13.279596: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:00:13.279625: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:00:13.279734: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:00:13.279863: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:00:13.279939: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:00:13.280038: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:00:13.280115: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280173: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280219: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280241: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280260: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:00:13.280503: Inverter 0 count register writes 0
2026-08-18 22:00:13.298543: Total inverter register writes now 867
2026-08-18 22:00:13.328124: Info: Completed run status Demand
2026-08-18 22:00:13.333934: Info: record_status Demand
2026-08-18 22:00:13.339633: Saved current settings to /config/predbat_config.json
2026-08-18 22:00:13.339940: Compare, best tariff: current metric 129.87p
2026-08-18 22:00:13.717613: ML Component: Doing training...
2026-08-18 22:00:13.739642: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=57.0 days)
2026-08-18 22:00:13.739750: ML Predictor: Curriculum training - 5 passes, window 57.0→60.0 days + final full pass (60.3 days)
2026-08-18 22:00:13.796763: ML Predictor: Curriculum pass 1/5: window=57.0 days (1368 hours of data)
2026-08-18 22:00:13.796867: ML Predictor: Starting initial training with 30 epochs
2026-08-18 22:00:14.419164: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 22:00:19.338807: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 22:00:19.451538: ML Predictor: Normalization stats [fit] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7466 std=4.5738) import_rate(mean=16.5928 std=8.3605) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1971 std=0.5283)
2026-08-18 22:00:33.201970: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0091 val_mae=0.0043 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-18 22:00:46.025921: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0395 val_mae=0.0073 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0038 kWh ema_combined=0.0027 kWh
2026-08-18 22:00:49.551739: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:00:49.552079: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:00:49.552143: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:00:49.552344: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:00:49.552397: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:00:49.552451: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:00:49.552575: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:00:58.860130: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0321 val_mae=0.0063 kWh val_bias=+0.0045 kWh (+5.8%) combined=0.0063 kWh ema_combined=0.0038 kWh
2026-08-18 22:01:12.212065: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0205 val_mae=0.0047 kWh val_bias=-0.0029 kWh (-3.7%) combined=0.0044 kWh ema_combined=0.0040 kWh
2026-08-18 22:01:25.815631: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0144 val_mae=0.0033 kWh val_bias=+0.0008 kWh (+1.1%) combined=0.0023 kWh ema_combined=0.0035 kWh
2026-08-18 22:01:34.992525: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0123 val_mae=0.0036 kWh val_bias=-0.0016 kWh (-2.1%) combined=0.0027 kWh ema_combined=0.0033 kWh
2026-08-18 22:01:44.038911: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0101 val_mae=0.0031 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0028 kWh
2026-08-18 22:01:53.848830: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0091 val_mae=0.0028 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-18 22:02:05.292114: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0100 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-18 22:02:18.425097: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0087 val_mae=0.0028 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 22:02:32.536136: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0107 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0020 kWh
2026-08-18 22:02:44.541533: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0097 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-18 22:02:52.639504: Info: HAHistory: Pruning history data started.
2026-08-18 22:02:52.642900: Info: HAHistory: Pruning history data completed.
2026-08-18 22:02:57.984867: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0027 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 22:03:03.906700: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:03:03.907020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:03:03.907066: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:03:03.907279: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:03:03.907324: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:03:03.907385: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:03:03.907500: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:03:10.170802: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0072 val_mae=0.0025 kWh val_bias=+0.0012 kWh (+1.5%) combined=0.0025 kWh ema_combined=0.0022 kWh
2026-08-18 22:03:24.500981: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0060 val_mae=0.0021 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-18 22:03:37.346766: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0065 val_mae=0.0023 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-18 22:03:50.278531: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-18 22:04:03.326966: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0055 val_mae=0.0018 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0009 kWh ema_combined=0.0015 kWh
2026-08-18 22:04:16.239245: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0016 kWh
2026-08-18 22:04:27.495623: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0058 val_mae=0.0018 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 22:04:41.056256: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0017 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0009 kWh ema_combined=0.0013 kWh
2026-08-18 22:04:54.219343: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0052 val_mae=0.0018 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-18 22:05:00.252603: --------------- PredBat - update at 2026-08-18 22:05:00+01:00 with clock skew 0 minutes, minutes now 1325
2026-08-18 22:05:00.253444: Saved current settings to /config/predbat_config.json
2026-08-18 22:05:00.253579: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 22:05:00.253694: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:05:00.253826: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:05:00.301782: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:05:00.301914: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:05:00.302075: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:05:00.302645: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:05:00.302777: Predbat mode is set to Control charge & discharge
2026-08-18 22:05:00.578890: Found 21602 load_today datapoints going back 27 days
2026-08-18 22:05:00.579136: Using load_power data to fill gaps in load_today data
2026-08-18 22:05:01.887572: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:05:01.887759: Zero load period starting at 2026-08-17T10:54:00+0100 (2111 minutes) for 189 minutes with base value 204.45
2026-08-18 22:05:01.889621: Processing 721 30-minute periods for power integration
2026-08-18 22:05:02.107687: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:05:02.107965: Car charging hold False, threshold 6.0kWh
2026-08-18 22:05:02.108025: Current data so far today: load 14.8kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:05:02.129413: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:05:02.129671: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:05:02.130572: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:05:02.130955: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:05:02.132624: Standing charge is set to 46.63p
2026-08-18 22:05:02.446227: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:05:02.460587: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:05:02.460896: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:05:02.462565: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:05:02.462710: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:05:02.462872: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:05:02.471144: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:05:02.471596: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:05:02.588954: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:05:02.589141: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:05:02.590618: High export rate found rates in range 99p to -99p
2026-08-18 22:05:02.620636: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:05:02.620839: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:05:02.636616: Battery level now 1.81kWh, -1hr ago 2.96kWh, at midnight 6.84kWh, battery value change in the last hour -7.92p, change today -34.58p, rate_forward 6.87p
2026-08-18 22:05:02.637185: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:05:02.718676: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 22:05:02.718855: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:05:02.847432: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:05:02.902285: Today's load divergence 105.73%, in-day adjustment 104.43%, damping 0.95x, yesterday 92.68% today 105.45% blend 7.99%
2026-08-18 22:05:02.902526: Today's predicted so far 13.8kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 13.8kWh forecast extra.
2026-08-18 22:05:02.902734: Today's actual load so far 14.76kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 22:05:02.961459: Inverter 0: Type SK Sunsynk
2026-08-18 22:05:02.979982: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:05:02.980446: Reserve min: 7%, battery_min: 7%
2026-08-18 22:05:02.980639: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:05:02.981058: Inverter 0 SoC: 1.81kW 11%, current charge rate 5000W, current discharge rate 5250W, current battery power 1153W, current battery voltage 51.2V, grid power -56W, load power 1208W, PV Power 0W
2026-08-18 22:05:02.981352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:05:02.981553: Inverter 0 scheduled charge enable is False
2026-08-18 22:05:02.981684: Inverter 0 charge windows currently []
2026-08-18 22:05:02.981789: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:05:02.982024: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:05:02.982138: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:05:02.982275: Inverter 0 scheduled discharge enable is False
2026-08-18 22:05:02.982536: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:05:02.982672: Inverter 0 discharge windows currently []
2026-08-18 22:05:02.982770: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:05:02.982873: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:05:02.983022: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:05:03.113656: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:05:03.113934: Plan was last updated on 2026-08-18 22:00:00+01:00 and is now 5.0 minutes old
2026-08-18 22:05:03.114342: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:05:03.114522: Best export window [  ]
2026-08-18 22:05:03.115957: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:05:03.120764: Load divergence over 8.0 hours mean 622.03W, min 343.8W, max 1617.6W, std dev 293.24W, divergence 23.57%
2026-08-18 22:05:03.169840: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:05:03.169973: LoadML is_calculating True
2026-08-18 22:05:03.170002: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:05:03.214025: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 666.65p, metric_keep 124.75kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.82kWh, PV 0.0kWh
2026-08-18 22:05:03.387343: Battery has 0.58 hours left - now at 1.81kWh
2026-08-18 22:05:03.486783: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 689.83p, metric_keep 124.76kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.68kWh, PV 0.0kWh
2026-08-18 22:05:03.614520: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 393.91p, metric_keep 3.42kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.68kWh, PV 0.0kWh
2026-08-18 22:05:03.792723: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 385.25p, metric_keep 1.38kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.82kWh, PV 0.0kWh
2026-08-18 22:05:03.792839: Saving plan best values to HA entities
2026-08-18 22:05:04.047456: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:05:04.065304: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 22:05:04.074803: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.86kWh, export 0.0kWh, metric 385.25p, metric10 393.91p
2026-08-18 22:05:04.213279: Marginal costs baseline metric (no standing charge): 338.6166
2026-08-18 22:05:04.491020: Marginal energy costs matrix computed: min=7.33 max=33.75
2026-08-18 22:05:04.593497: Rate array import [{'start': 1325, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1325, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:05:04.594321: - Your estimated bill for today is £2.08 and tomorrow is £1.96
2026-08-18 22:05:04.594435: - 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-18 22:05:04.594537: - The battery is currently at 11% and is in eco mode for the next 1 and a half hours.
2026-08-18 22:05:04.594606: - For the next 48 hours there will be no solar generation.
2026-08-18 22:05:04.594686: - You will run out of battery in 35 minutes.
2026-08-18 22:05:04.594751: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-18 22:05:04.594829: 
2026-08-18 22:05:04.635752: Plan calculation took 1.52 seconds
2026-08-18 22:05:04.642347: No high rate period found
2026-08-18 22:05:04.756213: Import threshold used for optimisation was 8.0p
2026-08-18 22:05:04.866170: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:05:04.875406: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 11%, target 100%
2026-08-18 22:05:04.875592: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:05:04.875675: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:05:04.876243: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:05:04.876366: No export window planned
2026-08-18 22:05:04.876490: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:05:04.876607: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:05:04.876781: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:05:04.878033: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:05:04.878187: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:05:04.878251: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:05:04.878336: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878375: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878402: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878475: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:05:04.878773: Inverter 0 count register writes 0
2026-08-18 22:05:04.894861: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 22:05:04.900948: Total inverter register writes now 867
2026-08-18 22:05:04.968867: Info: Completed run status Demand
2026-08-18 22:05:04.976057: Info: record_status Demand
2026-08-18 22:05:04.997918: Saved current settings to /config/predbat_config.json
2026-08-18 22:05:04.998228: Compare, best tariff: current metric 129.87p
2026-08-18 22:05:13.831597: ML Predictor: Epoch 23/30: lr=0.00022 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-18 22:05:27.267148: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0017 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-18 22:05:41.457484: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0049 val_mae=0.0016 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0013 kWh ema_combined=0.0012 kWh
2026-08-18 22:05:49.199038: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:05:49.199314: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:05:49.199366: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:05:49.199552: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:05:49.199602: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:05:49.199631: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:05:49.199665: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:05:53.632841: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0016 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0008 kWh ema_combined=0.0011 kWh
2026-08-18 22:06:07.830101: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0050 val_mae=0.0016 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0012 kWh ema_combined=0.0011 kWh
2026-08-18 22:06:24.035852: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0049 val_mae=0.0016 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0008 kWh ema_combined=0.0010 kWh
2026-08-18 22:06:37.588040: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0016 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-18 22:06:51.674312: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0016 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0010 kWh ema_combined=0.0010 kWh
2026-08-18 22:06:51.680806: ML Predictor: Restored best weights from epoch with val_mae=0.0016 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-18 22:06:51.681205: ML Predictor: Training complete, final val_mae=0.0016 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-18 22:06:52.687170: ML Predictor: AR rollout over holdout: ar_mae=0.0016 kWh ar_bias=+0.0001 kWh (+0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 22:06:52.704075: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0016 kWh
2026-08-18 22:06:52.796711: ML Predictor: Curriculum pass 2/5: window=58.0 days (1392 hours of data)
2026-08-18 22:06:52.796976: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 22:06:53.445728: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 22:06:58.171222: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 22:06:58.220065: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7412 std=4.5728) import_rate(mean=16.5777 std=8.3608) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1973 std=0.5285)
2026-08-18 22:06:58.301601: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 22:06:58.315331: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 22:06:58.334809: ML Predictor: Baseline (pre-finetune) val_mae=0.0020 kWh val_bias=+0.0006 kWh
2026-08-18 22:07:09.854368: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0079 val_mae=0.0029 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-18 22:07:23.324794: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0118 val_mae=0.0030 kWh val_bias=+0.0008 kWh (+1.4%) combined=0.0021 kWh ema_combined=0.0017 kWh
2026-08-18 22:07:34.788937: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0027 kWh val_bias=-0.0010 kWh (-1.8%) combined=0.0022 kWh ema_combined=0.0019 kWh
2026-08-18 22:07:48.182551: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0089 val_mae=0.0025 kWh val_bias=+0.0011 kWh (+2.0%) combined=0.0023 kWh ema_combined=0.0020 kWh
2026-08-18 22:08:00.872893: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0087 val_mae=0.0028 kWh val_bias=-0.0014 kWh (-2.6%) combined=0.0024 kWh ema_combined=0.0021 kWh
2026-08-18 22:08:04.191345: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:08:04.191627: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:08:04.191679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:08:04.191869: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:08:04.191983: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:08:04.192030: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:08:04.192057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:08:15.384996: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0081 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0012 kWh ema_combined=0.0019 kWh
2026-08-18 22:08:29.428384: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0080 val_mae=0.0026 kWh val_bias=+0.0015 kWh (+2.6%) combined=0.0023 kWh ema_combined=0.0020 kWh
2026-08-18 22:08:40.734283: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0084 val_mae=0.0022 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 22:08:54.333614: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0081 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 22:09:07.696467: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0065 val_mae=0.0020 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-18 22:09:21.356965: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0064 val_mae=0.0017 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-18 22:09:32.415697: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0066 val_mae=0.0022 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-18 22:09:45.611682: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0067 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0014 kWh
2026-08-18 22:10:00.554256: --------------- PredBat - update at 2026-08-18 22:10:00+01:00 with clock skew 0 minutes, minutes now 1330
2026-08-18 22:10:00.555343: Saved current settings to /config/predbat_config.json
2026-08-18 22:10:00.555591: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 22:10:00.555757: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:10:00.556036: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:10:00.598154: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:10:00.598467: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:10:00.598879: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:10:00.599631: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:10:00.599885: Predbat mode is set to Control charge & discharge
2026-08-18 22:10:00.697097: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0067 val_mae=0.0019 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 22:10:00.922268: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:10:00.922529: Using load_power data to fill gaps in load_today data
2026-08-18 22:10:01.907616: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:10:01.907881: Zero load period starting at 2026-08-17T10:54:00+0100 (2116 minutes) for 189 minutes with base value 204.425
2026-08-18 22:10:01.909485: Processing 721 30-minute periods for power integration
2026-08-18 22:10:02.152377: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:10:02.152530: Car charging hold False, threshold 6.0kWh
2026-08-18 22:10:02.152583: Current data so far today: load 14.9kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:10:02.170401: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:10:02.170880: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:10:02.171809: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:10:02.172419: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:10:02.172516: Standing charge is set to 46.63p
2026-08-18 22:10:02.390160: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:10:02.404348: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:10:02.404639: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:10:02.406136: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:10:02.406271: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:10:02.406443: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:10:02.428014: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:10:02.428506: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:10:02.545046: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:10:02.556507: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:10:02.557994: High export rate found rates in range 99p to -99p
2026-08-18 22:10:02.588082: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:10:02.588174: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:10:02.604522: Battery level now 1.81kWh, -1hr ago 2.88kWh, at midnight 6.84kWh, battery value change in the last hour -7.37p, change today -34.58p, rate_forward 6.87p
2026-08-18 22:10:02.605034: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:10:02.686618: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 22:10:02.686822: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:10:02.894539: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:10:02.978727: Today's load divergence 105.9%, in-day adjustment 104.62%, damping 0.95x, yesterday 92.68% today 105.61% blend 7.64%
2026-08-18 22:10:02.979078: Today's predicted so far 13.85kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 13.85kWh forecast extra.
2026-08-18 22:10:02.979148: Today's actual load so far 14.83kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 22:10:03.039887: Inverter 0: Type SK Sunsynk
2026-08-18 22:10:03.040011: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:10:03.040241: Reserve min: 7%, battery_min: 7%
2026-08-18 22:10:03.040343: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:10:03.040686: Inverter 0 SoC: 1.75kW 11%, current charge rate 5000W, current discharge rate 5250W, current battery power 1083W, current battery voltage 51.2V, grid power -54W, load power 1139W, PV Power 0W
2026-08-18 22:10:03.040893: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:10:03.041003: Inverter 0 scheduled charge enable is False
2026-08-18 22:10:03.041054: Inverter 0 charge windows currently []
2026-08-18 22:10:03.041089: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:10:03.041216: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:10:03.041267: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:10:03.041312: Inverter 0 scheduled discharge enable is False
2026-08-18 22:10:03.042301: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:10:03.042357: Inverter 0 discharge windows currently []
2026-08-18 22:10:03.042387: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:10:03.042411: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:10:03.042462: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:10:03.129122: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:10:03.129243: Plan was last updated on 2026-08-18 22:00:00+01:00 and is now 10.0 minutes old
2026-08-18 22:10:03.129521: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:10:03.129575: Best export window [  ]
2026-08-18 22:10:03.130888: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:10:03.135789: Load divergence over 8.0 hours mean 617.68W, min 358.8W, max 1642.8W, std dev 279.42W, divergence 22.62%
2026-08-18 22:10:03.165204: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:10:03.165382: LoadML is_calculating True
2026-08-18 22:10:03.165530: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:10:03.219614: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 666.26p, metric_keep 124.64kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.94kWh, PV 0.0kWh
2026-08-18 22:10:03.424948: Battery has 0.58 hours left - now at 1.75kWh
2026-08-18 22:10:03.490283: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 689.32p, metric_keep 124.66kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.79kWh, PV 0.0kWh
2026-08-18 22:10:03.641786: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 396.08p, metric_keep 3.25kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.79kWh, PV 0.0kWh
2026-08-18 22:10:03.776993: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 388.28p, metric_keep 1.24kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.94kWh, PV 0.0kWh
2026-08-18 22:10:03.777091: Saving plan best values to HA entities
2026-08-18 22:10:04.038413: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:10:04.046109: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 22:10:04.053303: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.79kWh, house 0.83kWh, export 0.0kWh, metric 388.28p, metric10 396.08p
2026-08-18 22:10:04.198296: Marginal costs baseline metric (no standing charge): 341.648
2026-08-18 22:10:04.632113: Marginal energy costs matrix computed: min=6.67 max=33.75
2026-08-18 22:10:04.722750: Rate array import [{'start': 1330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1330, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:10:04.723523: - Your estimated bill for today is £2.08 and tomorrow is £1.96
2026-08-18 22:10:04.723966: - 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-18 22:10:04.724102: - The battery is currently at 11% and is in eco mode for the next 1 and a quarter hours.
2026-08-18 22:10:04.724223: - For the next 48 hours there will be no solar generation.
2026-08-18 22:10:04.724417: - You will run out of battery in 35 minutes.
2026-08-18 22:10:04.724544: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 22:10:04.724656: 
2026-08-18 22:10:04.772811: Plan calculation took 1.64 seconds
2026-08-18 22:10:04.778280: No high rate period found
2026-08-18 22:10:04.843869: Import threshold used for optimisation was 8.0p
2026-08-18 22:10:04.914259: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:10:04.921951: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 11%, target 100%
2026-08-18 22:10:04.922245: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:10:04.922521: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:10:04.922916: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:10:04.923146: No export window planned
2026-08-18 22:10:04.923426: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:10:04.923626: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:10:04.923964: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:10:04.924359: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:10:04.924581: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:10:04.924867: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:10:04.925155: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.938712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.938964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.939044: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.939163: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.939473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.939710: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.940031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.940251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.940474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.940679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.940883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.941087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.941303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:04.941538: Inverter 0 count register writes 0
2026-08-18 22:10:04.989108: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 22:10:04.989559: Recompute is saving previous plan...
2026-08-18 22:10:04.990969: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 22:10:04.991133: Best export window [  ]
2026-08-18 22:10:04.992607: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:10:04.997969: Load divergence over 8.0 hours mean 617.68W, min 358.8W, max 1642.8W, std dev 279.42W, divergence 22.62%
2026-08-18 22:10:05.037521: Calculating data from yesterday for savings calculation
2026-08-18 22:10:05.089388: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 22:10:05.207884: predict yesterday end_record 08-19 00:00:00, final soc 6.75kWh, metric 175.96p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 22:10:05.243266: predict yesterday10 end_record 08-19 00:00:00, final soc 6.36kWh, metric 172.62p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 22:10:05.261803: predict yesterday end_record 08-19 00:00:00, final soc 6.75kWh, metric 175.96p, metric_keep 0kWh, min_soc 4.42kWh @ 08-18 23:25:00, load 14.46kWh, PV 0.0kWh
2026-08-18 22:10:05.320449: Yesterday: Predbat disabled was £1.76 (adjusted £1.3) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.17kWh, export 0.0kWh, battery_cycle 23.22kWh, start_soc 6.7kWh,  final_soc 6.75kWh and battery_value 46.38kWh
2026-08-18 22:10:05.455151: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 440.69p, metric_keep 479.2kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.46kWh, PV 0.0kWh
2026-08-18 22:10:05.455316: Yesterday: No Battery/PV system cost predicted was £4.41 (adjusted £4.41) vs £1.81 (adjusted £1.36), saving £2.6 (adjusted £3.04) with import 14.46kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 22:10:05.465724: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:10:05.465862: LoadML is_calculating True
2026-08-18 22:10:05.465947: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:10:05.475279: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 22:10:05.475721: Optimise levels pass started at 2026-08-18 22:10:05
2026-08-18 22:10:05.475773: Optimise all windows, total charge 24 export 1
2026-08-18 22:10:07.089974: >> Region optimisation pass width 960 gives best_metric 461.7p, best_cost 478.83p, best_cycle 50.32kWh, best_import 37.77kWh
2026-08-18 22:10:07.269605: >> Region optimisation pass width 480 gives best_metric 461.7p, best_cost 478.83p, best_cycle 50.32kWh, best_import 37.77kWh
2026-08-18 22:10:07.699812: >> Region optimisation pass width 240 gives best_metric 461.7p, best_cost 478.83p, best_cycle 50.32kWh, best_import 37.77kWh
2026-08-18 22:10:11.024984: >> Region optimisation pass width 120 gives best_metric 460.75p, best_cost 472.02p, best_cycle 51.21kWh, best_import 36.91kWh
2026-08-18 22:10:11.025200: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 22:10:11.025285: Optimise levels pass ended at 2026-08-18 22:10:11, duration 5.5 seconds tried 73 combinations
2026-08-18 22:10:11.025362: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 460.75p, best_keep 1.24kWh, best_cycle 51.21kWh, best_carbon 0kg, best_import 36.91kWh
2026-08-18 22:10:11.049414: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 22:10:19.879251: Tweak plan optimisation started metric 325.68p, cost 335.4p
2026-08-18 22:10:22.076299: Tweak optimisation finished metric 325.68p, cost 335.4p, metric_keep 1.24kWh, cycle 27.75kWh, carbon 0kg, import 19.84kWh, changed 8 window(s)
2026-08-18 22:10:22.122397: Swap charge optimisation started metric 325.68p, cost 335.4p, min_improvement_swap 0.1p
2026-08-18 22:10:23.173629: Swap charge optimisation finished metric 325.68p, cost 335.4p
2026-08-18 22:10:23.329278: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:10:23.329969: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:10:23.330438: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:10:23.330939: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:10:23.382510: Previous plan best metric is 325.15 (cost 335.4) and new plan best metric is 325.68 (cost 335.4)
2026-08-18 22:10:23.382786: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 22:10:23.383073: Plan valid is now true after recompute was False
2026-08-18 22:10:23.421969: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 664.67p, metric_keep 124.39kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.74kWh, PV 0.0kWh
2026-08-18 22:10:23.622010: Battery has 0.58 hours left - now at 1.75kWh
2026-08-18 22:10:23.720800: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 687.66p, metric_keep 124.4kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.59kWh, PV 0.0kWh
2026-08-18 22:10:23.814698: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 388.87p, metric_keep 3.23kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.59kWh, PV 0.0kWh
2026-08-18 22:10:23.914701: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 380.03p, metric_keep 1.24kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.74kWh, PV 0.0kWh
2026-08-18 22:10:23.915164: Saving plan best values to HA entities
2026-08-18 22:10:24.195636: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:10:24.201561: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 22:10:24.207399: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.75kWh, house 0.83kWh, export 0.0kWh, metric 380.03p, metric10 388.87p
2026-08-18 22:10:24.300487: Marginal costs baseline metric (no standing charge): 333.3941
2026-08-18 22:10:24.655610: Marginal energy costs matrix computed: min=6.67 max=33.75
2026-08-18 22:10:24.813019: Rate array import [{'start': 1330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1330, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:10:24.813899: - Your estimated bill for today is £2.08 and tomorrow is £1.96
2026-08-18 22:10:24.813953: - 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-18 22:10:24.813981: - The battery is currently at 11% and is in eco mode for the next 1 and a quarter hours.
2026-08-18 22:10:24.827972: - For the next 48 hours there will be no solar generation.
2026-08-18 22:10:24.828087: - You will run out of battery in 35 minutes.
2026-08-18 22:10:24.828116: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 22:10:24.828198: 
2026-08-18 22:10:24.872948: Plan calculation took 19.88 seconds
2026-08-18 22:10:24.873796: Inverter 0: Type SK Sunsynk
2026-08-18 22:10:24.873860: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:10:24.874750: Reserve min: 7%, battery_min: 7%
2026-08-18 22:10:24.874832: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:10:24.875208: Inverter 0 SoC: 1.6kW 10%, current charge rate 5000W, current discharge rate 5250W, current battery power 1077W, current battery voltage 51.2V, grid power -54W, load power 1134W, PV Power 0W
2026-08-18 22:10:24.875418: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:10:24.876118: Inverter 0 scheduled charge enable is False
2026-08-18 22:10:24.876163: Inverter 0 charge windows currently []
2026-08-18 22:10:24.876189: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:10:24.876301: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:10:24.876332: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:10:24.876362: Inverter 0 scheduled discharge enable is False
2026-08-18 22:10:24.876486: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:10:24.876519: Inverter 0 discharge windows currently []
2026-08-18 22:10:24.876538: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:10:24.876553: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:10:24.876573: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:10:24.938101: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 10%, target 100%
2026-08-18 22:10:24.938243: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:10:24.938309: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:10:24.938505: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:10:24.938582: No export window planned
2026-08-18 22:10:24.938689: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:10:24.938726: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:10:24.938863: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:10:24.939010: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:10:24.939059: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:10:24.939112: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:10:24.939184: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939225: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939261: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939289: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939401: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:10:24.939719: Inverter 0 count register writes 0
2026-08-18 22:10:24.979703: Total inverter register writes now 867
2026-08-18 22:10:25.043806: Info: Completed run status Demand
2026-08-18 22:10:25.061004: Info: record_status Demand
2026-08-18 22:10:25.069041: Saved current settings to /config/predbat_config.json
2026-08-18 22:10:25.069240: Compare, best tariff: current metric 129.87p
2026-08-18 22:10:31.378961: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0066 val_mae=0.0018 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 22:10:44.535503: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0063 val_mae=0.0018 kWh val_bias=+0.0008 kWh (+1.4%) combined=0.0017 kWh ema_combined=0.0014 kWh
2026-08-18 22:10:59.761837: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0056 val_mae=0.0016 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0008 kWh ema_combined=0.0012 kWh
2026-08-18 22:11:04.249956: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:11:04.250185: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:11:04.250230: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:11:04.250364: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:11:04.250403: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:11:04.250424: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:11:04.250442: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:11:10.585367: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0054 val_mae=0.0016 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-18 22:11:21.552539: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0055 val_mae=0.0017 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0014 kWh ema_combined=0.0013 kWh
2026-08-18 22:11:34.448930: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0054 val_mae=0.0016 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0012 kWh ema_combined=0.0012 kWh
2026-08-18 22:11:46.750070: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0054 val_mae=0.0015 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-18 22:12:00.473705: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0050 val_mae=0.0014 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0009 kWh ema_combined=0.0011 kWh
2026-08-18 22:12:14.223857: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0048 val_mae=0.0013 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0007 kWh ema_combined=0.0010 kWh
2026-08-18 22:12:28.041592: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0050 val_mae=0.0015 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0012 kWh ema_combined=0.0010 kWh
2026-08-18 22:12:41.344044: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0047 val_mae=0.0014 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0008 kWh ema_combined=0.0010 kWh
2026-08-18 22:12:53.657256: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0047 val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0009 kWh ema_combined=0.0010 kWh
2026-08-18 22:13:04.561503: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:13:04.561993: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:13:04.562185: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:13:04.562508: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:13:04.564299: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:13:04.564421: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:13:04.564641: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:13:07.934643: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0046 val_mae=0.0016 kWh val_bias=-0.0007 kWh (-1.3%) combined=0.0014 kWh ema_combined=0.0011 kWh
2026-08-18 22:13:20.911496: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0044 val_mae=0.0013 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-18 22:13:32.505918: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0044 val_mae=0.0013 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-18 22:13:43.755017: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0043 val_mae=0.0013 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0009 kWh ema_combined=0.0010 kWh
2026-08-18 22:13:43.755927: ML Predictor: Restored best weights from epoch with val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 22:13:43.756187: ML Predictor: Training complete, final val_mae=0.0015 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 22:13:44.746935: ML Predictor: AR rollout over holdout: ar_mae=0.0017 kWh ar_bias=+0.0000 kWh (+0.1%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 22:13:44.751983: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0015 kWh
2026-08-18 22:13:44.826923: ML Predictor: Curriculum pass 3/5: window=59.0 days (1416 hours of data)
2026-08-18 22:13:44.827137: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 22:13:45.387942: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 22:13:50.101155: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 22:13:50.152094: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0599 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7306 std=4.5716) import_rate(mean=16.5523 std=8.3626) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1974 std=0.5287)
2026-08-18 22:13:50.233129: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 22:13:50.245667: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 22:13:50.290938: ML Predictor: Baseline (pre-finetune) val_mae=0.0024 kWh val_bias=-0.0001 kWh
2026-08-18 22:14:01.686275: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0080 val_mae=0.0033 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 22:14:15.275165: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0116 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-18 22:14:27.775745: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0126 val_mae=0.0039 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 22:14:40.366152: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0115 val_mae=0.0031 kWh val_bias=-0.0012 kWh (-2.8%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-18 22:14:53.219780: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0105 val_mae=0.0035 kWh val_bias=+0.0022 kWh (+5.2%) combined=0.0042 kWh ema_combined=0.0027 kWh
2026-08-18 22:15:00.133510: --------------- PredBat - update at 2026-08-18 22:15:00+01:00 with clock skew 0 minutes, minutes now 1335
2026-08-18 22:15:00.134404: Saved current settings to /config/predbat_config.json
2026-08-18 22:15:00.134526: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 22:15:00.134601: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:15:00.134761: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:15:00.200169: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:15:00.208368: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:15:00.208828: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:15:00.209446: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:15:00.209588: Predbat mode is set to Control charge & discharge
2026-08-18 22:15:00.648773: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:15:00.649209: Using load_power data to fill gaps in load_today data
2026-08-18 22:15:02.098283: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:15:02.102558: Zero load period starting at 2026-08-17T10:54:00+0100 (2121 minutes) for 189 minutes with base value 204.4
2026-08-18 22:15:02.104807: Processing 721 30-minute periods for power integration
2026-08-18 22:15:02.365785: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:15:02.365943: Car charging hold False, threshold 6.0kWh
2026-08-18 22:15:02.365999: Current data so far today: load 15.0kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:15:02.379744: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:15:02.380190: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:15:02.380968: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:15:02.381058: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:15:02.381678: Standing charge is set to 46.63p
2026-08-18 22:15:02.545776: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:15:02.546064: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:15:02.546293: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:15:02.547776: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:15:02.548273: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:15:02.560290: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:15:02.578465: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:15:02.578917: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:15:02.661748: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:15:02.661908: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:15:02.663296: High export rate found rates in range 99p to -99p
2026-08-18 22:15:02.693151: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:15:02.693243: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:15:02.709380: Battery level now 1.75kWh, -1hr ago 2.82kWh, at midnight 6.84kWh, battery value change in the last hour -7.31p, change today -34.97p, rate_forward 6.87p
2026-08-18 22:15:02.709923: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:15:02.827118: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 22:15:02.827305: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:15:02.940076: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:15:02.970712: Today's load divergence 106.19%, in-day adjustment 104.91%, damping 0.95x, yesterday 92.68% today 105.88% blend 7.29%
2026-08-18 22:15:02.970853: Today's predicted so far 13.88kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 13.88kWh forecast extra.
2026-08-18 22:15:02.970899: Today's actual load so far 14.92kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 22:15:03.021398: Inverter 0: Type SK Sunsynk
2026-08-18 22:15:03.021582: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:15:03.021878: Reserve min: 7%, battery_min: 7%
2026-08-18 22:15:03.022035: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:15:03.022342: Inverter 0 SoC: 1.6kW 10%, current charge rate 5000W, current discharge rate 5250W, current battery power 1067W, current battery voltage 51.2V, grid power -55W, load power 1123W, PV Power 0W
2026-08-18 22:15:03.022616: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:15:03.022822: Inverter 0 scheduled charge enable is False
2026-08-18 22:15:03.022872: Inverter 0 charge windows currently []
2026-08-18 22:15:03.022945: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:15:03.023123: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:15:03.023168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:15:03.023235: Inverter 0 scheduled discharge enable is False
2026-08-18 22:15:03.023473: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:15:03.023523: Inverter 0 discharge windows currently []
2026-08-18 22:15:03.023612: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:15:03.023645: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:15:03.023746: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:15:03.159755: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:15:03.159878: Plan was last updated on 2026-08-18 22:10:00+01:00 and is now 5.0 minutes old
2026-08-18 22:15:03.160169: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:15:03.160223: Best export window [  ]
2026-08-18 22:15:03.161502: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:15:03.166335: Load divergence over 8.0 hours mean 612.93W, min 364.2W, max 1402.8W, std dev 257.99W, divergence 21.05%
2026-08-18 22:15:03.218678: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:15:03.218804: LoadML is_calculating True
2026-08-18 22:15:03.218836: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:15:03.268173: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 667.89p, metric_keep 124.33kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.87kWh, PV 0.0kWh
2026-08-18 22:15:03.409239: Battery has 0.42 hours left - now at 1.6kWh
2026-08-18 22:15:03.460105: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 690.79p, metric_keep 124.33kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.73kWh, PV 0.0kWh
2026-08-18 22:15:03.642796: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 394.78p, metric_keep 3.17kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.73kWh, PV 0.0kWh
2026-08-18 22:15:03.785148: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 386.48p, metric_keep 1.13kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.87kWh, PV 0.0kWh
2026-08-18 22:15:03.800139: Saving plan best values to HA entities
2026-08-18 22:15:04.013426: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:15:04.020789: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:15:04.027958: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.28kWh, house 0.9kWh, export 0.0kWh, metric 386.48p, metric10 394.78p
2026-08-18 22:15:04.118342: Marginal costs baseline metric (no standing charge): 339.85
2026-08-18 22:15:04.493789: Marginal energy costs matrix computed: min=6.0 max=33.75
2026-08-18 22:15:04.630062: Rate array import [{'start': 1335, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1335, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:15:04.630928: - Your estimated bill for today is £2.10 and tomorrow is £1.97
2026-08-18 22:15:04.630980: - 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-18 22:15:04.631009: - The battery is currently at 10% and is in eco mode for the next 1 and a quarter hours.
2026-08-18 22:15:04.631035: - For the next 48 hours there will be no solar generation.
2026-08-18 22:15:04.631068: - You will run out of battery in 25 minutes.
2026-08-18 22:15:04.631101: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 22:15:04.631127: 
2026-08-18 22:15:04.694153: Plan calculation took 1.53 seconds
2026-08-18 22:15:04.698415: No high rate period found
2026-08-18 22:15:04.781841: Import threshold used for optimisation was 8.0p
2026-08-18 22:15:04.845909: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:15:04.853118: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 10%, target 100%
2026-08-18 22:15:04.853347: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:15:04.853496: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:15:04.853779: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:15:04.853939: No export window planned
2026-08-18 22:15:04.854145: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:15:04.854288: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:15:04.854528: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:15:04.854779: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:15:04.854908: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:15:04.855038: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:15:04.855195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.855313: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.855423: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.855529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.855635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.855764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.855871: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:15:04.856907: Inverter 0 count register writes 0
2026-08-18 22:15:04.876020: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 22:15:04.882326: Total inverter register writes now 867
2026-08-18 22:15:04.925044: Info: Completed run status Demand
2026-08-18 22:15:04.937098: Info: record_status Demand
2026-08-18 22:15:04.946802: Saved current settings to /config/predbat_config.json
2026-08-18 22:15:04.947151: Compare, best tariff: current metric 129.87p
2026-08-18 22:15:12.126212: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0089 val_mae=0.0024 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0015 kWh ema_combined=0.0024 kWh
2026-08-18 22:15:25.894575: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0085 val_mae=0.0031 kWh val_bias=+0.0013 kWh (+3.1%) combined=0.0033 kWh ema_combined=0.0027 kWh
2026-08-18 22:15:38.583491: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0081 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-18 22:15:49.095390: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:15:49.095657: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:15:49.095727: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:15:49.096031: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:15:49.096088: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:15:49.096172: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:15:49.096200: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:15:51.625308: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0072 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-18 22:16:04.990316: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0077 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0018 kWh
2026-08-18 22:16:04.990507: ML Predictor: Early stopping at epoch 10
2026-08-18 22:16:04.991263: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 22:16:04.991413: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-18 22:16:06.220953: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=+0.0003 kWh (+0.8%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-18 22:16:06.226890: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0024 kWh
2026-08-18 22:16:06.315706: ML Predictor: Curriculum pass 4/5: window=60.0 days (1440 hours of data)
2026-08-18 22:16:06.315889: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 22:16:06.954920: ML Predictor: Creating dataset with 1440 hours of training data, 48 hours validation
2026-08-18 22:16:12.273210: ML Predictor: Created 16992 training samples, 576 validation samples
2026-08-18 22:16:12.325382: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0598 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7182 std=4.5678) import_rate(mean=16.5448 std=8.3815) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1972 std=0.5290)
2026-08-18 22:16:12.408169: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 22:16:12.421130: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 22:16:12.441187: ML Predictor: Baseline (pre-finetune) val_mae=0.0035 kWh val_bias=-0.0009 kWh
2026-08-18 22:16:26.614968: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0095 val_mae=0.0036 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-18 22:16:43.452057: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0087 val_mae=0.0033 kWh val_bias=-0.0013 kWh (-2.7%) combined=0.0028 kWh ema_combined=0.0021 kWh
2026-08-18 22:16:59.479671: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0093 val_mae=0.0034 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-18 22:17:14.514024: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0104 val_mae=0.0042 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0033 kWh ema_combined=0.0025 kWh
2026-08-18 22:17:28.189447: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0133 val_mae=0.0038 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-18 22:17:40.102776: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0126 val_mae=0.0034 kWh val_bias=+0.0009 kWh (+2.0%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-18 22:17:49.356419: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:17:49.356691: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:17:49.356743: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:17:49.356935: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:17:49.356984: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:17:49.357012: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:17:49.357045: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:17:53.367267: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0096 val_mae=0.0028 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-18 22:18:08.011142: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0097 val_mae=0.0030 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 22:18:23.307115: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0083 val_mae=0.0028 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-18 22:18:35.673613: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0089 val_mae=0.0032 kWh val_bias=-0.0007 kWh (-1.4%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 22:18:50.204962: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0093 val_mae=0.0028 kWh val_bias=-0.0011 kWh (-2.2%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 22:18:50.205185: ML Predictor: Early stopping at epoch 11
2026-08-18 22:18:50.206113: ML Predictor: Restored best weights from epoch with val_mae=0.0036 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-18 22:18:50.206365: ML Predictor: Training complete, final val_mae=0.0036 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-18 22:18:51.323355: ML Predictor: AR rollout over holdout: ar_mae=0.0075 kWh ar_bias=+0.0003 kWh (+0.7%) [drift vs teacher-forced: +0.0038 kWh]
2026-08-18 22:18:51.329194: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0036 kWh
2026-08-18 22:18:51.329622: ML Predictor: Curriculum final pass 5/5: full dataset (60.3 days)
2026-08-18 22:18:51.329762: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 22:18:52.036166: ML Predictor: Creating dataset with 1447 hours of training data, 48 hours validation
2026-08-18 22:18:57.162380: ML Predictor: Created 17086 training samples, 576 validation samples
2026-08-18 22:18:57.216778: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0599 std=0.0480) load(mean=0.0597 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7061 std=4.5634) import_rate(mean=16.5443 std=8.4046) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1970 std=0.5294)
2026-08-18 22:18:57.298236: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 22:18:57.311541: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 22:18:57.333772: ML Predictor: Baseline (pre-finetune) val_mae=0.0047 kWh val_bias=-0.0012 kWh
2026-08-18 22:19:11.215373: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0102 val_mae=0.0039 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 22:19:27.280030: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0098 val_mae=0.0042 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 22:19:42.533335: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0121 val_mae=0.0044 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0034 kWh ema_combined=0.0028 kWh
2026-08-18 22:19:57.103516: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0105 val_mae=0.0043 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0027 kWh ema_combined=0.0028 kWh
2026-08-18 22:20:00.321371: --------------- PredBat - update at 2026-08-18 22:20:00+01:00 with clock skew 0 minutes, minutes now 1340
2026-08-18 22:20:00.322514: Saved current settings to /config/predbat_config.json
2026-08-18 22:20:00.322776: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 22:20:00.322972: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:20:00.323205: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:20:00.372477: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:20:00.372771: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:20:00.373139: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:20:00.373983: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:20:00.374252: Predbat mode is set to Control charge & discharge
2026-08-18 22:20:00.785555: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:20:00.796018: Using load_power data to fill gaps in load_today data
2026-08-18 22:20:01.834112: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:20:01.834332: Zero load period starting at 2026-08-17T10:54:00+0100 (2126 minutes) for 189 minutes with base value 204.375
2026-08-18 22:20:01.836696: Processing 721 30-minute periods for power integration
2026-08-18 22:20:02.107094: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:20:02.107332: Car charging hold False, threshold 6.0kWh
2026-08-18 22:20:02.107398: Current data so far today: load 15.1kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:20:02.133167: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:20:02.133282: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:20:02.134375: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:20:02.134524: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:20:02.134642: Standing charge is set to 46.63p
2026-08-18 22:20:02.372334: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:20:02.372639: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:20:02.372895: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:20:02.374404: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:20:02.374540: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:20:02.374701: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:20:02.386061: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:20:02.404410: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:20:02.505654: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:20:02.505842: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:20:02.507185: High export rate found rates in range 99p to -99p
2026-08-18 22:20:02.536070: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:20:02.536315: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:20:02.552864: Battery level now 1.6kWh, -1hr ago 2.72kWh, at midnight 6.84kWh, battery value change in the last hour -7.7p, change today -36.01p, rate_forward 6.87p
2026-08-18 22:20:02.553366: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:20:02.648415: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 22:20:02.648586: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:20:02.823061: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:20:02.914896: Today's load divergence 106.43%, in-day adjustment 105.18%, damping 0.95x, yesterday 92.68% today 106.11% blend 6.94%
2026-08-18 22:20:02.915001: Today's predicted so far 13.93kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 13.93kWh forecast extra.
2026-08-18 22:20:02.915035: Today's actual load so far 15.01kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 22:20:02.990885: Inverter 0: Type SK Sunsynk
2026-08-18 22:20:02.990982: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:20:02.991190: Reserve min: 7%, battery_min: 7%
2026-08-18 22:20:02.991278: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:20:02.991596: Inverter 0 SoC: 1.44kW 9%, current charge rate 5000W, current discharge rate 5250W, current battery power 1019W, current battery voltage 51.2V, grid power -52W, load power 1079W, PV Power 0W
2026-08-18 22:20:02.991767: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:20:02.991883: Inverter 0 scheduled charge enable is False
2026-08-18 22:20:02.991968: Inverter 0 charge windows currently []
2026-08-18 22:20:02.992005: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:20:02.992147: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:20:02.992194: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:20:02.992239: Inverter 0 scheduled discharge enable is False
2026-08-18 22:20:02.992401: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:20:02.992450: Inverter 0 discharge windows currently []
2026-08-18 22:20:02.992479: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:20:02.992513: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:20:02.992538: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:20:03.135265: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:20:03.135387: Plan was last updated on 2026-08-18 22:10:00+01:00 and is now 10.0 minutes old
2026-08-18 22:20:03.135646: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:20:03.135695: Best export window [  ]
2026-08-18 22:20:03.137063: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:20:03.141785: Load divergence over 8.0 hours mean 611.95W, min 339.6W, max 1405.2W, std dev 263.37W, divergence 21.52%
2026-08-18 22:20:03.166612: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:20:03.167336: LoadML is_calculating True
2026-08-18 22:20:03.167370: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:20:03.200965: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 671.15p, metric_keep 124.24kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.0kWh, PV 0.0kWh
2026-08-18 22:20:03.367173: Battery has 0.25 hours left - now at 1.44kWh
2026-08-18 22:20:03.447641: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 693.98p, metric_keep 124.24kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.85kWh, PV 0.0kWh
2026-08-18 22:20:03.563643: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 400.69p, metric_keep 3.01kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.85kWh, PV 0.0kWh
2026-08-18 22:20:03.655172: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 393.22p, metric_keep 1.01kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.0kWh, PV 0.0kWh
2026-08-18 22:20:03.655258: Saving plan best values to HA entities
2026-08-18 22:20:03.891607: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:20:03.907777: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:20:03.914862: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.8kWh, house 0.98kWh, export 0.0kWh, metric 393.22p, metric10 400.69p
2026-08-18 22:20:04.080516: Marginal costs baseline metric (no standing charge): 346.5886
2026-08-18 22:20:04.463045: Marginal energy costs matrix computed: min=5.33 max=33.75
2026-08-18 22:20:04.591988: Rate array import [{'start': 1340, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1340, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:20:04.592859: - Your estimated bill for today is £2.13 and tomorrow is £1.97
2026-08-18 22:20:04.592913: - 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-18 22:20:04.592942: - The battery is currently at 9% and is in eco mode for the next 1 and a quarter hours.
2026-08-18 22:20:04.596458: - For the next 48 hours there will be no solar generation.
2026-08-18 22:20:04.596520: - You will run out of battery in 15 minutes.
2026-08-18 22:20:04.596590: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 22:20:04.596631: 
2026-08-18 22:20:04.663776: Plan calculation took 1.53 seconds
2026-08-18 22:20:04.667529: No high rate period found
2026-08-18 22:20:04.731188: Import threshold used for optimisation was 8.0p
2026-08-18 22:20:04.797862: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:20:04.804164: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 9%, target 100%
2026-08-18 22:20:04.804368: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:20:04.804496: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:20:04.804840: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:20:04.805045: No export window planned
2026-08-18 22:20:04.805287: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:20:04.807232: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:20:04.807517: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:20:04.807738: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:20:04.807793: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:20:04.807968: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:20:04.808096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808289: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808386: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808524: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.808933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.809004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.809046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:04.809110: Inverter 0 count register writes 0
2026-08-18 22:20:04.839645: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 22:20:04.839868: Recompute is saving previous plan...
2026-08-18 22:20:04.840985: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 22:20:04.841058: Best export window [  ]
2026-08-18 22:20:04.842151: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:20:04.846208: Load divergence over 8.0 hours mean 611.95W, min 339.6W, max 1405.2W, std dev 263.37W, divergence 21.52%
2026-08-18 22:20:04.871032: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:20:04.871280: LoadML is_calculating True
2026-08-18 22:20:04.871408: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:20:04.886852: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 22:20:04.887539: Optimise levels pass started at 2026-08-18 22:20:04
2026-08-18 22:20:04.887673: Optimise all windows, total charge 24 export 1
2026-08-18 22:20:06.921702: >> Region optimisation pass width 960 gives best_metric 467.47p, best_cost 483.8p, best_cycle 50.17kWh, best_import 37.92kWh
2026-08-18 22:20:07.113781: >> Region optimisation pass width 480 gives best_metric 467.47p, best_cost 483.8p, best_cycle 50.17kWh, best_import 37.92kWh
2026-08-18 22:20:07.559079: >> Region optimisation pass width 240 gives best_metric 467.47p, best_cost 483.8p, best_cycle 50.17kWh, best_import 37.92kWh
2026-08-18 22:20:10.873951: >> Region optimisation pass width 120 gives best_metric 466.53p, best_cost 477.0p, best_cycle 51.05kWh, best_import 37.07kWh
2026-08-18 22:20:10.874267: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 22:20:10.874332: Optimise levels pass ended at 2026-08-18 22:20:10, duration 6.0 seconds tried 73 combinations
2026-08-18 22:20:10.874392: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 466.53p, best_keep 1.01kWh, best_cycle 51.05kWh, best_carbon 0kg, best_import 37.07kWh
2026-08-18 22:20:10.893549: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 22:20:21.204404: Tweak plan optimisation started metric 330.35p, cost 340.32p
2026-08-18 22:20:23.580289: Tweak optimisation finished metric 330.35p, cost 340.32p, metric_keep 1.01kWh, cycle 27.45kWh, carbon 0kg, import 19.99kWh, changed 8 window(s)
2026-08-18 22:20:23.616709: Swap charge optimisation started metric 330.35p, cost 340.32p, min_improvement_swap 0.1p
2026-08-18 22:20:24.833845: Swap charge optimisation finished metric 330.35p, cost 340.32p
2026-08-18 22:20:24.959332: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:20:24.960296: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:20:24.960671: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:20:24.961002: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 94%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:20:25.003859: Previous plan best metric is 329.83 (cost 340.35) and new plan best metric is 330.35 (cost 340.32)
2026-08-18 22:20:25.004190: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 22:20:25.004384: Plan valid is now true after recompute was False
2026-08-18 22:20:25.035106: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 669.58p, metric_keep 123.99kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.8kWh, PV 0.0kWh
2026-08-18 22:20:25.270243: Battery has 0.25 hours left - now at 1.44kWh
2026-08-18 22:20:25.353166: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 692.33p, metric_keep 123.99kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.64kWh, PV 0.0kWh
2026-08-18 22:20:25.479578: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 393.49p, metric_keep 2.99kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 33.64kWh, PV 0.0kWh
2026-08-18 22:20:25.647473: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 384.99p, metric_keep 1.01kWh, min_soc 1.12kWh @ 08-18 22:35:00, load 32.8kWh, PV 0.0kWh
2026-08-18 22:20:25.647574: Saving plan best values to HA entities
2026-08-18 22:20:25.892856: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:20:25.912696: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:20:25.919129: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.77kWh, house 0.98kWh, export 0.0kWh, metric 384.99p, metric10 393.49p
2026-08-18 22:20:26.058280: Marginal costs baseline metric (no standing charge): 338.3556
2026-08-18 22:20:26.475060: Marginal energy costs matrix computed: min=5.33 max=33.75
2026-08-18 22:20:26.622395: Rate array import [{'start': 1340, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1340, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:20:26.623375: - Your estimated bill for today is £2.13 and tomorrow is £1.97
2026-08-18 22:20:26.623434: - 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-18 22:20:26.623509: - The battery is currently at 9% and is in eco mode for the next 1 and a quarter hours.
2026-08-18 22:20:26.623712: - For the next 48 hours there will be no solar generation.
2026-08-18 22:20:26.623757: - You will run out of battery in 15 minutes.
2026-08-18 22:20:26.624061: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-18 22:20:26.624109: 
2026-08-18 22:20:26.684100: Plan calculation took 21.84 seconds
2026-08-18 22:20:26.684399: Inverter 0: Type SK Sunsynk
2026-08-18 22:20:26.684487: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:20:26.684755: Reserve min: 7%, battery_min: 7%
2026-08-18 22:20:26.684936: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:20:26.685340: Inverter 0 SoC: 1.44kW 9%, current charge rate 5000W, current discharge rate 5250W, current battery power 1019W, current battery voltage 51.2V, grid power -52W, load power 1079W, PV Power 0W
2026-08-18 22:20:26.685605: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:20:26.685790: Inverter 0 scheduled charge enable is False
2026-08-18 22:20:26.685888: Inverter 0 charge windows currently []
2026-08-18 22:20:26.685975: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:20:26.686216: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:20:26.686302: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:20:26.686403: Inverter 0 scheduled discharge enable is False
2026-08-18 22:20:26.686661: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:20:26.686747: Inverter 0 discharge windows currently []
2026-08-18 22:20:26.686842: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:20:26.686887: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:20:26.686957: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:20:26.778439: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 9%, target 100%
2026-08-18 22:20:26.778609: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:20:26.778687: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:20:26.778920: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:20:26.779010: No export window planned
2026-08-18 22:20:26.779136: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:20:26.779177: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:20:26.779342: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:20:26.779512: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:20:26.779569: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:20:26.779623: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:20:26.779708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.779756: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.779841: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.779881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.779947: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.779990: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780024: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:20:26.780375: Inverter 0 count register writes 0
2026-08-18 22:20:26.808453: Total inverter register writes now 867
2026-08-18 22:20:26.854239: Info: Completed run status Demand
2026-08-18 22:20:26.863741: Info: record_status Demand
2026-08-18 22:20:26.873244: Saved current settings to /config/predbat_config.json
2026-08-18 22:20:26.873433: Compare, best tariff: current metric 129.87p
2026-08-18 22:20:30.488473: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0103 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.9%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-18 22:20:44.533192: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0096 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-18 22:20:57.440738: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0090 val_mae=0.0029 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 22:21:03.998593: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:21:03.999125: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:21:03.999293: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:21:03.999641: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:21:03.999782: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:21:03.999968: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:21:04.000123: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:21:11.912192: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0113 val_mae=0.0034 kWh val_bias=-0.0013 kWh (-2.5%) combined=0.0027 kWh ema_combined=0.0024 kWh
2026-08-18 22:21:25.210392: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0117 val_mae=0.0032 kWh val_bias=+0.0005 kWh (+1.0%) combined=0.0026 kWh ema_combined=0.0025 kWh
2026-08-18 22:21:38.858715: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0114 val_mae=0.0033 kWh val_bias=+0.0015 kWh (+2.8%) combined=0.0035 kWh ema_combined=0.0028 kWh
2026-08-18 22:21:52.921613: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0024 kWh
2026-08-18 22:22:07.421634: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-18 22:22:21.183517: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0078 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0014 kWh ema_combined=0.0021 kWh
2026-08-18 22:22:35.657155: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0012 kWh (-2.3%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 22:22:47.735222: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0063 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0012 kWh ema_combined=0.0018 kWh
2026-08-18 22:23:00.974347: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0058 val_mae=0.0024 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-18 22:23:04.335787: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:23:04.336197: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:23:04.336253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:23:04.336484: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:23:04.336556: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:23:04.336592: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:23:04.336612: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:23:13.324931: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0064 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0011 kWh ema_combined=0.0016 kWh
2026-08-18 22:23:26.284229: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0062 val_mae=0.0022 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 22:23:40.501395: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 22:23:54.053212: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0054 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-18 22:24:06.756636: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0020 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 22:24:19.808640: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 22:24:34.178668: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0049 val_mae=0.0020 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0017 kWh ema_combined=0.0014 kWh
2026-08-18 22:24:49.658266: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 22:25:00.678792: --------------- PredBat - update at 2026-08-18 22:25:00+01:00 with clock skew 0 minutes, minutes now 1345
2026-08-18 22:25:00.680320: Saved current settings to /config/predbat_config.json
2026-08-18 22:25:00.680440: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 22:25:00.680509: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:25:00.680579: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:25:00.723285: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:25:00.723486: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:25:00.723753: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:25:00.724695: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:25:00.724984: Predbat mode is set to Control charge & discharge
2026-08-18 22:25:01.079331: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:25:01.079505: Using load_power data to fill gaps in load_today data
2026-08-18 22:25:02.491860: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:25:02.492145: Zero load period starting at 2026-08-17T10:54:00+0100 (2131 minutes) for 189 minutes with base value 204.35
2026-08-18 22:25:02.493433: Processing 721 30-minute periods for power integration
2026-08-18 22:25:02.686896: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:25:02.687210: Car charging hold False, threshold 6.0kWh
2026-08-18 22:25:02.687258: Current data so far today: load 15.2kWh, import 10.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:25:02.704072: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:25:02.704149: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:25:02.704669: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:25:02.704736: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:25:02.704787: Standing charge is set to 46.63p
2026-08-18 22:25:02.983471: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:25:02.991301: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:25:02.991741: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:25:03.004892: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:25:03.005538: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:25:03.005805: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:25:03.013795: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:25:03.014279: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:25:03.057126: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:25:03.057465: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:25:03.058607: High export rate found rates in range 99p to -99p
2026-08-18 22:25:03.082051: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:25:03.082165: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:25:03.095152: Battery level now 1.44kWh, -1hr ago 2.62kWh, at midnight 6.84kWh, battery value change in the last hour -8.08p, change today -37.11p, rate_forward 6.87p
2026-08-18 22:25:03.095579: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:25:03.180024: Today's energy total net 10.8kWh, import 10.8kWh, export 0.0kWh, cost 155.29p, import 108.65p, export 0.0p, carbon 0.0kg
2026-08-18 22:25:03.180179: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:25:03.298380: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:25:03.341607: Today's load divergence 106.76%, in-day adjustment 105.52%, damping 0.95x, yesterday 92.68% today 106.43% blend 6.6%
2026-08-18 22:25:03.342282: Today's predicted so far 13.99kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 13.99kWh forecast extra.
2026-08-18 22:25:03.342438: Today's actual load so far 15.13kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 22:25:03.405670: Inverter 0: Type SK Sunsynk
2026-08-18 22:25:03.405748: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:25:03.405916: Reserve min: 7%, battery_min: 7%
2026-08-18 22:25:03.406012: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:25:03.406260: Inverter 0 SoC: 1.44kW 9%, current charge rate 5000W, current discharge rate 5250W, current battery power -4469W, current battery voltage 51.2V, grid power -5918W, load power 923W, PV Power 0W
2026-08-18 22:25:03.406407: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:25:03.406493: Inverter 0 scheduled charge enable is False
2026-08-18 22:25:03.406530: Inverter 0 charge windows currently []
2026-08-18 22:25:03.406557: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:25:03.406754: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:25:03.406799: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:25:03.406884: Inverter 0 scheduled discharge enable is False
2026-08-18 22:25:03.407096: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:25:03.407142: Inverter 0 discharge windows currently []
2026-08-18 22:25:03.407206: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:25:03.407238: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:25:03.407296: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:25:03.523334: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:25:03.523484: Plan was last updated on 2026-08-18 22:20:00+01:00 and is now 5.0 minutes old
2026-08-18 22:25:03.523894: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:25:03.524108: Best export window [  ]
2026-08-18 22:25:03.525082: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:25:03.528543: Load divergence over 8.0 hours mean 603.74W, min 323.4W, max 1693.2W, std dev 283.02W, divergence 23.44%
2026-08-18 22:25:03.562527: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:25:03.562761: LoadML is_calculating True
2026-08-18 22:25:03.562867: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 22:25:03.635549: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 668.14p, metric_keep 123.87kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.93kWh, PV 0.0kWh
2026-08-18 22:25:03.858607: Battery has 0.25 hours left - now at 1.44kWh
2026-08-18 22:25:03.971252: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 690.87p, metric_keep 123.88kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.77kWh, PV 0.0kWh
2026-08-18 22:25:04.194367: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 394.87p, metric_keep 2.91kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 33.77kWh, PV 0.0kWh
2026-08-18 22:25:04.365431: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 386.36p, metric_keep 0.86kWh, min_soc 1.12kWh @ 08-18 22:40:00, load 32.93kWh, PV 0.0kWh
2026-08-18 22:25:04.379459: Saving plan best values to HA entities
2026-08-18 22:25:04.638528: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 22:25:04.648807: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 22:25:04.683267: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.9kWh, export 0.0kWh, metric 386.36p, metric10 394.87p
2026-08-18 22:25:04.861654: Marginal costs baseline metric (no standing charge): 339.725
2026-08-18 22:25:05.187580: Marginal energy costs matrix computed: min=4.76 max=33.75
2026-08-18 22:25:05.310258: Rate array import [{'start': 1345, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1345, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:25:05.320949: - Your estimated bill for today is £2.10 and tomorrow is £1.96
2026-08-18 22:25:05.321010: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:25:05.321033: - The battery is currently at 9% and is in eco mode for the next 1 hour.
2026-08-18 22:25:05.321052: - For the next 48 hours there will be no solar generation.
2026-08-18 22:25:05.321143: - You will run out of battery in 15 minutes.
2026-08-18 22:25:05.321178: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-18 22:25:05.321236: 
2026-08-18 22:25:05.373761: Plan calculation took 1.85 seconds
2026-08-18 22:25:05.377318: No high rate period found
2026-08-18 22:25:05.448166: Import threshold used for optimisation was 8.0p
2026-08-18 22:25:05.535816: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:25:05.545565: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 9%, target 100%
2026-08-18 22:25:05.545769: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:25:05.545882: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:25:05.546129: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:25:05.546249: No export window planned
2026-08-18 22:25:05.546428: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:25:05.546490: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:25:05.546744: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:25:05.546959: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:25:05.547040: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:25:05.547173: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:25:05.547299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547356: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547488: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547678: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547772: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.547888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.560221: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.560320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.560353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.560382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.569255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.569345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:25:05.569375: Inverter 0 count register writes 0
2026-08-18 22:25:05.598083: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 22:25:05.605340: Total inverter register writes now 867
2026-08-18 22:25:05.661727: Info: Completed run status Demand
2026-08-18 22:25:05.670209: Info: record_status Demand
2026-08-18 22:25:05.679065: Saved current settings to /config/predbat_config.json
2026-08-18 22:25:05.679276: Compare, best tariff: current metric 129.87p
2026-08-18 22:25:05.961963: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0048 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0014 kWh
2026-08-18 22:25:20.536683: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0049 val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 22:25:30.613145: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0009 kWh ema_combined=0.0012 kWh
2026-08-18 22:25:43.077272: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0049 val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0009 kWh ema_combined=0.0011 kWh
2026-08-18 22:25:48.861257: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:25:48.861746: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:25:48.861900: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:25:48.862217: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:25:48.862359: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:25:48.862543: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:25:48.862682: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:25:56.638272: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-18 22:26:09.801600: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-18 22:26:09.808212: ML Predictor: Restored best weights from epoch with val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.7%)
2026-08-18 22:26:09.808405: ML Predictor: Training complete, final val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.7%)
2026-08-18 22:26:10.873436: ML Predictor: AR rollout over holdout: ar_mae=0.0020 kWh ar_bias=-0.0004 kWh (-0.9%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 22:26:10.877519: ML Predictor: Curriculum training complete, final val_mae=0.0018 kWh
2026-08-18 22:26:10.885345: ML Component: Training successful, val_mae=0.0018 kWh
2026-08-18 22:26:11.003022: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 22:26:11.008107: ML Component: Generating predictions load data age 60.0 days, 17375 data points
2026-08-18 22:26:11.156431: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.09 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10736562459506094, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 22:26:11.529438: ML Component: Generated 576 predictions (total 33.37 kWh over 48h)
2026-08-18 22:26:11.562295: ML Component: Prediction cycle completed
2026-08-18 22:26:11.669383: ML Component: Saved 17375 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 22:27:49.210428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:27:49.210699: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:27:49.210748: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:27:49.210908: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:27:49.210951: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:27:49.211006: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:27:49.211045: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:29:49.417842: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:29:49.418093: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:29:49.418183: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:29:49.418369: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:29:49.418406: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:29:49.418427: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:29:49.418445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:30:00.497602: --------------- PredBat - update at 2026-08-18 22:30:00+01:00 with clock skew 0 minutes, minutes now 1350
2026-08-18 22:30:00.498340: Saved current settings to /config/predbat_config.json
2026-08-18 22:30:00.498463: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 22:30:00.498546: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:30:00.498616: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:30:00.517892: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:30:00.518082: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:30:00.518265: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:30:00.518738: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:30:00.518848: Predbat mode is set to Control charge & discharge
2026-08-18 22:30:00.725214: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:30:00.725352: Using load_power data to fill gaps in load_today data
2026-08-18 22:30:01.521782: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:30:01.521944: Zero load period starting at 2026-08-17T10:54:00+0100 (2136 minutes) for 189 minutes with base value 204.325
2026-08-18 22:30:01.523167: Processing 721 30-minute periods for power integration
2026-08-18 22:30:01.685661: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:30:01.685777: Car charging hold False, threshold 6.0kWh
2026-08-18 22:30:01.685822: Current data so far today: load 15.3kWh, import 11.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:30:01.703532: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:30:01.703631: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:30:01.704408: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:30:01.704495: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:30:01.704557: Standing charge is set to 46.63p
2026-08-18 22:30:01.796615: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:30:01.796854: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:30:01.797089: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:30:01.798202: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:30:01.798308: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:30:01.798447: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:30:01.804091: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:30:01.804354: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:30:01.847521: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:30:01.847627: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:30:01.849086: High export rate found rates in range 99p to -99p
2026-08-18 22:30:01.876987: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:30:01.877094: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:30:01.888422: Battery level now 1.44kWh, -1hr ago 2.43kWh, at midnight 6.84kWh, battery value change in the last hour -6.82p, change today -37.11p, rate_forward 6.87p
2026-08-18 22:30:01.888776: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 3.38p, import 3.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:30:01.946523: Today's energy total net 11.0kWh, import 11.0kWh, export 0.0kWh, cost 162.04p, import 115.41p, export 0.0p, carbon 0.0kg
2026-08-18 22:30:01.946669: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:30:02.044384: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:30:02.081283: Today's load divergence 106.65%, in-day adjustment 105.47%, damping 0.95x, yesterday 92.68% today 106.32% blend 6.25%
2026-08-18 22:30:02.081377: Today's predicted so far 14.13kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 14.13kWh forecast extra.
2026-08-18 22:30:02.081428: Today's actual load so far 15.25kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 22:30:02.111465: Inverter 0: Type SK Sunsynk
2026-08-18 22:30:02.111545: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:30:02.111720: Reserve min: 7%, battery_min: 7%
2026-08-18 22:30:02.111790: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:30:02.112094: Inverter 0 SoC: 1.42kW 9%, current charge rate 5000W, current discharge rate 5250W, current battery power -4468W, current battery voltage 51.2V, grid power -5910W, load power 915W, PV Power 0W
2026-08-18 22:30:02.112252: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:30:02.112337: Inverter 0 scheduled charge enable is False
2026-08-18 22:30:02.112371: Inverter 0 charge windows currently []
2026-08-18 22:30:02.112398: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:30:02.112505: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:30:02.112540: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:30:02.112576: Inverter 0 scheduled discharge enable is False
2026-08-18 22:30:02.112696: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:30:02.112732: Inverter 0 discharge windows currently []
2026-08-18 22:30:02.112754: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:30:02.112774: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:30:02.112792: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:30:02.172631: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:30:02.172749: Plan was last updated on 2026-08-18 22:20:00+01:00 and is now 10.0 minutes old
2026-08-18 22:30:02.172947: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:30:02.172986: Best export window [  ]
2026-08-18 22:30:02.173866: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:30:02.177128: Load divergence over 8.0 hours mean 602.06W, min 323.4W, max 1621.2W, std dev 276.6W, divergence 22.97%
2026-08-18 22:30:02.196702: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:30:02.196799: LoadML is_calculating False
2026-08-18 22:30:02.196860: Creating pool of 12 processes to match your CPU count
2026-08-18 22:30:02.311381: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 672.96p, metric_keep 123.77kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.02kWh, PV 0.0kWh
2026-08-18 22:30:02.452839: Battery has 0.25 hours left - now at 1.42kWh
2026-08-18 22:30:02.497575: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 695.53p, metric_keep 123.78kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.86kWh, PV 0.0kWh
2026-08-18 22:30:02.578492: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 402.38p, metric_keep 2.73kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.86kWh, PV 0.0kWh
2026-08-18 22:30:02.653410: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 394.84p, metric_keep 0.73kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.02kWh, PV 0.0kWh
2026-08-18 22:30:02.653496: Saving plan best values to HA entities
2026-08-18 22:30:02.803320: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:30:02.808441: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:30:02.813563: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.77kWh, house 0.83kWh, export 0.0kWh, metric 394.84p, metric10 402.38p
2026-08-18 22:30:02.889910: Marginal costs baseline metric (no standing charge): 348.2038
2026-08-18 22:30:03.157700: Marginal energy costs matrix computed: min=6.65 max=33.75
2026-08-18 22:30:03.224948: Rate array import [{'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1350, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:30:03.225858: - Your estimated bill for today is £2.14 and tomorrow is £1.96
2026-08-18 22:30:03.225914: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:30:03.225943: - The battery is currently at 9% and is in eco mode for the next 1 hour.
2026-08-18 22:30:03.225967: - For the next 48 hours there will be no solar generation.
2026-08-18 22:30:03.225997: - You will run out of battery in 15 minutes.
2026-08-18 22:30:03.226050: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-18 22:30:03.226077: 
2026-08-18 22:30:03.282794: Plan calculation took 1.11 seconds
2026-08-18 22:30:03.286718: No high rate period found
2026-08-18 22:30:03.336307: Import threshold used for optimisation was 8.0p
2026-08-18 22:30:03.383966: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:30:03.389054: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 9%, target 100%
2026-08-18 22:30:03.389186: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:30:03.389295: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:30:03.389541: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:30:03.389643: No export window planned
2026-08-18 22:30:03.389827: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:30:03.389882: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:30:03.390186: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:30:03.390452: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:30:03.390534: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:30:03.390624: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:30:03.390745: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390814: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390839: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390894: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.390985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:03.391193: Inverter 0 count register writes 0
2026-08-18 22:30:03.405967: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 22:30:03.406118: Recompute is saving previous plan...
2026-08-18 22:30:03.406825: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 22:30:03.406864: Best export window [  ]
2026-08-18 22:30:03.407553: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:30:03.410089: Load divergence over 8.0 hours mean 602.06W, min 323.4W, max 1621.2W, std dev 276.6W, divergence 22.97%
2026-08-18 22:30:03.424660: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:30:03.424750: LoadML is_calculating False
2026-08-18 22:30:03.424801: Creating pool of 12 processes to match your CPU count
2026-08-18 22:30:03.513358: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 22:30:03.514134: Optimise levels pass started at 2026-08-18 22:30:03
2026-08-18 22:30:03.514184: Optimise all windows, total charge 24 export 1
2026-08-18 22:30:04.054049: >> Region optimisation pass width 960 gives best_metric 470.13p, best_cost 487.71p, best_cycle 50.59kWh, best_import 38.04kWh
2026-08-18 22:30:04.197286: >> Region optimisation pass width 480 gives best_metric 470.13p, best_cost 487.71p, best_cycle 50.59kWh, best_import 38.04kWh
2026-08-18 22:30:04.465983: >> Region optimisation pass width 240 gives best_metric 470.13p, best_cost 487.71p, best_cycle 50.59kWh, best_import 38.04kWh
2026-08-18 22:30:05.085215: >> Region optimisation pass width 120 gives best_metric 469.6p, best_cost 480.9p, best_cycle 51.47kWh, best_import 37.19kWh
2026-08-18 22:30:05.085394: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 22:30:05.085463: Optimise levels pass ended at 2026-08-18 22:30:05, duration 1.6 seconds tried 71 combinations
2026-08-18 22:30:05.085532: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 469.6p, best_keep 0.73kWh, best_cycle 51.47kWh, best_carbon 0kg, best_import 37.19kWh
2026-08-18 22:30:05.100302: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 22:30:09.322900: Tweak plan optimisation started metric 331.31p, cost 342.12p
2026-08-18 22:30:09.596214: Tweak optimisation finished metric 331.31p, cost 342.12p, metric_keep 0.73kWh, cycle 26.36kWh, carbon 0kg, import 19.84kWh, changed 8 window(s)
2026-08-18 22:30:09.614905: Swap charge optimisation started metric 331.31p, cost 342.12p, min_improvement_swap 0.1p
2026-08-18 22:30:10.288441: Swap charge optimisation finished metric 331.31p, cost 342.12p
2026-08-18 22:30:10.412881: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 38%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 38%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:30:10.413377: Unclipped charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:30:10.413678: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:30:10.413950: Filtered charge windows [ 18-08 23:30:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 02:00:00 @ 8.0p 38%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:30:10.449908: Previous plan best metric is 331.31 (cost 342.12) and new plan best metric is 331.31 (cost 342.12)
2026-08-18 22:30:10.450135: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 22:30:10.450285: Plan valid is now true after recompute was False
2026-08-18 22:30:10.478345: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 671.51p, metric_keep 123.52kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.84kWh, PV 0.0kWh
2026-08-18 22:30:10.702746: Battery has 0.25 hours left - now at 1.42kWh
2026-08-18 22:30:10.768888: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 694.01p, metric_keep 123.52kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.67kWh, PV 0.0kWh
2026-08-18 22:30:10.833424: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 395.3p, metric_keep 2.71kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 33.67kWh, PV 0.0kWh
2026-08-18 22:30:10.904870: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 386.71p, metric_keep 0.73kWh, min_soc 1.12kWh @ 08-18 22:45:00, load 32.84kWh, PV 0.0kWh
2026-08-18 22:30:10.904948: Saving plan best values to HA entities
2026-08-18 22:30:11.038461: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:30:11.043318: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:30:11.048895: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.76kWh, house 0.83kWh, export 0.0kWh, metric 386.71p, metric10 395.3p
2026-08-18 22:30:11.119040: Marginal costs baseline metric (no standing charge): 340.0795
2026-08-18 22:30:11.331468: Marginal energy costs matrix computed: min=6.65 max=33.75
2026-08-18 22:30:11.395106: Rate array import [{'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1350, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:30:11.395702: - Your estimated bill for today is £2.14 and tomorrow is £1.96
2026-08-18 22:30:11.395745: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:30:11.395767: - The battery is currently at 9% and is in eco mode for the next 1 hour.
2026-08-18 22:30:11.395785: - For the next 48 hours there will be no solar generation.
2026-08-18 22:30:11.395828: - You will run out of battery in 15 minutes.
2026-08-18 22:30:11.395848: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-18 22:30:11.395865: 
2026-08-18 22:30:11.445661: Plan calculation took 8.04 seconds
2026-08-18 22:30:11.445962: Inverter 0: Type SK Sunsynk
2026-08-18 22:30:11.446005: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:30:11.446232: Reserve min: 7%, battery_min: 7%
2026-08-18 22:30:11.446309: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:30:11.446640: Inverter 0 SoC: 1.42kW 9%, current charge rate 5000W, current discharge rate 5250W, current battery power -4468W, current battery voltage 51.2V, grid power -5910W, load power 915W, PV Power 0W
2026-08-18 22:30:11.446850: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:30:11.446959: Inverter 0 scheduled charge enable is False
2026-08-18 22:30:11.446998: Inverter 0 charge windows currently []
2026-08-18 22:30:11.447046: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:30:11.447178: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:30:11.447211: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:30:11.447242: Inverter 0 scheduled discharge enable is False
2026-08-18 22:30:11.447382: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:30:11.447417: Inverter 0 discharge windows currently []
2026-08-18 22:30:11.447435: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:30:11.447452: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:30:11.447481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:30:11.494792: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 9%, target 100%
2026-08-18 22:30:11.494931: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:30:11.494997: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:30:11.495198: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:30:11.495279: No export window planned
2026-08-18 22:30:11.495391: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:30:11.495426: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:30:11.495556: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:30:11.495709: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:30:11.495759: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:30:11.495819: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:30:11.495945: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.495994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496040: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496075: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496101: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496408: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:30:11.496433: Inverter 0 count register writes 0
2026-08-18 22:30:11.516215: Total inverter register writes now 867
2026-08-18 22:30:11.548532: Info: Completed run status Demand
2026-08-18 22:30:11.555307: Info: record_status Demand
2026-08-18 22:30:11.562183: Saved current settings to /config/predbat_config.json
2026-08-18 22:30:11.562442: Compare, best tariff: current metric 129.87p
2026-08-18 22:30:48.665644: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:30:48.665878: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:30:48.665918: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:30:48.666075: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:30:48.666118: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:30:48.667106: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:30:48.667164: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:32:48.878996: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:32:48.879322: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:32:48.879378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:32:48.879567: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:32:48.879611: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:32:48.879633: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:32:48.879661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:34:49.100891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:34:49.101132: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:34:49.101266: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:34:49.101667: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:34:49.101708: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:34:49.101730: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:34:49.101748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:35:00.198646: --------------- PredBat - update at 2026-08-18 22:35:00+01:00 with clock skew 0 minutes, minutes now 1355
2026-08-18 22:35:00.199535: Saved current settings to /config/predbat_config.json
2026-08-18 22:35:00.199674: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 22:35:00.199758: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:35:00.199838: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:35:00.216739: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:35:00.216853: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:35:00.217106: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:35:00.217669: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:35:00.217791: Predbat mode is set to Control charge & discharge
2026-08-18 22:35:00.395405: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:35:00.395534: Using load_power data to fill gaps in load_today data
2026-08-18 22:35:01.174099: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:35:01.174269: Zero load period starting at 2026-08-17T10:54:00+0100 (2141 minutes) for 189 minutes with base value 204.3
2026-08-18 22:35:01.176336: Processing 721 30-minute periods for power integration
2026-08-18 22:35:01.360842: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:35:01.360961: Car charging hold False, threshold 6.0kWh
2026-08-18 22:35:01.361004: Current data so far today: load 15.4kWh, import 11.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:35:01.377741: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:35:01.377825: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:35:01.378564: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:35:01.378646: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:35:01.378705: Standing charge is set to 46.63p
2026-08-18 22:35:01.466025: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:35:01.466244: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:35:01.466387: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:35:01.467276: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:35:01.467361: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:35:01.467460: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:35:01.472206: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:35:01.472606: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:35:01.510155: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:35:01.510268: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:35:01.511623: High export rate found rates in range 99p to -99p
2026-08-18 22:35:01.540708: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:35:01.540817: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:35:01.552399: Battery level now 1.42kWh, -1hr ago 2.43kWh, at midnight 6.84kWh, battery value change in the last hour -6.93p, change today -37.22p, rate_forward 6.87p
2026-08-18 22:35:01.552818: Last hour: net energy 0.09kWh, import 0.09kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 3.07p, import 3.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:35:01.605466: Today's energy total net 11.0kWh, import 11.0kWh, export 0.0kWh, cost 162.04p, import 115.41p, export 0.0p, carbon 0.0kg
2026-08-18 22:35:01.605643: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:35:01.705033: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:35:01.743798: Today's load divergence 106.58%, in-day adjustment 105.45%, damping 0.95x, yesterday 92.68% today 106.25% blend 5.9%
2026-08-18 22:35:01.743894: Today's predicted so far 14.25kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 14.25kWh forecast extra.
2026-08-18 22:35:01.743957: Today's actual load so far 15.35kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 22:35:01.772071: Inverter 0: Type SK Sunsynk
2026-08-18 22:35:01.772163: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:35:01.772331: Reserve min: 7%, battery_min: 7%
2026-08-18 22:35:01.772398: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:35:01.772636: Inverter 0 SoC: 2.02kW 13%, current charge rate 5000W, current discharge rate 5250W, current battery power 1009W, current battery voltage 51.2V, grid power -52W, load power 1024W, PV Power 0W
2026-08-18 22:35:01.772783: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:35:01.772867: Inverter 0 scheduled charge enable is False
2026-08-18 22:35:01.772902: Inverter 0 charge windows currently []
2026-08-18 22:35:01.772931: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:35:01.773044: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:35:01.773096: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:35:01.773135: Inverter 0 scheduled discharge enable is False
2026-08-18 22:35:01.773258: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:35:01.773294: Inverter 0 discharge windows currently []
2026-08-18 22:35:01.773317: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:35:01.773339: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:35:01.773356: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:35:01.824885: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:35:01.824965: Plan was last updated on 2026-08-18 22:30:00+01:00 and is now 5.0 minutes old
2026-08-18 22:35:01.825158: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:35:01.825223: Best export window [  ]
2026-08-18 22:35:01.825883: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:35:01.828456: Load divergence over 8.0 hours mean 600.42W, min 342.6W, max 1617.6W, std dev 293.16W, divergence 24.41%
2026-08-18 22:35:01.843614: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:35:01.843682: LoadML is_calculating False
2026-08-18 22:35:01.843745: Creating pool of 12 processes to match your CPU count
2026-08-18 22:35:01.941758: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 650.55p, metric_keep 123.2kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.95kWh, PV 0.0kWh
2026-08-18 22:35:02.054110: Battery has 0.75 hours left - now at 2.02kWh
2026-08-18 22:35:02.091628: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 672.97p, metric_keep 123.22kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.79kWh, PV 0.0kWh
2026-08-18 22:35:02.162115: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 377.05p, metric_keep 2.42kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.79kWh, PV 0.0kWh
2026-08-18 22:35:02.236788: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 369.15p, metric_keep 0.38kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.95kWh, PV 0.0kWh
2026-08-18 22:35:02.236865: Saving plan best values to HA entities
2026-08-18 22:35:02.373469: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:35:02.378950: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 22:35:02.383337: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.19kWh, export 0.0kWh, metric 369.15p, metric10 377.05p
2026-08-18 22:35:02.452756: Marginal costs baseline metric (no standing charge): 322.5186
2026-08-18 22:35:02.712147: Marginal energy costs matrix computed: min=8.0 max=31.97
2026-08-18 22:35:02.776532: Rate array import [{'start': 1355, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1355, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:35:02.777117: - Your estimated bill for today is £1.92 and tomorrow is £1.96
2026-08-18 22:35:02.777159: - Import rates are very expensive (33.8p) for the next 55 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:35:02.777181: - The battery is currently at 13% and is in eco mode for the next 55 minutes.
2026-08-18 22:35:02.777205: - For the next 48 hours there will be no solar generation.
2026-08-18 22:35:02.777223: - You have enough battery to reach the next charge.
2026-08-18 22:35:02.777241: - Your next charge slot will be in 55 minutes where import rates will be cheap (8.0p).
2026-08-18 22:35:02.777258: 
2026-08-18 22:35:02.820392: Plan calculation took 1.00 seconds
2026-08-18 22:35:02.824302: No high rate period found
2026-08-18 22:35:02.868949: Import threshold used for optimisation was 8.0p
2026-08-18 22:35:02.913594: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:35:02.919470: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 13%, target 100%
2026-08-18 22:35:02.919591: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:35:02.919725: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:35:02.920098: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:35:02.920209: No export window planned
2026-08-18 22:35:02.920339: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:35:02.920375: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:35:02.920512: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:35:02.920694: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:35:02.920755: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:35:02.920819: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:35:02.920921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.920961: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.920994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921026: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921052: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921313: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:35:02.921386: Inverter 0 count register writes 0
2026-08-18 22:35:02.935491: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 22:35:02.940726: Total inverter register writes now 867
2026-08-18 22:35:02.971498: Info: Completed run status Demand
2026-08-18 22:35:02.977005: Info: record_status Demand
2026-08-18 22:35:02.983412: Saved current settings to /config/predbat_config.json
2026-08-18 22:35:02.983732: Compare, best tariff: current metric 129.87p
2026-08-18 22:35:34.077161: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:35:34.077389: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:35:34.077437: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:35:34.077607: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:35:34.077650: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:35:34.077671: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:35:34.077689: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:37:34.288225: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:37:34.288440: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:37:34.288491: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:37:34.288646: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:37:34.288684: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:37:34.288705: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:37:34.288730: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:39:34.497931: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:39:34.498232: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:39:34.498289: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:39:34.498474: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:39:34.498518: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:39:34.498540: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:39:34.498564: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:40:00.598398: --------------- PredBat - update at 2026-08-18 22:40:00+01:00 with clock skew 0 minutes, minutes now 1360
2026-08-18 22:40:00.599160: Saved current settings to /config/predbat_config.json
2026-08-18 22:40:00.599302: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 22:40:00.599420: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:40:00.599515: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:40:00.616071: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:40:00.616214: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:40:00.616401: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:40:00.616921: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:40:00.617040: Predbat mode is set to Control charge & discharge
2026-08-18 22:40:00.813961: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:40:00.814080: Using load_power data to fill gaps in load_today data
2026-08-18 22:40:01.552829: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:40:01.552990: Zero load period starting at 2026-08-17T10:54:00+0100 (2146 minutes) for 189 minutes with base value 204.275
2026-08-18 22:40:01.554149: Processing 721 30-minute periods for power integration
2026-08-18 22:40:01.701459: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:40:01.701560: Car charging hold False, threshold 6.0kWh
2026-08-18 22:40:01.701596: Current data so far today: load 15.5kWh, import 11.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:40:01.715201: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:40:01.715296: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:40:01.715978: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:40:01.716051: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:40:01.716102: Standing charge is set to 46.63p
2026-08-18 22:40:01.806750: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:40:01.806993: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:40:01.807223: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:40:01.808485: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:40:01.808598: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:40:01.808725: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:40:01.814459: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:40:01.814805: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:40:01.858357: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:40:01.858478: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:40:01.860155: High export rate found rates in range 99p to -99p
2026-08-18 22:40:01.889713: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:40:01.889836: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:40:01.901432: Battery level now 2.02kWh, -1hr ago 2.38kWh, at midnight 6.84kWh, battery value change in the last hour -2.42p, change today -33.1p, rate_forward 6.87p
2026-08-18 22:40:01.901936: Last hour: net energy 0.88kWh, import 0.88kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 29.76p, import 29.76p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:40:01.965235: Today's energy total net 11.8kWh, import 11.8kWh, export 0.0kWh, cost 189.04p, import 142.41p, export 0.0p, carbon 0.0kg
2026-08-18 22:40:01.965415: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:40:02.055988: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:40:02.086689: Today's load divergence 106.74%, in-day adjustment 105.64%, damping 0.95x, yesterday 92.68% today 106.4% blend 5.56%
2026-08-18 22:40:02.086762: Today's predicted so far 14.29kWh with 0.0kWh car/iBoost excluded, 8.07kWh import ignored, and 14.29kWh forecast extra.
2026-08-18 22:40:02.086788: Today's actual load so far 15.42kWh with 0.0kWh car/iBoost excluded, and 8.07kWh import ignored.
2026-08-18 22:40:02.120977: Inverter 0: Type SK Sunsynk
2026-08-18 22:40:02.121048: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:40:02.121207: Reserve min: 7%, battery_min: 7%
2026-08-18 22:40:02.121271: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:40:02.121489: Inverter 0 SoC: 1.92kW 12%, current charge rate 5000W, current discharge rate 5250W, current battery power 1124W, current battery voltage 51.2V, grid power -55W, load power 1179W, PV Power 0W
2026-08-18 22:40:02.121610: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:40:02.121679: Inverter 0 scheduled charge enable is False
2026-08-18 22:40:02.121706: Inverter 0 charge windows currently []
2026-08-18 22:40:02.121748: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:40:02.121837: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:40:02.121866: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:40:02.121896: Inverter 0 scheduled discharge enable is False
2026-08-18 22:40:02.121994: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:40:02.122024: Inverter 0 discharge windows currently []
2026-08-18 22:40:02.122042: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:40:02.122056: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:40:02.122074: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:40:02.192843: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:40:02.192942: Plan was last updated on 2026-08-18 22:30:00+01:00 and is now 10.0 minutes old
2026-08-18 22:40:02.193173: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:40:02.193215: Best export window [  ]
2026-08-18 22:40:02.193995: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:40:02.197172: Load divergence over 8.0 hours mean 600.34W, min 343.8W, max 1642.8W, std dev 281.41W, divergence 23.44%
2026-08-18 22:40:02.215650: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:40:02.215741: LoadML is_calculating False
2026-08-18 22:40:02.215797: Creating pool of 12 processes to match your CPU count
2026-08-18 22:40:02.326256: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 678.75p, metric_keep 123.19kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.07kWh, PV 0.0kWh
2026-08-18 22:40:02.434852: Battery has 0.67 hours left - now at 1.92kWh
2026-08-18 22:40:02.479114: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 701.05p, metric_keep 123.21kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.9kWh, PV 0.0kWh
2026-08-18 22:40:02.559129: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 407.82p, metric_keep 2.36kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.9kWh, PV 0.0kWh
2026-08-18 22:40:02.632402: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 400.78p, metric_keep 0.35kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.07kWh, PV 0.0kWh
2026-08-18 22:40:02.632478: Saving plan best values to HA entities
2026-08-18 22:40:02.787028: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:40:02.792309: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:40:02.796929: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.79kWh, house 0.2kWh, export 0.0kWh, metric 400.78p, metric10 407.82p
2026-08-18 22:40:02.867752: Marginal costs baseline metric (no standing charge): 354.1422
2026-08-18 22:40:03.128313: Marginal energy costs matrix computed: min=8.0 max=31.94
2026-08-18 22:40:03.191243: Rate array import [{'start': 1360, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1360, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:40:03.191819: - Your estimated bill for today is £2.20 and tomorrow is £1.96
2026-08-18 22:40:03.191862: - Import rates are very expensive (33.8p) for the next 50 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:40:03.191934: - The battery is currently at 12% and is in eco mode for the next 50 minutes.
2026-08-18 22:40:03.191962: - For the next 48 hours there will be no solar generation.
2026-08-18 22:40:03.191990: - You have enough battery to reach the next charge.
2026-08-18 22:40:03.192007: - Your next charge slot will be in 50 minutes where import rates will be cheap (8.0p).
2026-08-18 22:40:03.192025: 
2026-08-18 22:40:03.235091: Plan calculation took 1.04 seconds
2026-08-18 22:40:03.238773: No high rate period found
2026-08-18 22:40:03.285244: Import threshold used for optimisation was 8.0p
2026-08-18 22:40:03.335550: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:40:03.342424: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 12%, target 100%
2026-08-18 22:40:03.342553: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:40:03.342663: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:40:03.342907: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:40:03.343009: No export window planned
2026-08-18 22:40:03.343169: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:40:03.343209: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:40:03.343382: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:40:03.343585: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:40:03.343651: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:40:03.343728: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:40:03.343889: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.343996: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344051: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344184: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:03.344801: Inverter 0 count register writes 0
2026-08-18 22:40:03.363753: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 22:40:03.364001: Recompute is saving previous plan...
2026-08-18 22:40:03.364928: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 22:40:03.364979: Best export window [  ]
2026-08-18 22:40:03.365850: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:40:03.369492: Load divergence over 8.0 hours mean 600.34W, min 343.8W, max 1642.8W, std dev 281.41W, divergence 23.44%
2026-08-18 22:40:03.387496: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:40:03.387608: LoadML is_calculating False
2026-08-18 22:40:03.387674: Creating pool of 12 processes to match your CPU count
2026-08-18 22:40:03.477278: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 22:40:03.478017: Optimise levels pass started at 2026-08-18 22:40:03
2026-08-18 22:40:03.478067: Optimise all windows, total charge 24 export 1
2026-08-18 22:40:03.858069: >> Region optimisation pass width 960 gives best_metric 476.64p, best_cost 491.32p, best_cycle 50.97kWh, best_import 37.14kWh
2026-08-18 22:40:03.979254: >> Region optimisation pass width 480 gives best_metric 476.64p, best_cost 491.32p, best_cycle 50.97kWh, best_import 37.14kWh
2026-08-18 22:40:04.219875: >> Region optimisation pass width 240 gives best_metric 476.64p, best_cost 491.32p, best_cycle 50.97kWh, best_import 37.14kWh
2026-08-18 22:40:05.084078: >> Region optimisation pass width 120 gives best_metric 475.88p, best_cost 487.02p, best_cycle 51.53kWh, best_import 36.6kWh
2026-08-18 22:40:05.084271: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 22:40:05.084338: Optimise levels pass ended at 2026-08-18 22:40:05, duration 1.6 seconds tried 73 combinations
2026-08-18 22:40:05.084402: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 475.88p, best_keep 0.35kWh, best_cycle 51.53kWh, best_carbon 0kg, best_import 36.6kWh
2026-08-18 22:40:05.102115: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 22:40:07.501430: Tweak plan optimisation started metric 336.65p, cost 347.9p
2026-08-18 22:40:07.804526: Tweak optimisation finished metric 336.65p, cost 347.9p, metric_keep 0.35kWh, cycle 26.84kWh, carbon 0kg, import 19.21kWh, changed 8 window(s)
2026-08-18 22:40:07.823832: Swap charge optimisation started metric 336.65p, cost 347.9p, min_improvement_swap 0.1p
2026-08-18 22:40:08.538617: Swap charge optimisation finished metric 336.65p, cost 347.9p
2026-08-18 22:40:08.668593: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 335.53p -> 335.28p, plan now metric 337.89p, cost 343.74p, cycle 26.84kWh, import 18.69kWh
2026-08-18 22:40:08.679053: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:40:08.679420: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:40:08.679672: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:40:08.679872: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:40:08.714988: Previous plan best metric is 336.65 (cost 347.9) and new plan best metric is 336.65 (cost 347.9)
2026-08-18 22:40:08.715156: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 22:40:08.715306: Plan valid is now true after recompute was False
2026-08-18 22:40:08.743352: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 677.16p, metric_keep 122.94kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.87kWh, PV 0.0kWh
2026-08-18 22:40:08.848657: Battery has 0.67 hours left - now at 1.92kWh
2026-08-18 22:40:08.895951: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 699.39p, metric_keep 122.95kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.7kWh, PV 0.0kWh
2026-08-18 22:40:08.967936: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 400.6p, metric_keep 2.34kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.7kWh, PV 0.0kWh
2026-08-18 22:40:09.033517: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 392.52p, metric_keep 0.35kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.87kWh, PV 0.0kWh
2026-08-18 22:40:09.033590: Saving plan best values to HA entities
2026-08-18 22:40:09.176131: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:40:09.181700: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:40:09.187092: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.76kWh, house 0.2kWh, export 0.0kWh, metric 392.52p, metric10 400.6p
2026-08-18 22:40:09.257236: Marginal costs baseline metric (no standing charge): 345.8884
2026-08-18 22:40:09.489259: Marginal energy costs matrix computed: min=8.0 max=31.94
2026-08-18 22:40:09.561633: Rate array import [{'start': 1360, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1360, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:40:09.562374: - Your estimated bill for today is £2.20 and tomorrow is £1.96
2026-08-18 22:40:09.562416: - Import rates are very expensive (33.8p) for the next 50 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:40:09.562436: - The battery is currently at 12% and is in eco mode for the next 50 minutes.
2026-08-18 22:40:09.562451: - For the next 48 hours there will be no solar generation.
2026-08-18 22:40:09.562465: - You have enough battery to reach the next charge.
2026-08-18 22:40:09.562482: - Your next charge slot will be in 50 minutes where import rates will be cheap (8.0p).
2026-08-18 22:40:09.562496: 
2026-08-18 22:40:09.606363: Plan calculation took 6.24 seconds
2026-08-18 22:40:09.606618: Inverter 0: Type SK Sunsynk
2026-08-18 22:40:09.606653: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:40:09.606837: Reserve min: 7%, battery_min: 7%
2026-08-18 22:40:09.606898: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:40:09.607209: Inverter 0 SoC: 1.92kW 12%, current charge rate 5000W, current discharge rate 5250W, current battery power 1124W, current battery voltage 51.2V, grid power -55W, load power 1179W, PV Power 0W
2026-08-18 22:40:09.607390: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:40:09.607473: Inverter 0 scheduled charge enable is False
2026-08-18 22:40:09.607496: Inverter 0 charge windows currently []
2026-08-18 22:40:09.607519: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:40:09.607609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:40:09.607638: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:40:09.607666: Inverter 0 scheduled discharge enable is False
2026-08-18 22:40:09.607842: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:40:09.607879: Inverter 0 discharge windows currently []
2026-08-18 22:40:09.607927: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:40:09.607968: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:40:09.607999: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:40:09.656749: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 12%, target 100%
2026-08-18 22:40:09.656980: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:40:09.657068: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:40:09.657342: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:40:09.657449: No export window planned
2026-08-18 22:40:09.657609: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:40:09.657652: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:40:09.657851: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:40:09.658070: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:40:09.658147: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:40:09.658232: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:40:09.658368: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658494: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658528: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658580: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658673: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.658970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.659026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.659073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:40:09.659105: Inverter 0 count register writes 0
2026-08-18 22:40:09.678161: Total inverter register writes now 867
2026-08-18 22:40:09.708489: Info: Completed run status Demand
2026-08-18 22:40:09.714427: Info: record_status Demand
2026-08-18 22:40:09.720723: Saved current settings to /config/predbat_config.json
2026-08-18 22:40:09.721083: Compare, best tariff: current metric 129.87p
2026-08-18 22:40:48.834925: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:40:48.835110: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:40:48.835162: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:40:48.835307: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:40:48.835366: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:40:48.835384: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:40:48.835401: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:41:56.297222: Error dumping YAML: cannot represent an object: np.float64(0.001751030508780169)
2026-08-18 22:41:57.965043: Successfully loaded apps.yaml from apps.yaml
2026-08-18 22:42:49.258943: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:42:49.259208: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:42:49.259245: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:42:49.259428: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:42:49.259491: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:42:49.259512: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:42:49.259530: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:43:12.682005: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 22:43:13.733789: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:43:13.734958: Zero load period starting at 2026-08-17T10:54:00+0100 (2146 minutes) for 189 minutes with base value 392.825
2026-08-18 22:43:13.736439: Processing 1345 30-minute periods for power integration
2026-08-18 22:43:13.843608: ML Component: Car charging hold False, car energy reported load False
2026-08-18 22:43:13.950585: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:43:14.044890: ML Temperature data points: 49041
2026-08-18 22:43:14.326778: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 22:43:14.372246: ML Component: Data fetch completed, load data age 60.0 days, 17383 data points
2026-08-18 22:43:14.372347: ML Component: No training needed, model age is 0.23 hours
2026-08-18 22:43:14.372406: ML Component: Generating predictions load data age 60.0 days, 17383 data points
2026-08-18 22:43:14.524637: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.1154 max_dow {0: 0.0841305558120211, 1: 0.09033611109604439, 2: 0.10840937459506095, 3: 0.10177187534738331, 4: 0.1380656253574416, 5: 0.10271666708704498, 6: 0.10591666600729029}
2026-08-18 22:43:15.414851: ML Component: Generated 576 predictions (total 33.31 kWh over 48h)
2026-08-18 22:43:15.448437: ML Component: Prediction cycle completed
2026-08-18 22:43:15.570218: ML Component: Saved 17383 steps (60 days) of history to /config/predbat_ml_history.npz
2026-08-18 22:44:49.475860: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:44:49.476193: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:44:49.476267: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:44:49.476379: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:44:49.476433: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:44:49.476449: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:44:49.476504: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:45:00.558468: --------------- PredBat - update at 2026-08-18 22:45:00+01:00 with clock skew 0 minutes, minutes now 1365
2026-08-18 22:45:00.559161: Saved current settings to /config/predbat_config.json
2026-08-18 22:45:00.559302: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 22:45:00.559387: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:45:00.559477: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:45:00.577169: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:45:00.577287: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:45:00.577490: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:45:00.578014: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:45:00.578181: Predbat mode is set to Control charge & discharge
2026-08-18 22:45:00.757939: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:45:00.758060: Using load_power data to fill gaps in load_today data
2026-08-18 22:45:01.437207: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:45:01.437501: Zero load period starting at 2026-08-17T10:54:00+0100 (2151 minutes) for 189 minutes with base value 204.25
2026-08-18 22:45:01.438655: Processing 721 30-minute periods for power integration
2026-08-18 22:45:01.586670: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:45:01.586788: Car charging hold False, threshold 6.0kWh
2026-08-18 22:45:01.586843: Current data so far today: load 15.6kWh, import 11.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:45:01.601854: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:45:01.601950: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:45:01.602567: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:45:01.602633: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:45:01.602676: Standing charge is set to 46.63p
2026-08-18 22:45:01.680320: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:45:01.680518: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:45:01.680655: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:45:01.681499: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:45:01.681584: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:45:01.681674: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:45:01.686185: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:45:01.686414: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:45:01.721185: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:45:01.721320: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:45:01.722507: High export rate found rates in range 99p to -99p
2026-08-18 22:45:01.745704: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:45:01.745802: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:45:01.756549: Battery level now 1.92kWh, -1hr ago 2.1kWh, at midnight 6.84kWh, battery value change in the last hour -1.26p, change today -33.81p, rate_forward 6.87p
2026-08-18 22:45:01.756847: Last hour: net energy 0.87kWh, import 0.87kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 29.45p, import 29.45p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:45:01.805707: Today's energy total net 11.8kWh, import 11.8kWh, export 0.0kWh, cost 189.04p, import 142.41p, export 0.0p, carbon 0.0kg
2026-08-18 22:45:01.805865: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:45:01.903051: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:45:01.936692: Today's load divergence 106.96%, in-day adjustment 105.88%, damping 0.95x, yesterday 92.68% today 106.61% blend 5.21%
2026-08-18 22:45:01.936759: Today's predicted so far 14.33kWh with 0.0kWh car/iBoost excluded, 8.09kWh import ignored, and 14.33kWh forecast extra.
2026-08-18 22:45:01.936785: Today's actual load so far 15.5kWh with 0.0kWh car/iBoost excluded, and 8.09kWh import ignored.
2026-08-18 22:45:01.965443: Inverter 0: Type SK Sunsynk
2026-08-18 22:45:01.965512: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:45:01.965691: Reserve min: 7%, battery_min: 7%
2026-08-18 22:45:01.965777: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:45:01.966025: Inverter 0 SoC: 1.92kW 12%, current charge rate 5000W, current discharge rate 5250W, current battery power 1197W, current battery voltage 51.2V, grid power -55W, load power 1253W, PV Power 0W
2026-08-18 22:45:01.966192: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:45:01.966296: Inverter 0 scheduled charge enable is False
2026-08-18 22:45:01.966332: Inverter 0 charge windows currently []
2026-08-18 22:45:01.966367: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:45:01.966497: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:45:01.966541: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:45:01.966595: Inverter 0 scheduled discharge enable is False
2026-08-18 22:45:01.966743: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:45:01.966786: Inverter 0 discharge windows currently []
2026-08-18 22:45:01.966814: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:45:01.966842: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:45:01.966866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:45:02.014223: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:45:02.014306: Plan was last updated on 2026-08-18 22:40:00+01:00 and is now 5.0 minutes old
2026-08-18 22:45:02.014534: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:45:02.014576: Best export window [  ]
2026-08-18 22:45:02.015292: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:45:02.017861: Load divergence over 8.0 hours mean 600.26W, min 330.6W, max 1402.8W, std dev 261.1W, divergence 21.75%
2026-08-18 22:45:02.033070: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:45:02.033167: LoadML is_calculating False
2026-08-18 22:45:02.033218: Creating pool of 12 processes to match your CPU count
2026-08-18 22:45:02.132353: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 675.17p, metric_keep 122.87kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.99kWh, PV 0.0kWh
2026-08-18 22:45:02.227878: Battery has 0.58 hours left - now at 1.92kWh
2026-08-18 22:45:02.270463: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 697.28p, metric_keep 122.88kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.82kWh, PV 0.0kWh
2026-08-18 22:45:02.339158: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 401.27p, metric_keep 2.29kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.82kWh, PV 0.0kWh
2026-08-18 22:45:02.402127: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 393.76p, metric_keep 0.25kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 32.99kWh, PV 0.0kWh
2026-08-18 22:45:02.402190: Saving plan best values to HA entities
2026-08-18 22:45:02.559723: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 22:45:02.565515: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 22:45:02.570449: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.29kWh, house 0.11kWh, export 0.0kWh, metric 393.76p, metric10 401.27p
2026-08-18 22:45:02.636642: Marginal costs baseline metric (no standing charge): 347.1238
2026-08-18 22:45:02.859046: Marginal energy costs matrix computed: min=8.0 max=31.96
2026-08-18 22:45:02.929897: Rate array import [{'start': 1365, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1365, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:45:02.930406: - Your estimated bill for today is £2.17 and tomorrow is £1.97
2026-08-18 22:45:02.930441: - Import rates are very expensive (33.8p) for the next 45 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:45:02.930460: - The battery is currently at 12% and is in eco mode for the next 45 minutes.
2026-08-18 22:45:02.930475: - For the next 48 hours there will be no solar generation.
2026-08-18 22:45:02.930489: - You have enough battery to reach the next charge.
2026-08-18 22:45:02.930503: - Your next charge slot will be in 45 minutes where import rates will be cheap (8.0p).
2026-08-18 22:45:02.930517: 
2026-08-18 22:45:02.973910: Plan calculation took 0.96 seconds
2026-08-18 22:45:02.976995: No high rate period found
2026-08-18 22:45:03.016814: Import threshold used for optimisation was 8.0p
2026-08-18 22:45:03.059605: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:45:03.064524: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 12%, target 100%
2026-08-18 22:45:03.064661: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:45:03.064797: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:45:03.065042: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:45:03.065163: No export window planned
2026-08-18 22:45:03.065328: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:45:03.065370: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:45:03.065519: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:45:03.065699: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:45:03.065756: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:45:03.065871: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:45:03.065997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066069: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066268: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066512: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:45:03.066654: Inverter 0 count register writes 0
2026-08-18 22:45:03.081645: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 22:45:03.086563: Total inverter register writes now 867
2026-08-18 22:45:03.115383: Info: Completed run status Demand
2026-08-18 22:45:03.120557: Info: record_status Demand
2026-08-18 22:45:03.126309: Saved current settings to /config/predbat_config.json
2026-08-18 22:45:03.126650: Compare, best tariff: current metric 129.87p
2026-08-18 22:45:34.232753: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:45:34.232997: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:45:34.233086: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:45:34.233260: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:45:34.233302: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:45:34.233324: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:45:34.233342: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:47:34.448989: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:47:34.449265: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:47:34.449298: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:47:34.449458: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:47:34.449496: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:47:34.449518: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:47:34.449535: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:49:48.663401: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:49:48.663620: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:49:48.663662: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:49:48.663792: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:49:48.663829: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:49:48.663865: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:49:48.663885: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:50:00.745358: --------------- PredBat - update at 2026-08-18 22:50:00+01:00 with clock skew 0 minutes, minutes now 1370
2026-08-18 22:50:00.746144: Saved current settings to /config/predbat_config.json
2026-08-18 22:50:00.746282: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 22:50:00.746361: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:50:00.746461: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:50:00.763334: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:50:00.763474: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:50:00.763666: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:50:00.764180: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:50:00.764332: Predbat mode is set to Control charge & discharge
2026-08-18 22:50:00.954354: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:50:00.954480: Using load_power data to fill gaps in load_today data
2026-08-18 22:50:01.721227: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:50:01.721437: Zero load period starting at 2026-08-17T10:54:00+0100 (2156 minutes) for 189 minutes with base value 204.225
2026-08-18 22:50:01.722601: Processing 721 30-minute periods for power integration
2026-08-18 22:50:01.866674: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:50:01.866781: Car charging hold False, threshold 6.0kWh
2026-08-18 22:50:01.866817: Current data so far today: load 15.7kWh, import 11.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:50:01.880274: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:50:01.880341: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:50:01.880930: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:50:01.880998: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:50:01.881041: Standing charge is set to 46.63p
2026-08-18 22:50:01.958152: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:50:01.958478: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:50:01.958742: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:50:01.959892: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:50:01.960072: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:50:01.960184: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:50:01.965577: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:50:01.966033: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:50:02.008748: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:50:02.008864: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:50:02.010189: High export rate found rates in range 99p to -99p
2026-08-18 22:50:02.043200: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:50:02.043310: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:50:02.055011: Battery level now 1.92kWh, -1hr ago 2.1kWh, at midnight 6.84kWh, battery value change in the last hour -1.26p, change today -33.81p, rate_forward 6.87p
2026-08-18 22:50:02.055365: Last hour: net energy 0.86kWh, import 0.86kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 29.15p, import 29.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:50:02.112282: Today's energy total net 11.8kWh, import 11.8kWh, export 0.0kWh, cost 189.04p, import 142.41p, export 0.0p, carbon 0.0kg
2026-08-18 22:50:02.112419: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:50:02.211023: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:50:02.250349: Today's load divergence 107.19%, in-day adjustment 106.14%, damping 0.95x, yesterday 92.68% today 106.83% blend 4.86%
2026-08-18 22:50:02.250434: Today's predicted so far 14.39kWh with 0.0kWh car/iBoost excluded, 8.1kWh import ignored, and 14.39kWh forecast extra.
2026-08-18 22:50:02.250466: Today's actual load so far 15.61kWh with 0.0kWh car/iBoost excluded, and 8.1kWh import ignored.
2026-08-18 22:50:02.276674: Inverter 0: Type SK Sunsynk
2026-08-18 22:50:02.276751: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:50:02.276940: Reserve min: 7%, battery_min: 7%
2026-08-18 22:50:02.277019: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:50:02.277277: Inverter 0 SoC: 1.86kW 12%, current charge rate 5000W, current discharge rate 5250W, current battery power 1230W, current battery voltage 51.2V, grid power -55W, load power 1290W, PV Power 0W
2026-08-18 22:50:02.277422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:50:02.277524: Inverter 0 scheduled charge enable is False
2026-08-18 22:50:02.277558: Inverter 0 charge windows currently []
2026-08-18 22:50:02.277584: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:50:02.277697: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:50:02.277733: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:50:02.277768: Inverter 0 scheduled discharge enable is False
2026-08-18 22:50:02.277910: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:50:02.277949: Inverter 0 discharge windows currently []
2026-08-18 22:50:02.277972: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:50:02.277994: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:50:02.278011: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:50:02.329445: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:50:02.329549: Plan was last updated on 2026-08-18 22:40:00+01:00 and is now 10.0 minutes old
2026-08-18 22:50:02.329788: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:50:02.329831: Best export window [  ]
2026-08-18 22:50:02.330747: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:50:02.333912: Load divergence over 8.0 hours mean 598.6W, min 326.4W, max 1405.2W, std dev 264.59W, divergence 22.1%
2026-08-18 22:50:02.352318: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:50:02.352393: LoadML is_calculating False
2026-08-18 22:50:02.352448: Creating pool of 12 processes to match your CPU count
2026-08-18 22:50:02.465144: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 674.86p, metric_keep 122.84kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 33.1kWh, PV 0.0kWh
2026-08-18 22:50:02.579578: Battery has 0.58 hours left - now at 1.86kWh
2026-08-18 22:50:02.623154: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 696.89p, metric_keep 122.85kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.93kWh, PV 0.0kWh
2026-08-18 22:50:02.695705: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 403.6p, metric_keep 2.21kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.93kWh, PV 0.0kWh
2026-08-18 22:50:02.769873: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 396.94p, metric_keep 0.2kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 33.1kWh, PV 0.0kWh
2026-08-18 22:50:02.769946: Saving plan best values to HA entities
2026-08-18 22:50:02.915336: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:50:02.921257: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:50:02.926970: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.8kWh, house 0.08kWh, export 0.0kWh, metric 396.94p, metric10 403.6p
2026-08-18 22:50:03.003439: Marginal costs baseline metric (no standing charge): 350.3077
2026-08-18 22:50:03.274019: Marginal energy costs matrix computed: min=8.0 max=31.93
2026-08-18 22:50:03.338612: Rate array import [{'start': 1370, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1370, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:50:03.339234: - Your estimated bill for today is £2.17 and tomorrow is £1.97
2026-08-18 22:50:03.339279: - Import rates are very expensive (33.8p) for the next 40 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:50:03.339302: - The battery is currently at 12% and is in eco mode for the next 40 minutes.
2026-08-18 22:50:03.339320: - For the next 48 hours there will be no solar generation.
2026-08-18 22:50:03.339338: - You have enough battery to reach the next charge.
2026-08-18 22:50:03.339355: - Your next charge slot will be in 40 minutes where import rates will be cheap (8.0p).
2026-08-18 22:50:03.339373: 
2026-08-18 22:50:03.384868: Plan calculation took 1.06 seconds
2026-08-18 22:50:03.389051: No high rate period found
2026-08-18 22:50:03.436772: Import threshold used for optimisation was 8.0p
2026-08-18 22:50:03.499550: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:50:03.504990: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 12%, target 100%
2026-08-18 22:50:03.505137: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:50:03.505289: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:50:03.505583: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:50:03.505720: No export window planned
2026-08-18 22:50:03.505915: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:50:03.505958: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:50:03.506138: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:50:03.506355: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:50:03.506422: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:50:03.506534: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:50:03.506677: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.506725: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.506755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.506799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.506865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.506924: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:03.507479: Inverter 0 count register writes 0
2026-08-18 22:50:03.527624: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 22:50:03.527817: Recompute is saving previous plan...
2026-08-18 22:50:03.528816: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 22:50:03.528890: Best export window [  ]
2026-08-18 22:50:03.529750: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:50:03.533154: Load divergence over 8.0 hours mean 598.6W, min 326.4W, max 1405.2W, std dev 264.59W, divergence 22.1%
2026-08-18 22:50:03.551056: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:50:03.551147: LoadML is_calculating False
2026-08-18 22:50:03.551228: Creating pool of 12 processes to match your CPU count
2026-08-18 22:50:03.637328: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.5 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x) 
2026-08-18 22:50:03.638510: Optimise levels pass started at 2026-08-18 22:50:03
2026-08-18 22:50:03.638581: Optimise all windows, total charge 24 export 1
2026-08-18 22:50:03.939713: >> Region optimisation pass width 960 gives best_metric 473.87p, best_cost 487.52p, best_cycle 51.08kWh, best_import 37.04kWh
2026-08-18 22:50:04.075319: >> Region optimisation pass width 480 gives best_metric 473.87p, best_cost 487.52p, best_cycle 51.08kWh, best_import 37.04kWh
2026-08-18 22:50:04.335949: >> Region optimisation pass width 240 gives best_metric 473.87p, best_cost 487.52p, best_cycle 51.08kWh, best_import 37.04kWh
2026-08-18 22:50:05.098612: >> Region optimisation pass width 120 gives best_metric 473.12p, best_cost 483.19p, best_cycle 51.64kWh, best_import 36.5kWh
2026-08-18 22:50:05.099037: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 22:50:05.099127: Optimise levels pass ended at 2026-08-18 22:50:05, duration 1.5 seconds tried 73 combinations
2026-08-18 22:50:05.099201: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 473.12p, best_keep 0.2kWh, best_cycle 51.64kWh, best_carbon 0kg, best_import 36.5kWh
2026-08-18 22:50:05.117643: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 22:50:07.430740: Tweak plan optimisation started metric 332.62p, cost 344.07p
2026-08-18 22:50:07.752501: Tweak optimisation finished metric 332.62p, cost 344.07p, metric_keep 0.2kWh, cycle 26.78kWh, carbon 0kg, import 19.11kWh, changed 8 window(s)
2026-08-18 22:50:07.770655: Swap charge optimisation started metric 332.62p, cost 344.07p, min_improvement_swap 0.1p
2026-08-18 22:50:08.413082: Swap charge optimisation finished metric 332.62p, cost 344.07p
2026-08-18 22:50:08.519984: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 331.55p -> 331.29p, plan now metric 333.84p, cost 339.93p, cycle 26.78kWh, import 18.59kWh
2026-08-18 22:50:08.527591: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:50:08.527926: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:50:08.528160: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:50:08.528327: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 88%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 22:50:08.559848: Previous plan best metric is 332.62 (cost 344.07) and new plan best metric is 332.62 (cost 344.07)
2026-08-18 22:50:08.560041: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 22:50:08.560196: Plan valid is now true after recompute was False
2026-08-18 22:50:08.582969: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 673.3p, metric_keep 122.58kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.9kWh, PV 0.0kWh
2026-08-18 22:50:08.681863: Battery has 0.58 hours left - now at 1.86kWh
2026-08-18 22:50:08.722665: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 695.25p, metric_keep 122.6kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.72kWh, PV 0.0kWh
2026-08-18 22:50:08.782959: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 396.4p, metric_keep 2.19kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 33.72kWh, PV 0.0kWh
2026-08-18 22:50:08.845402: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 388.71p, metric_keep 0.2kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 32.9kWh, PV 0.0kWh
2026-08-18 22:50:08.845586: Saving plan best values to HA entities
2026-08-18 22:50:08.978545: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:50:08.983629: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:50:08.990463: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.77kWh, house 0.08kWh, export 0.0kWh, metric 388.71p, metric10 396.4p
2026-08-18 22:50:09.062813: Marginal costs baseline metric (no standing charge): 342.0746
2026-08-18 22:50:09.329963: Marginal energy costs matrix computed: min=8.0 max=31.93
2026-08-18 22:50:09.397340: Rate array import [{'start': 1370, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1370, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:50:09.397993: - Your estimated bill for today is £2.17 and tomorrow is £1.97
2026-08-18 22:50:09.398044: - Import rates are very expensive (33.8p) for the next 40 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:50:09.398070: - The battery is currently at 12% and is in eco mode for the next 40 minutes.
2026-08-18 22:50:09.398113: - For the next 48 hours there will be no solar generation.
2026-08-18 22:50:09.398156: - You have enough battery to reach the next charge.
2026-08-18 22:50:09.398197: - Your next charge slot will be in 40 minutes where import rates will be cheap (8.0p).
2026-08-18 22:50:09.398235: 
2026-08-18 22:50:09.444792: Plan calculation took 5.92 seconds
2026-08-18 22:50:09.445203: Inverter 0: Type SK Sunsynk
2026-08-18 22:50:09.445274: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:50:09.445569: Reserve min: 7%, battery_min: 7%
2026-08-18 22:50:09.445691: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:50:09.446122: Inverter 0 SoC: 1.86kW 12%, current charge rate 5000W, current discharge rate 5250W, current battery power 1230W, current battery voltage 51.2V, grid power -55W, load power 1290W, PV Power 0W
2026-08-18 22:50:09.446396: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:50:09.446544: Inverter 0 scheduled charge enable is False
2026-08-18 22:50:09.446589: Inverter 0 charge windows currently []
2026-08-18 22:50:09.446627: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:50:09.446799: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:50:09.446884: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:50:09.446955: Inverter 0 scheduled discharge enable is False
2026-08-18 22:50:09.447142: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:50:09.447185: Inverter 0 discharge windows currently []
2026-08-18 22:50:09.447212: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:50:09.447255: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:50:09.447293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:50:09.501349: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 12%, target 100%
2026-08-18 22:50:09.501489: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:50:09.501570: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:50:09.501768: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:50:09.501870: No export window planned
2026-08-18 22:50:09.501986: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:50:09.502021: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:50:09.502156: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:50:09.502310: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:50:09.502362: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:50:09.502423: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:50:09.502518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502559: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502586: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502667: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502792: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502929: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.502957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:50:09.503004: Inverter 0 count register writes 0
2026-08-18 22:50:09.533543: Total inverter register writes now 867
2026-08-18 22:50:09.566341: Info: Completed run status Demand
2026-08-18 22:50:09.572598: Info: record_status Demand
2026-08-18 22:50:09.579188: Saved current settings to /config/predbat_config.json
2026-08-18 22:50:09.579554: Compare, best tariff: current metric 129.87p
2026-08-18 22:50:48.692886: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:50:48.693123: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:50:48.693173: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:50:48.693304: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:50:48.693342: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:50:48.693363: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:50:48.693381: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:52:48.904286: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:52:48.904526: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:52:48.904576: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:52:48.904711: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:52:48.904769: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:52:48.904794: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:52:48.904812: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:54:49.142431: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:54:49.142647: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:54:49.142712: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:54:49.142896: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:54:49.142951: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:54:49.142974: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:54:49.143010: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:55:00.224468: --------------- PredBat - update at 2026-08-18 22:55:00+01:00 with clock skew 0 minutes, minutes now 1375
2026-08-18 22:55:00.225144: Saved current settings to /config/predbat_config.json
2026-08-18 22:55:00.225264: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 22:55:00.225330: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 22:55:00.225448: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 22:55:00.242541: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 22:55:00.242643: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 22:55:00.242841: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 22:55:00.243303: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 22:55:00.243429: Predbat mode is set to Control charge & discharge
2026-08-18 22:55:00.393179: Found 21602 load_today datapoints going back 28 days
2026-08-18 22:55:00.393313: Using load_power data to fill gaps in load_today data
2026-08-18 22:55:01.078080: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 22:55:01.078233: Zero load period starting at 2026-08-17T10:54:00+0100 (2161 minutes) for 189 minutes with base value 204.2
2026-08-18 22:55:01.079390: Processing 721 30-minute periods for power integration
2026-08-18 22:55:01.230758: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 22:55:01.230859: Car charging hold False, threshold 6.0kWh
2026-08-18 22:55:01.230894: Current data so far today: load 15.8kWh, import 11.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 22:55:01.244461: Car 0 using Octopus Intelligent is unplugged
2026-08-18 22:55:01.244531: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 22:55:01.245130: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:55:01.245197: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 22:55:01.245243: Standing charge is set to 46.63p
2026-08-18 22:55:01.328949: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:55:01.329749: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:55:01.329908: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 22:55:01.330829: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 22:55:01.330920: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 22:55:01.331012: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 22:55:01.336208: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 22:55:01.336674: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 22:55:01.370974: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 22:55:01.371062: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 22:55:01.372272: High export rate found rates in range 99p to -99p
2026-08-18 22:55:01.394437: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 22:55:01.394496: Car 0 on Octopus Intelligent, no active plan
2026-08-18 22:55:01.404206: Battery level now 1.86kWh, -1hr ago 2.02kWh, at midnight 6.84kWh, battery value change in the last hour -1.1p, change today -34.25p, rate_forward 6.87p
2026-08-18 22:55:01.404500: Last hour: net energy 0.85kWh, import 0.85kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 28.84p, import 28.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 22:55:01.454640: Today's energy total net 11.8kWh, import 11.8kWh, export 0.0kWh, cost 189.04p, import 142.41p, export 0.0p, carbon 0.0kg
2026-08-18 22:55:01.454782: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 22:55:01.538051: Using weighted-bucket historical load forecast over 14 days
2026-08-18 22:55:01.573016: Today's load divergence 107.45%, in-day adjustment 106.42%, damping 0.95x, yesterday 92.68% today 107.07% blend 4.51%
2026-08-18 22:55:01.573102: Today's predicted so far 14.45kWh with 0.0kWh car/iBoost excluded, 8.13kWh import ignored, and 14.45kWh forecast extra.
2026-08-18 22:55:01.573128: Today's actual load so far 15.71kWh with 0.0kWh car/iBoost excluded, and 8.13kWh import ignored.
2026-08-18 22:55:01.602239: Inverter 0: Type SK Sunsynk
2026-08-18 22:55:01.602310: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 22:55:01.602451: Reserve min: 7%, battery_min: 7%
2026-08-18 22:55:01.602524: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 22:55:01.602747: Inverter 0 SoC: 1.62kW 10%, current charge rate 5000W, current discharge rate 5250W, current battery power 1173W, current battery voltage 51.2V, grid power -53W, load power 1232W, PV Power 0W
2026-08-18 22:55:01.602870: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:55:01.602940: Inverter 0 scheduled charge enable is False
2026-08-18 22:55:01.602968: Inverter 0 charge windows currently []
2026-08-18 22:55:01.602994: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 22:55:01.603119: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:55:01.603152: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:55:01.603182: Inverter 0 scheduled discharge enable is False
2026-08-18 22:55:01.603314: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:55:01.603350: Inverter 0 discharge windows currently []
2026-08-18 22:55:01.603369: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:55:01.603384: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:55:01.603402: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:55:01.660254: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 22:55:01.660360: Plan was last updated on 2026-08-18 22:50:00+01:00 and is now 5.0 minutes old
2026-08-18 22:55:01.660528: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 22:55:01.660561: Best export window [  ]
2026-08-18 22:55:01.661307: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 22:55:01.664115: Load divergence over 8.0 hours mean 597.0W, min 322.8W, max 1693.2W, std dev 287.73W, divergence 24.1%
2026-08-18 22:55:01.680210: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 22:55:01.680306: LoadML is_calculating False
2026-08-18 22:55:01.680449: Creating pool of 12 processes to match your CPU count
2026-08-18 22:55:01.782728: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 679.27p, metric_keep 122.61kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.03kWh, PV 0.0kWh
2026-08-18 22:55:01.899723: Battery has 0.33 hours left - now at 1.62kWh
2026-08-18 22:55:01.945875: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 701.2p, metric_keep 122.61kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.85kWh, PV 0.0kWh
2026-08-18 22:55:02.021741: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 405.2p, metric_keep 2.25kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.85kWh, PV 0.0kWh
2026-08-18 22:55:02.093280: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 397.48p, metric_keep 0.2kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 33.03kWh, PV 0.0kWh
2026-08-18 22:55:02.093359: Saving plan best values to HA entities
2026-08-18 22:55:02.244854: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 22:55:02.251343: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 22:55:02.257193: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.28kWh, house 0.23kWh, export 0.0kWh, metric 397.48p, metric10 405.2p
2026-08-18 22:55:02.333177: Marginal costs baseline metric (no standing charge): 350.8506
2026-08-18 22:55:02.578957: Marginal energy costs matrix computed: min=8.0 max=32.0
2026-08-18 22:55:02.640900: Rate array import [{'start': 1375, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1375, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 22:55:02.641814: - Your estimated bill for today is £2.22 and tomorrow is £1.96
2026-08-18 22:55:02.641861: - Import rates are very expensive (33.8p) for the next 35 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-18 22:55:02.641895: - The battery is currently at 10% and is in eco mode for the next 35 minutes.
2026-08-18 22:55:02.641944: - For the next 48 hours there will be no solar generation.
2026-08-18 22:55:02.641976: - You will run out of battery in 20 minutes.
2026-08-18 22:55:02.642008: - Your next charge slot will be in 35 minutes where import rates will be cheap (8.0p).
2026-08-18 22:55:02.642047: 
2026-08-18 22:55:02.688398: Plan calculation took 1.03 seconds
2026-08-18 22:55:02.691416: No high rate period found
2026-08-18 22:55:02.733150: Import threshold used for optimisation was 8.0p
2026-08-18 22:55:02.775842: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 22:55:02.780363: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 10%, target 100%
2026-08-18 22:55:02.780458: Inverter 0 disabled charge window while waiting for schedule (now 08-18 22:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 22:55:02.780551: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:55:02.780782: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:55:02.780868: No export window planned
2026-08-18 22:55:02.780974: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 22:55:02.781003: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 22:55:02.781110: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 22:55:02.781256: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 22:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 22:55:02.781305: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 22:55:02.781364: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 22:55:02.781448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781482: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781505: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781549: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781611: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 22:55:02.781846: Inverter 0 count register writes 0
2026-08-18 22:55:02.794236: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 22:55:02.798384: Total inverter register writes now 867
2026-08-18 22:55:02.824494: Info: Completed run status Demand
2026-08-18 22:55:02.829448: Info: record_status Demand
2026-08-18 22:55:02.835126: Saved current settings to /config/predbat_config.json
2026-08-18 22:55:02.835383: Compare, best tariff: current metric 129.87p
2026-08-18 22:55:33.931588: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:55:33.931855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:55:33.931932: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:55:33.932167: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:55:33.932209: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:55:33.932231: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:55:33.932249: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:56:59.651851: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 22:56:59.810274: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 22:57:34.144035: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:57:34.144259: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:57:34.144301: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:57:34.144432: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:57:34.144468: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:57:34.144489: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:57:34.144506: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 22:59:48.667110: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 22:59:48.667468: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 22:59:48.667549: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 22:59:48.667795: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 22:59:48.667844: Note: Inverter does not support discharge freeze - disabled
2026-08-18 22:59:48.667866: Note: Inverter does not support charge freeze - disabled
2026-08-18 22:59:48.667884: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 23:00:00.754020: --------------- PredBat - update at 2026-08-18 23:00:00+01:00 with clock skew 0 minutes, minutes now 1380
2026-08-18 23:00:00.754735: Saved current settings to /config/predbat_config.json
2026-08-18 23:00:00.754855: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 23:00:00.754958: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.7, latest beta is v8.48.7
2026-08-18 23:00:00.755033: Autoupdate: There is an update pending v8.48.7 LoadML Memory reduction, Bug fixes, SunSynk cloud (alpha) - auto update is off
2026-08-18 23:00:00.772005: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 23:00:00.772136: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 23:00:00.772365: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 23:00:00.772912: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 23:00:00.773072: Predbat mode is set to Control charge & discharge
2026-08-18 23:00:00.961697: Found 21602 load_today datapoints going back 28 days
2026-08-18 23:00:00.961823: Using load_power data to fill gaps in load_today data
2026-08-18 23:00:01.783695: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 23:00:01.783856: Zero load period starting at 2026-08-17T10:54:00+0100 (2166 minutes) for 189 minutes with base value 204.175
2026-08-18 23:00:01.785045: Processing 721 30-minute periods for power integration
2026-08-18 23:00:01.960891: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 23:00:01.961009: Car charging hold False, threshold 6.0kWh
2026-08-18 23:00:01.961052: Current data so far today: load 15.9kWh, import 11.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 23:00:01.977658: Car 0 using Octopus Intelligent is unplugged
2026-08-18 23:00:01.977754: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 23:00:01.978444: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 23:00:01.978523: Octopus: Joined Octopus saving session: Tue 18/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 23:00:01.978576: Standing charge is set to 46.63p
2026-08-18 23:00:02.061933: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 23:00:02.062129: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 23:00:02.062278: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 23:00:02.063147: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 23:00:02.063232: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 23:00:02.063337: Octopus: Setting Octopus saving session in range 08-18 18:00:00 - 08-18 19:00:00 export False rate 12.625
2026-08-18 23:00:02.067835: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 23:00:02.068131: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 23:00:02.103562: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 23:00:02.103875: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 23:00:02.105124: High export rate found rates in range 99p to -99p
2026-08-18 23:00:02.129282: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 23:00:02.129381: Car 0 on Octopus Intelligent, no active plan
2026-08-18 23:00:02.140090: Battery level now 1.62kWh, -1hr ago 1.81kWh, at midnight 6.84kWh, battery value change in the last hour -1.26p, change today -35.85p, rate_forward 6.87p
2026-08-18 23:00:02.140392: Last hour: net energy 0.85kWh, import 0.85kWh, export 0.0kWh, car 0kWh, load 1.2kWh, net cost 28.54p, import 28.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 23:00:02.215279: Today's energy total net 11.8kWh, import 11.8kWh, export 0.0kWh, cost 189.04p, import 142.41p, export 0.0p, carbon 0.0kg
2026-08-18 23:00:02.215458: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 23:00:02.317475: Using weighted-bucket historical load forecast over 14 days
2026-08-18 23:00:02.355709: Today's load divergence 107.3%, in-day adjustment 106.34%, damping 0.95x, yesterday 92.68% today 106.94% blend 4.17%
2026-08-18 23:00:02.355797: Today's predicted so far 14.6kWh with 0.0kWh car/iBoost excluded, 8.08kWh import ignored, and 14.6kWh forecast extra.
2026-08-18 23:00:02.355829: Today's actual load so far 15.84kWh with 0.0kWh car/iBoost excluded, and 8.08kWh import ignored.
2026-08-18 23:00:02.393107: Inverter 0: Type SK Sunsynk
2026-08-18 23:00:02.393195: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 23:00:02.393378: Reserve min: 7%, battery_min: 7%
2026-08-18 23:00:02.393455: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 23:00:02.393737: Inverter 0 SoC: 1.55kW 10%, current charge rate 5000W, current discharge rate 5250W, current battery power 1181W, current battery voltage 51.2V, grid power -55W, load power 1244W, PV Power 0W
2026-08-18 23:00:02.393894: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 23:00:02.394002: Inverter 0 scheduled charge enable is False
2026-08-18 23:00:02.394053: Inverter 0 charge windows currently []
2026-08-18 23:00:02.394083: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 23:00:02.394197: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 23:00:02.394232: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 23:00:02.394269: Inverter 0 scheduled discharge enable is False
2026-08-18 23:00:02.394396: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 23:00:02.394433: Inverter 0 discharge windows currently []
2026-08-18 23:00:02.394456: Note: Inverter does not support discharge freeze - disabled
2026-08-18 23:00:02.394475: Note: Inverter does not support charge freeze - disabled
2026-08-18 23:00:02.394497: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 23:00:02.459014: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 23:00:02.459110: Plan was last updated on 2026-08-18 22:50:00+01:00 and is now 10.0 minutes old
2026-08-18 23:00:02.459317: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 23:00:02.459377: Best export window [  ]
2026-08-18 23:00:02.460275: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 23:00:02.463371: Load divergence over 8.0 hours mean 597.21W, min 323.4W, max 1621.2W, std dev 279.87W, divergence 23.43%
2026-08-18 23:00:02.482696: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 23:00:02.482799: LoadML is_calculating False
2026-08-18 23:00:02.482858: Creating pool of 12 processes to match your CPU count