From 4f0a84d60d7e2a1c2c1b7ffac0d496089610ba19 Mon Sep 17 00:00:00 2001 From: piomar123 Date: Mon, 12 Oct 2026 14:29:03 +0200 Subject: [PATCH 1/6] feat(export-budget): optional export energy budget (export_budget_mode) Some prosumer schemes only allow a household to sell energy its own PV produced (e.g. Poland: grid energy stored in a battery may not be resold). export_budget_mode in apps.yaml limits forced battery export to that energy: - pv_origin: stored energy is split into a PV part and a grid part; battery output up to the on-site load draws the grid part first, only the PV part may be force exported. - pv_equivalent: a bucket filled by PV production and drained by all export (capped by export_budget_cap_kwh, default the battery size). The rule lives in export_budget.py and is mirrored by both prediction engines (kernel ABI 8, parity 18). Each cycle the budget is seeded by replaying 7 days of pv/export/import/load history (and battery SoC for pv_origin). Export targets are raised so the inverter, which exports at full power down to the target, can never sell more than the budget allows, both when clipping a new plan and every cycle for the export running now. predbat.export_budget publishes the budget now and over the best plan. Off by default; with the mode off nothing changes. Co-Authored-By: Claude Opus 5.5 --- .cspell/custom-dictionary-workspace.txt | 1 + apps/predbat/annual.py | 1 + apps/predbat/config.py | 2 + apps/predbat/export_budget.py | 211 +++++++ apps/predbat/fetch.py | 84 +++ apps/predbat/output.py | 45 ++ apps/predbat/plan.py | 58 +- apps/predbat/predbat.py | 9 + apps/predbat/prediction.py | 58 ++ apps/predbat/prediction_kernel.cpp | 104 +++- apps/predbat/prediction_kernel.py | 13 +- apps/predbat/tests/test_execute.py | 26 + apps/predbat/tests/test_export_budget.py | 722 +++++++++++++++++++++++ apps/predbat/tests/test_kernel_parity.py | 113 ++++ apps/predbat/unit_test.py | 2 + docs/energy-rates.md | 38 ++ 16 files changed, 1480 insertions(+), 7 deletions(-) create mode 100644 apps/predbat/export_budget.py create mode 100644 apps/predbat/tests/test_export_budget.py diff --git a/.cspell/custom-dictionary-workspace.txt b/.cspell/custom-dictionary-workspace.txt index 9a355bb8f..e7449c9ce 100644 --- a/.cspell/custom-dictionary-workspace.txt +++ b/.cspell/custom-dictionary-workspace.txt @@ -514,6 +514,7 @@ predheat preseed preseeded prevs +prosumer protobuf pseudonymisation pseudonymise diff --git a/apps/predbat/annual.py b/apps/predbat/annual.py index 57db475da..b0f2d7b1a 100644 --- a/apps/predbat/annual.py +++ b/apps/predbat/annual.py @@ -750,6 +750,7 @@ def reset_sample_state(predbat): predbat.soc_kw = 0.0 predbat.cost_today_sofar = 0 + predbat.export_budget_seed = None predbat.carbon_today_sofar = 0 predbat.iboost_today = 0 predbat.import_today_now = 0 diff --git a/apps/predbat/config.py b/apps/predbat/config.py index 9bfa89841..93596926d 100644 --- a/apps/predbat/config.py +++ b/apps/predbat/config.py @@ -2604,6 +2604,8 @@ "db_primary": {"type": "boolean"}, "threads": {"type": "string|integer", "allowed": ["auto", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]}, "prediction_kernel_enable": {"type": "boolean"}, + "export_budget_mode": {"type": "string", "allowed": ["off", "pv_origin", "pv_equivalent"]}, + "export_budget_cap_kwh": {"type": "float", "zero": True}, "log_count": {"type": "integer", "min": 2, "max": 100}, "ha_url": {"type": "string", "empty": False}, "ha_key": {"type": "string", "empty": False}, diff --git a/apps/predbat/export_budget.py b/apps/predbat/export_budget.py new file mode 100644 index 000000000..c004bb23a --- /dev/null +++ b/apps/predbat/export_budget.py @@ -0,0 +1,211 @@ +# ----------------------------------------------------------------------------- +# Predbat Home Battery System +# Copyright Trefor Southwell 2026 - All Rights Reserved +# This application maybe used for personal use only and not for commercial use +# ----------------------------------------------------------------------------- +# fmt off +# pylint: disable=consider-using-f-string +# pylint: disable=line-too-long +# pylint: disable=attribute-defined-outside-init +"""Export energy budget (export_budget_mode). + +Limits battery-to-grid export to energy derived from the household's own PV: + +- pv_origin: stored energy is split into a PV part and a grid part. Battery output up to the whole + on-site load counts as the house's own use and draws the grid part first, even while PV is exported. + Only battery output beyond the load is export, and only the PV part may be exported. +- pv_equivalent: a bucket filled by PV production and drained by all export, capped (default the + battery size); battery export is allowed while the bucket has energy. + +The step functions are the reference the prediction engines follow. prediction_kernel.cpp mirrors +them inline, so the arithmetic must not change without a kernel parity revision bump. +""" + +import math + +EXPORT_BUDGET_OFF = 0 +EXPORT_BUDGET_PV_ORIGIN = 1 +EXPORT_BUDGET_PV_EQUIVALENT = 2 +EXPORT_BUDGET_MODE_NAMES = {"off": EXPORT_BUDGET_OFF, "pv_origin": EXPORT_BUDGET_PV_ORIGIN, "pv_equivalent": EXPORT_BUDGET_PV_EQUIVALENT} +EXPORT_BUDGET_REPLAY_DAYS = 7 +# A 5 minute meter delta above this (240 kW) is a counter glitch, not energy +EXPORT_BUDGET_MAX_STEP_KWH = 20.0 + + +def parse_export_budget_mode(value): + """Return the mode constant for an apps.yaml value, or None when it is not a known mode""" + if value is None or value is False: + return EXPORT_BUDGET_OFF + if not isinstance(value, str): + return None + return EXPORT_BUDGET_MODE_NAMES.get(value.strip().lower()) + + +def export_budget_house_from_battery(mode, battery_out, load, pv): + """Battery output (AC) that counts as serving on-site load rather than as export. + + pv_origin counts the whole load, so stored grid energy may run the house while PV is exported; + pv_equivalent counts PV as covering the load first, so only what PV leaves uncovered. + """ + if mode == EXPORT_BUDGET_PV_ORIGIN: + return min(battery_out, max(load, 0.0)) + return min(battery_out, max(load - pv, 0.0)) + + +def export_budget_battery_export_allowed(mode, bucket, pv_part, grid_part, pv_now, pv_direct_export, house_from_battery_ac, stored_to_ac): + """AC energy the battery may export to the grid in one forced export step. + + pv_equivalent: total export <= bucket + pv_now, so the battery may add what is left after the PV + exported directly. pv_origin: on-site load is served from the grid part first and export only from + the PV part that remains; stored_to_ac converts stored kWh to AC at the meter. + """ + if mode == EXPORT_BUDGET_PV_EQUIVALENT: + return max(bucket + pv_now - pv_direct_export, 0.0) + house_stored = house_from_battery_ac / stored_to_ac if stored_to_ac > 0 else 0.0 + pv_left = max(pv_part - max(house_stored - grid_part, 0.0), 0.0) + return pv_left * stored_to_ac + + +def export_budget_update(mode, bucket, pv_part, grid_part, soc_before, soc_after, charge_kwh, pv_now, house_frac, export_kwh, cap): + """Advance the budget state over one step, returns (bucket, pv_part, grid_part). + + charge_kwh is the DC energy drawn into the battery this step (0 when not charging), house_frac the + share of this step's battery output that served on-site load, export_kwh the energy that reached the + meter. pv_origin parts are renormalised to soc_after so they always sum to the SoC. + """ + if mode == EXPORT_BUDGET_PV_EQUIVALENT: + bucket = min(max(bucket + pv_now - export_kwh, 0.0), cap) + return bucket, pv_part, grid_part + delta = soc_after - soc_before + if delta > 0: + pv_frac = min(charge_kwh, pv_now) / charge_kwh if charge_kwh > 0 else 0.0 + pv_part += delta * pv_frac + grid_part += delta * (1.0 - pv_frac) + elif delta < 0: + removed = -delta + removed_house = removed * house_frac + removed_export = removed - removed_house + from_grid = min(grid_part, removed_house) + grid_part -= from_grid + pv_part = max(pv_part - (removed_house - from_grid), 0.0) + from_pv = min(pv_part, removed_export) + pv_part -= from_pv + grid_part = max(grid_part - (removed_export - from_pv), 0.0) + total = pv_part + grid_part + if total > 0: + scale = soc_after / total + pv_part *= scale + grid_part *= scale + else: + pv_part = 0.0 + grid_part = soc_after + return bucket, pv_part, grid_part + + +def export_budget_floor_percent(soc, exportable, soc_max): + """Lowest export target (whole percent, rounded up) that cannot sell more than `exportable` stored kWh from `soc`""" + if soc_max <= 0: + return 0 + return min(max(int(math.ceil((soc - exportable) * 100.0 / soc_max - 1e-6)), 0), 100) + + +def _replay_delta(data, ago, step): + """Energy in the step ending `ago` minutes ago, None for a counter glitch""" + value = data.get(ago, 0.0) - data.get(ago + step, 0.0) + if value < -0.05 or value > EXPORT_BUDGET_MAX_STEP_KWH: + return None + return max(value, 0.0) + + +def _replay_soc_delta(soc_history, ago, step): + """Measured change of stored energy in the step ending `ago` minutes ago, None when unknown or a glitch""" + if ago not in soc_history or (ago + step) not in soc_history: + return None + value = soc_history[ago] - soc_history[ago + step] + if abs(value) > EXPORT_BUDGET_MAX_STEP_KWH: + return None + return value + + +def export_budget_replay(mode, pv_today, export_today, import_today, load_minutes, soc_max, cap, minutes=EXPORT_BUDGET_REPLAY_DAYS * 24 * 60, step=5, soc_history=None): + """Replay measured history (cumulative series keyed by minutes ago) through the budget rules. + + Returns (seed, noncompliant_kwh, steps). seed is (bucket, pv_share), or None when there is no usable + history. noncompliant_kwh is battery export the rules did not allow. + + pv_origin labels battery flow per step. With soc_history (stored kWh keyed by minutes ago) the flow is the + measured SoC change, starting from the stored energy at the start of the window counted as grid; a drop the + house and the meter do not explain (losses, BMS resync) comes off the PV part first. Without it the flow is + estimated as PV + import - export - load, which reads conversion losses as charge, so it is only a fallback. + Only the PV share of the stored energy is kept; the prediction applies it to the real SoC. + """ + series = [pv_today, export_today] + use_soc = False + if mode == EXPORT_BUDGET_PV_ORIGIN: + series += [import_today, load_minutes] + use_soc = bool(soc_history) + if use_soc: + series.append(soc_history) + if any(not data for data in series): + return None, 0.0, 0 + available = min([minutes] + [max(data.keys()) for data in series]) + available = (available // step) * step + bucket = 0.0 + pv_part = 0.0 + grid_part = soc_history.get(available, 0.0) if use_soc else 0.0 + noncompliant = 0.0 + steps = 0 + for ago in range(available - step, -1, -step): + pv = _replay_delta(pv_today, ago, step) + exported = _replay_delta(export_today, ago, step) + if pv is None or exported is None: + continue + if mode == EXPORT_BUDGET_PV_EQUIVALENT: + noncompliant += max(exported - (bucket + pv), 0.0) + bucket = min(max(bucket + pv - exported, 0.0), cap) + else: + imported = _replay_delta(import_today, ago, step) + load = _replay_delta(load_minutes, ago, step) + if imported is None or load is None: + continue + if use_soc: + flow = _replay_soc_delta(soc_history, ago, step) + if flow is None: + continue + else: + flow = pv + imported - exported - load + if flow > 0: + pv_in = min(flow, pv) + pv_part += pv_in + grid_part += flow - pv_in + elif flow < 0: + out = -flow + house = export_budget_house_from_battery(mode, out, load, pv) + to_grid = out - house + unexplained = 0.0 + if use_soc: + # The meter bounds what can have left for the grid; the rest is loss or a SoC resync + unexplained = max(to_grid - exported, 0.0) + to_grid -= unexplained + from_grid = min(grid_part, house) + grid_part -= from_grid + pv_part = max(pv_part - (house - from_grid), 0.0) + from_pv = min(pv_part, to_grid) + pv_part -= from_pv + excess = to_grid - from_pv + noncompliant += excess + grid_part = max(grid_part - excess, 0.0) + from_pv = min(pv_part, unexplained) + pv_part -= from_pv + grid_part = max(grid_part - (unexplained - from_pv), 0.0) + total = pv_part + grid_part + if soc_max > 0 and total > soc_max: + pv_part *= soc_max / total + grid_part *= soc_max / total + steps += 1 + if steps == 0: + return None, 0.0, 0 + if mode == EXPORT_BUDGET_PV_EQUIVALENT: + return (bucket, 0.0), noncompliant, steps + total = pv_part + grid_part + return (0.0, pv_part / total if total > 0 else 0.0), noncompliant, steps diff --git a/apps/predbat/fetch.py b/apps/predbat/fetch.py index dfef97b0e..ae59a785d 100644 --- a/apps/predbat/fetch.py +++ b/apps/predbat/fetch.py @@ -40,6 +40,7 @@ from predbat_metrics import metrics from futurerate import FutureRate from axle import fetch_axle_sessions, load_axle_slot, fetch_axle_active +from export_budget import EXPORT_BUDGET_OFF, EXPORT_BUDGET_PV_ORIGIN, EXPORT_BUDGET_MODE_NAMES, EXPORT_BUDGET_REPLAY_DAYS, parse_export_budget_mode, export_budget_replay import ast import copy @@ -1259,6 +1260,9 @@ def fetch_sensor_data(self, save=True): self.high_export_rates = [] self.octopus_slots = [[] for _ in range(self.num_cars)] self.cost_today_sofar = 0 + self.export_budget_seed = None + self.export_budget_noncompliant_kwh = 0.0 + self.export_budget_replay_steps = 0 self.carbon_today_sofar = 0 self.import_today = {} self.export_today = {} @@ -1700,6 +1704,68 @@ def fetch_sensor_data(self, save=True): force_replan = True return force_replan + def update_export_budget_seed(self): + """Replay the measured history to find where the export energy budget stands now. + + Runs after fetch_inverter_data() because the budget cap and the pv_origin parts need soc_max. + """ + self.export_budget_seed = None + self.export_budget_noncompliant_kwh = 0.0 + self.export_budget_replay_steps = 0 + if not self.export_budget_mode: + return + cap = self.export_budget_cap_kwh if self.export_budget_cap_kwh > 0 else self.soc_max + soc_history = {} + if self.export_budget_mode == EXPORT_BUDGET_PV_ORIGIN: + soc_history = self.fetch_export_budget_soc_history() + if not soc_history: + self.log("Warn: Export energy budget has no battery SoC history - estimating the battery flow from pv/import/export/load, which counts conversion losses as PV charge") + seed, noncompliant, steps = export_budget_replay(self.export_budget_mode, self.pv_today, self.export_today, self.import_today, self.load_minutes, self.soc_max, cap, soc_history=soc_history) + if seed is None: + self.log("Warn: Export energy budget has no usable pv/export/import/load history - treating nothing as exportable") + self.export_budget_seed = seed + self.export_budget_noncompliant_kwh = noncompliant + self.export_budget_replay_steps = steps + + def fetch_export_budget_soc_history(self): + """Stored kWh keyed by minutes ago over the export budget replay window, summed across inverters. + + Read from each inverter's soc_percent (or soc_kw) sensor history. Returns {} when any inverter has none, so the + replay falls back to estimating the battery flow. + """ + days = EXPORT_BUDGET_REPLAY_DAYS + 1 + total = {} + counts = {} + for inverter in self.inverters: + soc_max = getattr(inverter, "soc_max", 0) or 0 + percent_sensor = self.get_arg("soc_percent", indirect=False, index=inverter.id) + kw_sensor = self.get_arg("soc_kw", indirect=False, index=inverter.id) + sensor = percent_sensor or kw_sensor + if not isinstance(sensor, str) or not sensor or (percent_sensor and soc_max <= 0): + return {} + history = self.get_history_wrapper(entity_id=sensor, days=days, required=False) + if not history or not history[0]: + return {} + data, _ = minute_data( + history[0], + days, + self.now_utc, + "state", + "last_updated", + backwards=True, + clean_increment=False, + smoothing=False, + divide_by=1.0, + scale=soc_max / 100.0 if percent_sensor else 1.0, + required_unit="%" if percent_sensor else "kWh", + ) + if not data: + return {} + for minute, value in data.items(): + total[minute] = total.get(minute, 0.0) + value + counts[minute] = counts.get(minute, 0) + 1 + return {minute: value for minute, value in total.items() if counts[minute] == len(self.inverters)} + def fetch_sensor_data_car_planning(self): # Work out car plan? # Determine which cars are configured with Octopus Intelligent to avoid calling plan_car_charging for them @@ -3852,6 +3918,24 @@ def fetch_config_options(self): self.calculate_export_on_pv = self.get_arg("calculate_export_on_pv") self.calculate_second_pass = self.get_arg("calculate_second_pass") self.prediction_kernel_enable = self.get_arg("prediction_kernel_enable", True) + budget_arg = self.get_arg("export_budget_mode", "off") + budget_mode = parse_export_budget_mode(budget_arg) + if budget_mode is None: + self.log("Warn: export_budget_mode {} must be one of {} - export energy budget disabled".format(budget_arg, ", ".join(EXPORT_BUDGET_MODE_NAMES))) + budget_mode = EXPORT_BUDGET_OFF + self.export_budget_mode = budget_mode + cap_arg = self.get_arg("export_budget_cap_kwh", 0.0) or 0.0 + try: + budget_cap = float(cap_arg) + except (TypeError, ValueError): + budget_cap = -1.0 + if budget_cap < 0: + self.log("Warn: export_budget_cap_kwh {} must be a positive number of kWh - using the battery size".format(cap_arg)) + budget_cap = 0.0 + self.export_budget_cap_kwh = budget_cap + if budget_mode: + mode_name = [name for name, value in EXPORT_BUDGET_MODE_NAMES.items() if value == budget_mode][0] + self.log("Export energy budget enabled in {} mode".format(mode_name)) self.calculate_inday_adjustment = self.get_arg("calculate_inday_adjustment") self.calculate_regions = True self.calculate_import_low_export = self.get_arg("calculate_import_low_export") diff --git a/apps/predbat/output.py b/apps/predbat/output.py index 9ab84a2ad..22bd68db1 100644 --- a/apps/predbat/output.py +++ b/apps/predbat/output.py @@ -23,6 +23,7 @@ from predbat import THIS_VERSION_DISPLAY from const import TIME_FORMAT, PREDICT_STEP, RUN_EVERY, EXPORT_LIMIT_IDLE, MINUTE_WATT, FULL_EXPORT_POWER, EXPORT_MODE_TARGET, EXPORT_MODE_FREEZE, EXPORT_MODE_IDLE, CHARGE_STATE_PRECEDENCE, EXPORT_STATE_PRECEDENCE from utils import dp0, dp1, dp2, dp3, calc_percent_limit, minute_data, minute_data_state, find_charge_rate, export_mode_of, export_target_of, export_power_of, export_limit_sort_key, pack_export_limit, export_limit_from_stored +from export_budget import EXPORT_BUDGET_PV_EQUIVALENT, EXPORT_BUDGET_MODE_NAMES from prediction import Prediction # Per-slot plan "why" reason templates. Keyed by a stable reason code, each template is @@ -2363,6 +2364,47 @@ def today_cost(self, import_today, export_today, car_today, load_today, save=Tru ) return day_cost, carbon_g + def publish_export_budget(self): + """Publish .export_budget: battery energy the export energy budget lets Predbat export now, with the plan's forecast in results""" + if not self.export_budget_mode: + return + mode_name = [name for name, value in EXPORT_BUDGET_MODE_NAMES.items() if value == self.export_budget_mode][0] + cap = self.export_budget_cap_kwh if self.export_budget_cap_kwh > 0 else self.soc_max + seed = self.export_budget_seed + attributes = { + "friendly_name": "Export energy budget", + "state_class": "measurement", + "unit_of_measurement": "kWh", + "icon": "mdi:transmission-tower-export", + "mode": mode_name, + "cap": dp2(cap), + "planned_battery_export_kwh": dp2(self.export_budget_planned_battery_export), + "noncompliant_export_kwh": dp2(self.export_budget_noncompliant_kwh), + "history_steps": self.export_budget_replay_steps, + } + if self.export_budget_mode == EXPORT_BUDGET_PV_EQUIVALENT: + state = seed[0] if seed else 0.0 + else: + pv_part = self.soc_kw * (seed[1] if seed else 0.0) + state = pv_part + attributes["pv_part_kwh"] = dp2(pv_part) + attributes["grid_part_kwh"] = dp2(self.soc_kw - pv_part) + # Forecast from the best plan: the budget now, then the budget at the end of each step + forecast = {(self.midnight_utc + timedelta(minutes=self.minutes_now)).strftime(TIME_FORMAT): dp2(state)} + for minute, value in self.predict_export_budget.items(): + forecast[(self.midnight_utc + timedelta(minutes=self.minutes_now + minute + PREDICT_STEP)).strftime(TIME_FORMAT)] = dp2(value) + attributes["results"] = self.filtered_times(forecast) + self.dashboard_item(self.prefix + ".export_budget", state=dp2(state), attributes=attributes) + self.log( + "Export energy budget ({}): {} kWh exportable now, planned battery export {} kWh, non-compliant export in the last {} days {} kWh".format( + mode_name, dp2(state), dp2(self.export_budget_planned_battery_export), dp1(self.export_budget_replay_steps * 5 / (24 * 60)), dp2(self.export_budget_noncompliant_kwh) + ) + ) + capped = set(self.export_budget_capped_minutes) + for window in self.export_window_best: + if window["start"] in self.manual_export_times and any(window["start"] <= minute < window["end"] for minute in capped): + self.log("Export energy budget capped manual export {} - {}: the budget does not allow the full export".format(self.time_abs_str(window["start"]), self.time_abs_str(window["end"]))) + def publish_export_limit(self, export_window, export_limits, best): """ Create entity to chart export limit @@ -3386,6 +3428,7 @@ def calculate_yesterday(self): midnight_utc = self.midnight_utc forecast_minutes = self.forecast_minutes cost_today_sofar = self.cost_today_sofar + export_budget_seed = self.export_budget_seed import_today_now = self.import_today_now export_today_now = self.export_today_now pv_today_now = self.pv_today_now @@ -3408,6 +3451,7 @@ def calculate_yesterday(self): # Fake to yesterday state self.minutes_now = 0 self.cost_today_sofar = 0 + self.export_budget_seed = None self.import_today_now = 0 self.export_today_now = 0 self.carbon_today_sofar = 0 @@ -3785,6 +3829,7 @@ def calculate_yesterday(self): self.midnight_utc = midnight_utc self.forecast_minutes = forecast_minutes self.cost_today_sofar = cost_today_sofar + self.export_budget_seed = export_budget_seed self.import_today_now = import_today_now self.export_today_now = export_today_now self.carbon_today_sofar = carbon_today_sofar diff --git a/apps/predbat/plan.py b/apps/predbat/plan.py index 57332b6ef..44ab06b98 100644 --- a/apps/predbat/plan.py +++ b/apps/predbat/plan.py @@ -39,7 +39,9 @@ EXPORT_MODE_TARGET, EXPORT_MODE_FREEZE, EXPORT_MODE_IDLE, + RUN_EVERY, ) +from export_budget import EXPORT_BUDGET_PV_EQUIVALENT, export_budget_floor_percent from utils import ( calc_percent_limit, @@ -2209,13 +2211,18 @@ def calculate_plan(self, recompute=True, debug_mode=False, publish=True): self.export_limits_best, False, end_record=self.end_record, + save="clip" if self.export_budget_mode else None, ) # Work out record windows record_export_windows = max(self.max_charge_windows(self.end_record + self.minutes_now, self.export_window_best), 1) - # Export slot clipping - self.export_window_best, self.export_limits_best = self.clip_export_slots(self.minutes_now, self.predict_soc, self.export_window_best, self.export_limits_best, record_export_windows, PREDICT_STEP) + # Export slot clipping. With the export energy budget on, the run above was a saving (Python) run + # so clipping can see what the budget allows at the start of each window + budget_clip = {} + if self.export_budget_mode: + budget_clip = {"budget_exportable": self.prediction.predict_export_budget_start} + self.export_window_best, self.export_limits_best = self.clip_export_slots(self.minutes_now, self.predict_soc, self.export_window_best, self.export_limits_best, record_export_windows, PREDICT_STEP, **budget_clip) # Filter out the windows we disabled during clipping self.export_limits_best, self.export_window_best = self.discard_unused_export_slots(self.export_limits_best, self.export_window_best) @@ -2310,6 +2317,10 @@ def calculate_plan(self, recompute=True, debug_mode=False, publish=True): self.plan_last_updated = self.now_utc self.plan_last_updated_minutes = self.minutes_now + # Export energy budget: re-check the export running now against the measured state every cycle, so a kept + # plan or a plan clipped from an earlier forecast can never command more export than the budget allows + self.apply_export_budget_floor() + # Final simulation of base metric, import_kwh_battery, import_kwh_house, export_kwh, soc_min, soc, soc_min_minute, battery_cycle, metric_keep, final_iboost, final_carbon_g = self.run_prediction( self.charge_limit, self.charge_window, self.export_window, self.export_limits, False, save="base" if publish else None, end_record=self.end_record @@ -2394,6 +2405,7 @@ def calculate_plan(self, recompute=True, debug_mode=False, publish=True): if publish: self.publish_charge_limit(self.charge_limit_best, self.charge_window_best, best=True, soc=self.predict_soc_best) self.publish_export_limit(self.export_window_best, self.export_limits_best, best=True) + self.publish_export_budget() # Compute marginal energy cost matrix (what-if extra load scenarios) self.calculate_marginal_costs() @@ -3663,9 +3675,35 @@ def clip_charge_slots(self, minutes_now, predict_soc, charge_window_best, charge window["target"] = 0 return charge_window_best, charge_limit_best - def clip_export_slots(self, minutes_now, predict_soc, export_window_best, export_limits_best, record_export_windows, step): + def apply_export_budget_floor(self): + """Hold export windows running now, or starting before the next cycle, at or above the measured SoC minus the + energy the export budget allows now (seeded from history every cycle). The inverter force exports at full power + down to the target while the battery also covers the house, so a lower target could sell more than the budget. + """ + if not self.export_budget_mode: + return + seed = self.export_budget_seed + if self.export_budget_mode == EXPORT_BUDGET_PV_EQUIVALENT: + stored_to_ac = self.battery_loss_discharge * self.inverter_loss + exportable = seed[0] / stored_to_ac if seed and stored_to_ac > 0 else 0.0 + else: + exportable = self.soc_kw * seed[1] if seed else 0.0 + floor_percent = export_budget_floor_percent(self.soc_kw, exportable, self.soc_max) + for window_n, window in enumerate(self.export_window_best): + limit = self.export_limits_best[window_n] + if window["start"] >= self.minutes_now + RUN_EVERY or window["end"] <= self.minutes_now or export_mode_of(limit) != EXPORT_MODE_TARGET: + continue + if (export_target_of(limit) or 0) < floor_percent: + self.export_limits_best[window_n] = pack_export_limit(EXPORT_MODE_TARGET, floor_percent, export_power_of(limit)) + window["target"] = max(window.get("target", 0), float(floor_percent)) + self.log("Export energy budget: export {} - {} target raised to {}% (SoC {} kWh, exportable {} kWh)".format(self.time_abs_str(window["start"]), self.time_abs_str(window["end"]), floor_percent, dp2(self.soc_kw), dp2(exportable))) + + def clip_export_slots(self, minutes_now, predict_soc, export_window_best, export_limits_best, record_export_windows, step, budget_exportable=None): """ Clip export slots to the right length + + budget_exportable ({relative minute: stored kWh the export energy budget allows from the start of that step}) + comes from a saving prediction run when the budget is on, see the budget floor below. """ for window_n in range(min(record_export_windows, len(export_window_best))): window = export_window_best[window_n] @@ -3720,6 +3758,17 @@ def clip_export_slots(self, minutes_now, predict_soc, export_window_best, export export_limits_best[window_n] = pack_export_limit(EXPORT_MODE_TARGET, calc_percent_limit(limit_soc, self.soc_max), export_power_of(limit)) if limit != export_limits_best[window_n] and self.debug_enable: self.log("Clip up export window {} from {} - {} from limit {} to new limit {} target set to {}".format(window_n, window_start, window_end, limit, export_limits_best[window_n], window["target"])) + + # Export energy budget: the inverter force exports at full power down to the target, and the battery + # also covers the house meanwhile, so a target below the start SoC minus the exportable budget could + # sell more than the budget allows. Never command below that floor; rounded up so it never allows more. + if self.export_budget_mode and budget_exportable is not None and export_mode_of(limit) == EXPORT_MODE_TARGET and predict_minute_start in budget_exportable: + floor_percent = export_budget_floor_percent(predict_soc[predict_minute_start], budget_exportable[predict_minute_start], self.soc_max) + current = export_limits_best[window_n] + if floor_percent > (export_target_of(current) or 0): + export_limits_best[window_n] = pack_export_limit(EXPORT_MODE_TARGET, floor_percent, export_power_of(current)) + window["target"] = max(window["target"], float(floor_percent)) + self.log("Export energy budget: export window {} - {} target raised to {}% so the inverter only exports what the budget allows".format(self.time_abs_str(window["start"]), self.time_abs_str(window["end"]), floor_percent)) else: self.log("Warn: Clip export window {} as it's already passed".format(window_n)) export_limits_best[window_n] = pack_export_limit(EXPORT_MODE_IDLE) @@ -5178,6 +5227,9 @@ def run_prediction(self, charge_limit, charge_window, export_window, export_limi self.predict_carbon_best = pred.predict_carbon_best self.predict_clipped_best = pred.predict_clipped_best self.predict_car_hold_best = pred.predict_car_hold_best + self.predict_export_budget = pred.predict_export_budget + self.export_budget_capped_minutes = pred.export_budget_capped_minutes + self.export_budget_planned_battery_export = pred.export_budget_planned_battery_export if save: self.log( diff --git a/apps/predbat/predbat.py b/apps/predbat/predbat.py index c81c57028..0b9793e0e 100644 --- a/apps/predbat/predbat.py +++ b/apps/predbat/predbat.py @@ -708,6 +708,14 @@ def reset(self): self.github_url_cache_loaded = False self.load_forecast_history = False self.prediction_kernel_enable = False + self.export_budget_mode = 0 + self.export_budget_cap_kwh = 0.0 + self.export_budget_seed = None + self.export_budget_noncompliant_kwh = 0.0 + self.export_budget_replay_steps = 0 + self.export_budget_planned_battery_export = 0.0 + self.export_budget_capped_minutes = [] + self.predict_export_budget = {} for root in CONFIG_ROOTS: if os.path.exists(root): @@ -1128,6 +1136,7 @@ def update_pred(self, scheduled=True): self.record_status("Error: Failed to fetch inverter data, not able to compute a plan", had_errors=True) return self.check_export_more_solar_effective() + self.update_export_budget_seed() self.log_replay_state() self.log_replay_inverter() diff --git a/apps/predbat/prediction.py b/apps/predbat/prediction.py index d5310117b..fd3b54260 100644 --- a/apps/predbat/prediction.py +++ b/apps/predbat/prediction.py @@ -34,6 +34,7 @@ export_target_of, pack_export_limit, ) +from export_budget import EXPORT_BUDGET_OFF, EXPORT_BUDGET_PV_EQUIVALENT, export_budget_battery_export_allowed, export_budget_house_from_battery, export_budget_update from prediction_batch import PredictionBatch, prediction_cache_key from prediction_kernel import create_kernel_context, kernel_supported, run_prediction_kernel @@ -124,6 +125,9 @@ def __init__( self.car_energy_reported_load = base.car_energy_reported_load self.reserve = base.reserve self.metric_standing_charge = base.metric_standing_charge + self.export_budget_mode = getattr(base, "export_budget_mode", EXPORT_BUDGET_OFF) + self.export_budget_cap_kwh = getattr(base, "export_budget_cap_kwh", 0.0) + self.export_budget_seed = getattr(base, "export_budget_seed", None) self.set_charge_freeze = base.set_charge_freeze self.set_reserve_enable = base.set_reserve_enable self.set_export_freeze = base.set_export_freeze @@ -728,12 +732,28 @@ def run_prediction(self, charge_limit, charge_window, export_window, export_limi pv_remaining += pv_forecast_minute_step_flat.get(minute_step, 0.0) pv_remaining_kwh[minute_step] = pv_remaining + # Export energy budget (export_budget_mode, see export_budget.py): pv_equivalent tracks a bucket of + # exportable energy, pv_origin splits the stored energy into a PV part and a grid part. Starts from + # the measured history (Fetch.update_export_budget_seed); without a seed nothing is exportable. + budget_mode = self.export_budget_mode + budget_cap = self.export_budget_cap_kwh if self.export_budget_cap_kwh > 0 else self.soc_max + budget_seed = self.export_budget_seed if budget_mode else None + budget_bucket = budget_seed[0] if budget_seed else 0.0 + budget_pv_part = soc * budget_seed[1] if budget_seed else 0.0 + budget_grid_part = soc - budget_pv_part + budget_stored_to_ac = battery_loss_discharge * inverter_loss + predict_export_budget = {} + predict_export_budget_start = {} + export_budget_capped_minutes = [] + planned_battery_export = 0.0 + # Simulate each forward minute minute = 0 while minute < self.forecast_minutes: # Minute yesterday can wrap if days_previous is only 1 minute_absolute = minute + self.minutes_now prev_soc = soc + budget_forced = False reserve_expected = reserve import_rate = rate_import.get(minute_absolute, 0) dispatch_rate = import_rate @@ -988,6 +1008,7 @@ def run_prediction(self, charge_limit, charge_window, export_window, export_limi discharge_min = max(soc_max * export_limit_percent / 100.0, reserve, self.best_soc_min) if not set_export_freeze_only and export_window_active and export_mode_now == EXPORT_MODE_TARGET and (soc > discharge_min): + budget_forced = True # Discharge enable, capped at export limit if self.set_export_low_power: export_rate_adjust = export_power_of(export_limit_now) @@ -1318,6 +1339,31 @@ def run_prediction(self, charge_limit, charge_window, export_window, export_limi pv_ac = max(pv_ac - over_limit, 0) clipped_today += pv_ac_before - pv_ac + # Export energy budget - in a forced export step the battery may only export what the budget allows; + # whatever serves on-site load is never capped + budget_house_frac = 1.0 + if budget_mode and save: + # Stored energy the battery may export from the start of this step (clip_export_slots' target floor) + predict_export_budget_start[minute] = budget_pv_part if budget_mode != EXPORT_BUDGET_PV_EQUIVALENT else (budget_bucket / budget_stored_to_ac if budget_stored_to_ac > 0 else 0.0) + if budget_mode and battery_draw > 0: + battery_ac = battery_draw * inverter_loss + house_from_battery_ac = export_budget_house_from_battery(budget_mode, battery_ac, load_yesterday, pv_ac) + battery_export_ac = battery_ac - house_from_battery_ac + if budget_forced and battery_export_ac > 0: + allowed = export_budget_battery_export_allowed(budget_mode, budget_bucket, budget_pv_part, budget_grid_part, pv_now, max(pv_ac - load_yesterday, 0.0), house_from_battery_ac, budget_stored_to_ac) + if battery_export_ac > allowed: + battery_draw -= (battery_export_ac - allowed) / inverter_loss + battery_ac = battery_draw * inverter_loss + battery_export_ac = allowed + # The iBoost solar excess below must only see the export left after the cap + diff = get_diff(battery_draw, pv_dc, pv_ac, load_yesterday, inverter_loss, inverter_loss_recp) + if save: + export_budget_capped_minutes.append(minute_absolute) + budget_house_frac = house_from_battery_ac / battery_ac if battery_ac > 0 else 1.0 + if record: + planned_battery_export += battery_export_ac + budget_soc_before = soc + # Adjust battery soc if battery_draw > 0: soc = max(soc - battery_draw / battery_loss_discharge, reserve_expected) @@ -1361,6 +1407,14 @@ def run_prediction(self, charge_limit, charge_window, export_window, export_limi # The car in a dispatch that has gone away is met by the grid (or PV surplus), never the battery diff += car_gone_kwh + if budget_mode: + budget_export = 0.0 + if diff < 0: + budget_export = max(0.0, -diff - car_load_energy_bypass) if not car_energy_reported_load else -diff + budget_bucket, budget_pv_part, budget_grid_part = export_budget_update(budget_mode, budget_bucket, budget_pv_part, budget_grid_part, budget_soc_before, soc, max(-battery_draw, 0.0), pv_now, budget_house_frac, budget_export, budget_cap) + if save: + predict_export_budget[minute] = round(budget_bucket if budget_mode == EXPORT_BUDGET_PV_EQUIVALENT else budget_pv_part, 4) + # Metric keep - pretend the battery is empty and you have to import instead of using the battery if best_soc_keep > 0 and soc <= best_soc_keep: metric_keep += (best_soc_keep - soc) * import_rate * keep_minute_scaling * step / 60.0 @@ -1507,6 +1561,10 @@ def run_prediction(self, charge_limit, charge_window, export_window, export_limi self.record_time = record_time self.predict_battery_cycle = predict_battery_cycle self.predict_soc = predict_soc + self.predict_export_budget = predict_export_budget + self.predict_export_budget_start = predict_export_budget_start + self.export_budget_capped_minutes = export_budget_capped_minutes + self.export_budget_planned_battery_export = round(planned_battery_export, 4) self.pv_kwh_h0 = round(pv_kwh_h0, 4) self.import_kwh_h0 = round(import_kwh_h0, 4) self.export_kwh_h0 = round(export_kwh_h0, 4) diff --git a/apps/predbat/prediction_kernel.cpp b/apps/predbat/prediction_kernel.cpp index 9c78828e9..fc807e52b 100644 --- a/apps/predbat/prediction_kernel.cpp +++ b/apps/predbat/prediction_kernel.cpp @@ -50,7 +50,8 @@ // ABI 7: export limits are packed as PkExportLimit structs (array-of-structs) rather than those // three arrays. Same three fields, but one buffer and one stride, with the (99.0, 100.0) gap gone // because mode is explicit (GH#4914). -#define PK_ABI_VERSION 7 +// ABI 8: PkContext gained export_budget_mode, export_budget_cap and the export budget seed at the end. +#define PK_ABI_VERSION 8 // Parity 14: the explicit (mode, target, power) fields replace the packed double throughout the hot // loop (see the ABI 6 note); the floor a target exports to now reads the target field, matching // prediction.py. @@ -61,7 +62,9 @@ // across cars, which counted the first car once per car (GH#5313). // Parity 17: a dispatch assumed gone pays the greater of rate_max (now the tariff's own highest import // rate, without saving session or Axle rewards) and the slot's own rate (#5163). -#define PK_PARITY_REVISION 17 +// Parity 18: optional export energy budget (export_budget_mode) caps forced battery export, mirroring +// export_budget.py; a capped step recomputes the grid balance before the iBoost solar excess. +#define PK_PARITY_REVISION 18 #define PK_MAX_CARS 8 #define PK_RUN_EVERY 5 // const.py RUN_EVERY #define PK_EXPORT_MODE_TARGET 0 // const.py EXPORT_MODE_TARGET @@ -83,6 +86,61 @@ struct PkExportLimit { }; inline bool pk_export_is_idle(int32_t mode) { return mode == PK_EXPORT_MODE_IDLE; } + +// Export energy budget - mirror of export_budget.py (export_budget_battery_export_allowed / export_budget_update) +#define PK_EXPORT_BUDGET_PV_ORIGIN 1 +#define PK_EXPORT_BUDGET_PV_EQUIVALENT 2 + +inline double pk_export_budget_house_from_battery(int32_t mode, double battery_out, double load, double pv) +{ + if (mode == PK_EXPORT_BUDGET_PV_ORIGIN) { + return std::min(battery_out, std::max(load, 0.0)); + } + return std::min(battery_out, std::max(load - pv, 0.0)); +} + +inline double pk_export_budget_allowed(int32_t mode, double bucket, double pv_part, double grid_part, double pv_now, double pv_direct_export, double house_from_battery_ac, double stored_to_ac) +{ + if (mode == PK_EXPORT_BUDGET_PV_EQUIVALENT) { + return std::max(bucket + pv_now - pv_direct_export, 0.0); + } + const double house_stored = stored_to_ac > 0 ? house_from_battery_ac / stored_to_ac : 0.0; + const double pv_left = std::max(pv_part - std::max(house_stored - grid_part, 0.0), 0.0); + return pv_left * stored_to_ac; +} + +inline void pk_export_budget_update(int32_t mode, double &bucket, double &pv_part, double &grid_part, double soc_before, double soc_after, double charge_kwh, double pv_now, double house_frac, double export_kwh, double cap) +{ + if (mode == PK_EXPORT_BUDGET_PV_EQUIVALENT) { + bucket = std::min(std::max(bucket + pv_now - export_kwh, 0.0), cap); + return; + } + const double delta = soc_after - soc_before; + if (delta > 0) { + const double pv_frac = charge_kwh > 0 ? std::min(charge_kwh, pv_now) / charge_kwh : 0.0; + pv_part += delta * pv_frac; + grid_part += delta * (1.0 - pv_frac); + } else if (delta < 0) { + const double removed = -delta; + const double removed_house = removed * house_frac; + const double removed_export = removed - removed_house; + const double from_grid = std::min(grid_part, removed_house); + grid_part -= from_grid; + pv_part = std::max(pv_part - (removed_house - from_grid), 0.0); + const double from_pv = std::min(pv_part, removed_export); + pv_part -= from_pv; + grid_part = std::max(grid_part - (removed_export - from_pv), 0.0); + } + const double total = pv_part + grid_part; + if (total > 0) { + const double scale = soc_after / total; + pv_part *= scale; + grid_part *= scale; + } else { + pv_part = 0.0; + grid_part = soc_after; + } +} inline bool pk_export_is_freeze(int32_t mode) { return mode == PK_EXPORT_MODE_FREEZE; } @@ -265,6 +323,10 @@ struct PkContext { int32_t iboost_on_export; int32_t has_rate_gas; int32_t has_iboost_plan; + int32_t export_budget_mode; // 0 off, 1 pv_origin, 2 pv_equivalent + double export_budget_cap; // kWh, resolved (soc_max when not configured) + double export_budget_seed_bucket; // pv_equivalent bucket at minutes_now + double export_budget_seed_pv_share; // pv_origin share of the stored energy that is PV }; // Per-scenario inputs; field order MUST match the ctypes Structure in prediction_kernel.py. @@ -765,11 +827,21 @@ static int32_t pk_run_one(const ContextStore *store, const PkScenario *s, PkResu const double *pv_step = is_pv10 ? c->pv10 : (is_pv90 ? c->pv90 : c->pv); const double *load_step = is_pv10 ? c->load10 : (is_pv90 ? c->load90 : c->load); + + // Export energy budget state - prediction.py run_prediction budget block + const int32_t budget_mode = c->export_budget_mode; + const double budget_cap = c->export_budget_cap; + double budget_bucket = budget_mode ? c->export_budget_seed_bucket : 0.0; + double budget_pv_part = budget_mode ? soc * c->export_budget_seed_pv_share : 0.0; + double budget_grid_part = soc - budget_pv_part; + const double budget_stored_to_ac = battery_loss_discharge * inverter_loss; + // Simulate each forward step - prediction.py:570-1200 for (int32_t k = 0; k < n_steps; k++) { const int32_t minute = k * step; const int32_t minute_absolute = minute + c->minutes_now; double reserve_expected = reserve; + bool budget_forced = false; // Rates - prediction.py:577-580 double import_rate = c->rate_import[k]; @@ -1026,6 +1098,7 @@ static int32_t pk_run_one(const ContextStore *store, const PkScenario *s, PkResu // engine already asks the mode here (prediction.py:918), so this also ends a real divergence // between the two: the comment claiming bit-parity on this line was already out of date. if (!c->set_export_freeze_only && export_window_active && export_mode_now == PK_EXPORT_MODE_TARGET && (soc > discharge_min)) { + budget_forced = true; // Force export - prediction.py:795-902 double export_rate_adjust = 1.0; if (c->set_export_low_power) { @@ -1291,6 +1364,25 @@ static int32_t pk_run_one(const ContextStore *store, const PkScenario *s, PkResu pv_ac = std::max(pv_ac - over_limit, 0.0); } + // Export energy budget - cap forced battery export (prediction.py) + double budget_house_frac = 1.0; + if (budget_mode && battery_draw > 0) { + double battery_ac = battery_draw * inverter_loss; + const double house_from_battery_ac = pk_export_budget_house_from_battery(budget_mode, battery_ac, load_yesterday, pv_ac); + const double battery_export_ac = battery_ac - house_from_battery_ac; + if (budget_forced && battery_export_ac > 0) { + const double allowed = pk_export_budget_allowed(budget_mode, budget_bucket, budget_pv_part, budget_grid_part, pv_now, std::max(pv_ac - load_yesterday, 0.0), house_from_battery_ac, budget_stored_to_ac); + if (battery_export_ac > allowed) { + battery_draw -= (battery_export_ac - allowed) / inverter_loss; + battery_ac = battery_draw * inverter_loss; + // The iBoost solar excess below must only see the export left after the cap + diff = get_diff(battery_draw, pv_dc, pv_ac, load_yesterday, inverter_loss, inverter_loss_recp); + } + } + budget_house_frac = battery_ac > 0 ? house_from_battery_ac / battery_ac : 1.0; + } + const double budget_soc_before = soc; + // Adjust battery soc - prediction.py:1060-1064 if (battery_draw > 0) { soc = std::max(soc - battery_draw / battery_loss_discharge, reserve_expected); @@ -1344,6 +1436,14 @@ static int32_t pk_run_one(const ContextStore *store, const PkScenario *s, PkResu diff += car_gone_kwh; } + if (budget_mode) { + double budget_export = 0.0; + if (diff < 0) { + budget_export = !c->car_energy_reported_load ? std::max(0.0, -diff - car_load_energy_bypass) : -diff; + } + pk_export_budget_update(budget_mode, budget_bucket, budget_pv_part, budget_grid_part, budget_soc_before, soc, std::max(-battery_draw, 0.0), pv_now, budget_house_frac, budget_export, budget_cap); + } + // Metric keep - prediction.py:1100-1102 if (best_soc_keep > 0 && soc <= best_soc_keep) { metric_keep += (best_soc_keep - soc) * import_rate * keep_minute_scaling * step / 60.0; diff --git a/apps/predbat/prediction_kernel.py b/apps/predbat/prediction_kernel.py index dfb9a80be..c4ea3e7d2 100644 --- a/apps/predbat/prediction_kernel.py +++ b/apps/predbat/prediction_kernel.py @@ -32,8 +32,8 @@ from utils import get_curve_value, find_battery_temperature_cap, in_car_slot, in_iboost_slot, export_limit_from_stored # Expected ABI/parity revisions of the shared library (see prediction_kernel.cpp) -KERNEL_ABI_VERSION = 7 -KERNEL_PARITY_REVISION = 17 +KERNEL_ABI_VERSION = 8 +KERNEL_PARITY_REVISION = 18 # Maximum number of cars supported by the kernel (PK_MAX_CARS in prediction_kernel.cpp) KERNEL_MAX_CARS = PREDBAT_MAX_CARS @@ -137,6 +137,10 @@ class PkContext(ctypes.Structure): ("iboost_on_export", ctypes.c_int32), ("has_rate_gas", ctypes.c_int32), ("has_iboost_plan", ctypes.c_int32), + ("export_budget_mode", ctypes.c_int32), + ("export_budget_cap", ctypes.c_double), + ("export_budget_seed_bucket", ctypes.c_double), + ("export_budget_seed_pv_share", ctypes.c_double), ] @@ -830,6 +834,11 @@ def create_kernel_context(pred, static_cache=None): ctx.iboost_on_export = 1 if pred.iboost_on_export else 0 ctx.has_rate_gas = 1 if pred.rate_gas else 0 ctx.has_iboost_plan = 1 if pred.iboost_plan else 0 + ctx.export_budget_mode = int(getattr(pred, "export_budget_mode", 0) or 0) + budget_cap = getattr(pred, "export_budget_cap_kwh", 0.0) or 0.0 + ctx.export_budget_cap = budget_cap if budget_cap > 0 else pred.soc_max + budget_seed = getattr(pred, "export_budget_seed", None) if ctx.export_budget_mode else None + ctx.export_budget_seed_bucket, ctx.export_budget_seed_pv_share = budget_seed if budget_seed else (0.0, 0.0) handle = lib.pk_context_create(ctypes.byref(ctx)) if handle: diff --git a/apps/predbat/tests/test_execute.py b/apps/predbat/tests/test_execute.py index 0f1b7fd46..15f61b2bb 100644 --- a/apps/predbat/tests/test_execute.py +++ b/apps/predbat/tests/test_execute.py @@ -3373,6 +3373,32 @@ def run_execute_tests(my_predbat): if failed: return failed + # Export energy budget: a kept plan's export to 0% must be raised to the measured floor before it reaches the + # inverter - 9 kWh stored, 10% of it PV (0.9 kWh exportable), so the target is 81% + saved_budget = (my_predbat.export_budget_mode, my_predbat.export_budget_seed) + my_predbat.export_budget_mode = 1 + my_predbat.export_budget_seed = (0.0, 0.1) + try: + failed |= run_execute_test( + my_predbat, + "export_budget_floor", + export_window_best=[{"start": my_predbat.minutes_now, "end": my_predbat.minutes_now + 60, "average": 1}], + export_limits_best=[0], + assert_force_export=True, + set_charge_window=True, + set_export_window=True, + soc_kw=9, + assert_status="Exporting", + assert_immediate_soc_target=81, + assert_discharge_start_time_minutes=my_predbat.minutes_now, + assert_discharge_end_time_minutes=my_predbat.minutes_now + 60 + 1, + update_plan=True, + ) + finally: + my_predbat.export_budget_mode, my_predbat.export_budget_seed = saved_budget + if failed: + return failed + # Test inverter_limit_export: discharge rate during forced export should be capped to battery_max_export_rate (500) not battery_max_rate (1000) failed |= run_execute_test( my_predbat, diff --git a/apps/predbat/tests/test_export_budget.py b/apps/predbat/tests/test_export_budget.py new file mode 100644 index 000000000..25698c384 --- /dev/null +++ b/apps/predbat/tests/test_export_budget.py @@ -0,0 +1,722 @@ +# ----------------------------------------------------------------------------- +# Predbat Home Battery System +# Copyright Trefor Southwell 2026 - All Rights Reserved +# This application maybe used for personal use only and not for commercial use +# ----------------------------------------------------------------------------- +# fmt off +# pylint: disable=consider-using-f-string +# pylint: disable=line-too-long +# pylint: disable=attribute-defined-outside-init +"""Tests for the export energy budget (export_budget_mode)""" + +import copy +from datetime import timedelta + +from const import PV_SCENARIO_NOMINAL, TIME_FORMAT +from prediction import Prediction +from utils import unpack_export_limit +from tests.test_infra import FIXTURE_MINUTES_NOW, reset_inverter, reset_rates +from export_budget import ( + EXPORT_BUDGET_OFF, + EXPORT_BUDGET_PV_ORIGIN, + EXPORT_BUDGET_PV_EQUIVALENT, + parse_export_budget_mode, + export_budget_battery_export_allowed, + export_budget_house_from_battery, + export_budget_update, + export_budget_replay, +) + + +def reset_budget_base(my_predbat, minutes_now, import_rate=10.0, export_rate=5.0): + """Put my_predbat into a known state for the export budget scenarios. + + Earlier tests leave overrides on the shared fixture, so everything these scenarios depend on is set + explicitly here rather than inherited. + """ + reset_inverter(my_predbat) + # After reset_inverter, which pins minutes_now to the fixture clock, and before reset_rates so the + # rate tables cover the shifted horizon + my_predbat.minutes_now = minutes_now + reset_rates(my_predbat, import_rate, export_rate) + my_predbat.battery_rate_max_export = my_predbat.battery_rate_max_discharge + my_predbat.inverter_hybrid = False + my_predbat.inverter_can_charge_during_export = True + my_predbat.inverter_support_feedin_first = False + my_predbat.inverter_freeze_export_discharge_rate = 0.0 + my_predbat.set_charge_freeze = False + my_predbat.set_reserve_enable = False + my_predbat.set_export_freeze = False + my_predbat.set_export_freeze_only = False + my_predbat.set_discharge_during_charge = True + my_predbat.set_export_low_power = False + my_predbat.battery_charge_power_curve = {} + my_predbat.battery_discharge_power_curve = {} + my_predbat.battery_temperature = 20 + my_predbat.battery_temperature_prediction = {} + my_predbat.best_soc_keep = 0.0 + my_predbat.best_soc_keep_weight = 0.5 + my_predbat.io_adjusted = {} + my_predbat.all_active_keep = {} + my_predbat.all_active_keep_max = {} + my_predbat.carbon_enable = False + my_predbat.carbon_intensity = {} + my_predbat.num_cars = 0 + my_predbat.car_energy_reported_load = True + my_predbat.iboost_enable = False + my_predbat.iboost_plan = [] + my_predbat.rate_gas = {} + my_predbat.export_budget_mode = 0 + my_predbat.export_budget_cap_kwh = 0.0 + my_predbat.export_budget_seed = None + + +def close(a, b, tol=1e-9): + """Float comparison helper""" + return abs(a - b) <= tol + + +def cumulative(steps, step=5): + """Build a Predbat-style cumulative series keyed by minutes ago from per-step energies listed oldest first""" + total_minutes = len(steps) * step + data = {} + running = 0.0 + data[total_minutes] = 0.0 + for index, energy in enumerate(steps): + running += energy + data[total_minutes - (index + 1) * step] = running + return data + + +def check(failed, condition, message): + """Print and record a failure""" + if not condition: + print("ERROR: export_budget: " + message) + return True + return failed + + +def test_parse_mode(): + """apps.yaml values map to mode constants, unknown values to None""" + failed = False + failed = check(failed, parse_export_budget_mode(None) == EXPORT_BUDGET_OFF, "None -> off") + failed = check(failed, parse_export_budget_mode(False) == EXPORT_BUDGET_OFF, "False -> off") + failed = check(failed, parse_export_budget_mode("off") == EXPORT_BUDGET_OFF, "off") + failed = check(failed, parse_export_budget_mode(" PV_Origin ") == EXPORT_BUDGET_PV_ORIGIN, "pv_origin, case/space insensitive") + failed = check(failed, parse_export_budget_mode("pv_equivalent") == EXPORT_BUDGET_PV_EQUIVALENT, "pv_equivalent") + failed = check(failed, parse_export_budget_mode("pv_origin_house_first") is None, "removed pv_origin_house_first -> None") + failed = check(failed, parse_export_budget_mode("surplus_only") is None, "unknown -> None") + failed = check(failed, parse_export_budget_mode(3) is None, "number -> None") + return failed + + +def test_allowed(): + """Allowed battery export per mode""" + failed = False + # pv_equivalent: bucket 1 + pv 0.3 - PV already exported directly 0.2 + failed = check(failed, close(export_budget_battery_export_allowed(EXPORT_BUDGET_PV_EQUIVALENT, 1.0, 0, 0, 0.3, 0.2, 0, 1.0), 1.1), "pv_equivalent allowance") + failed = check(failed, close(export_budget_battery_export_allowed(EXPORT_BUDGET_PV_EQUIVALENT, 0.0, 0, 0, 0.1, 0.4, 0, 1.0), 0.0), "pv_equivalent floor 0") + # pv_origin: house takes 0.5 stored, grid part 0.3 covers part of it, the rest (0.2) comes from pv 1.0 -> 0.8 left + failed = check(failed, close(export_budget_battery_export_allowed(EXPORT_BUDGET_PV_ORIGIN, 0, 1.0, 0.3, 0, 0, 0.5, 1.0), 0.8), "pv_origin house uses grid first") + # stored_to_ac 0.9: house AC 0.45 = 0.5 stored, all from grid part 2.0, pv 1.0 left -> 0.9 AC + failed = check(failed, close(export_budget_battery_export_allowed(EXPORT_BUDGET_PV_ORIGIN, 0, 1.0, 2.0, 0, 0, 0.45, 0.9), 0.9), "pv_origin losses") + return failed + + +def test_house_from_battery(): + """Battery output that counts as serving on-site load: pv_origin all of it up to the load, pv_equivalent only what PV leaves uncovered""" + failed = False + # PV 1.0 covers the 0.5 load: pv_origin counts 0.5 of the battery's 0.8 as house, pv_equivalent none + failed = check(failed, close(export_budget_house_from_battery(EXPORT_BUDGET_PV_ORIGIN, 0.8, 0.5, 1.0), 0.5), "pv_origin PV covers load") + failed = check(failed, close(export_budget_house_from_battery(EXPORT_BUDGET_PV_EQUIVALENT, 0.8, 0.5, 1.0), 0.0), "pv_equivalent PV covers load") + # PV 0.2 of a 0.5 load: pv_origin 0.5, pv_equivalent 0.3 + failed = check(failed, close(export_budget_house_from_battery(EXPORT_BUDGET_PV_ORIGIN, 0.8, 0.5, 0.2), 0.5), "pv_origin part load") + failed = check(failed, close(export_budget_house_from_battery(EXPORT_BUDGET_PV_EQUIVALENT, 0.8, 0.5, 0.2), 0.3), "pv_equivalent part load") + # Never more than the battery delivers + failed = check(failed, close(export_budget_house_from_battery(EXPORT_BUDGET_PV_ORIGIN, 0.3, 0.5, 0.0), 0.3), "pv_origin capped by battery") + return failed + + +def test_update_pv_equivalent(): + """Bucket fills with PV, drains with export, clamps to [0, cap]""" + failed = False + bucket, _, _ = export_budget_update(EXPORT_BUDGET_PV_EQUIVALENT, 1.0, 0, 0, 5, 5, 0, 0.5, 1.0, 0.2, 7.1) + failed = check(failed, close(bucket, 1.3), "fill/drain") + bucket, _, _ = export_budget_update(EXPORT_BUDGET_PV_EQUIVALENT, 7.0, 0, 0, 5, 5, 0, 0.5, 1.0, 0.0, 7.1) + failed = check(failed, close(bucket, 7.1), "cap") + bucket, _, _ = export_budget_update(EXPORT_BUDGET_PV_EQUIVALENT, 0.1, 0, 0, 5, 5, 0, 0.0, 1.0, 0.5, 7.1) + failed = check(failed, close(bucket, 0.0), "floor") + return failed + + +def test_update_pv_origin(): + """Charge is PV up to the step's PV; discharge serves the house from grid first, export from PV""" + failed = False + # Charge 0.5 DC with 0.2 PV: soc 1 -> 1.5 lossless, 40% PV + _, pv, grid = export_budget_update(EXPORT_BUDGET_PV_ORIGIN, 0, 0.5, 0.5, 1.0, 1.5, 0.5, 0.2, 1.0, 0, 10) + failed = check(failed, close(pv, 0.7) and close(grid, 0.8), "charge split {} {}".format(pv, grid)) + # Discharge 1.0, 40% to the house: house 0.4 from grid (0.8 -> 0.4), export 0.6 from pv (0.7 -> 0.1) + _, pv, grid = export_budget_update(EXPORT_BUDGET_PV_ORIGIN, 0, 0.7, 0.8, 1.5, 0.5, 0, 0, 0.4, 0, 10) + failed = check(failed, close(pv, 0.1) and close(grid, 0.4), "discharge split {} {}".format(pv, grid)) + # Parts renormalise to the SoC after a clamp + _, pv, grid = export_budget_update(EXPORT_BUDGET_PV_ORIGIN, 0, 1.0, 1.0, 2.0, 1.0, 0, 0, 1.0, 0, 10) + failed = check(failed, close(pv + grid, 1.0) and pv >= 0 and grid >= 0, "renormalise {} {}".format(pv, grid)) + # Empty parts with SoC left (e.g. reserve) count as grid + _, pv, grid = export_budget_update(EXPORT_BUDGET_PV_ORIGIN, 0, 0.0, 0.0, 0.5, 0.5, 0, 0, 1.0, 0, 10) + failed = check(failed, close(pv, 0.0) and close(grid, 0.5), "empty parts -> grid") + return failed + + +def test_replay(): + """Seed replay from measured cumulative history""" + failed = False + # pv_equivalent: 12 steps of 1 kWh PV and 0.2 export -> 9.6, capped at 7.1 + n = 12 + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_EQUIVALENT, cumulative([1.0] * n), cumulative([0.2] * n), cumulative([0.0] * n), cumulative([0.0] * n), 10.0, 7.1) + failed = check(failed, steps == n and close(seed[0], 7.1) and close(noncompliant, 0.0), "pv_equivalent sunny {} {} {}".format(seed, noncompliant, steps)) + # pv_origin: 6 steps grid charge 1 kWh, then 6 steps PV charge 1 kWh -> share 0.5 + pv = [0.0] * 6 + [1.0] * 6 + imp = [1.0] * 6 + [0.0] * 6 + zero = [0.0] * 12 + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative(pv), cumulative(zero), cumulative(imp), cumulative(zero), 20.0, 20.0) + failed = check(failed, steps == 12 and close(seed[1], 0.5) and close(noncompliant, 0.0), "pv_origin share {} {}".format(seed, noncompliant)) + # pv_origin: 2 kWh grid charge then 1 kWh exported with no PV -> 1 kWh non-compliant + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative([0.0, 0.0, 0.0]), cumulative([0.0, 0.0, 1.0]), cumulative([1.0, 1.0, 0.0]), cumulative([0.0, 0.0, 0.0]), 20.0, 20.0) + failed = check(failed, close(noncompliant, 1.0) and close(seed[1], 0.0), "pv_origin non-compliant {} {}".format(seed, noncompliant)) + # pv_equivalent: export beyond bucket + pv is non-compliant + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_EQUIVALENT, cumulative([0.5, 0.0]), cumulative([0.0, 1.0]), cumulative([0.0, 0.0]), cumulative([0.0, 0.0]), 10.0, 10.0) + failed = check(failed, close(noncompliant, 0.5) and close(seed[0], 0.0), "pv_equivalent non-compliant {} {}".format(seed, noncompliant)) + # Grid charge 2 kWh, then a sunny step where the battery covers the 0.5 kWh load and all 1 kWh of PV is exported: + # pv_origin counts the battery output as the house's own use, not as exported grid energy + history = (cumulative([0.0, 0.0, 1.0]), cumulative([0.0, 0.0, 1.0]), cumulative([1.0, 1.0, 0.0]), cumulative([0.0, 0.0, 0.5]), 20.0, 20.0) + seed, noncompliant, _ = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, *history, soc_history=cumulative([1.0, 1.0, -0.5])) + failed = check(failed, close(noncompliant, 0.0) and close(seed[1], 0.0), "pv_origin battery covers load while PV exports {} {}".format(seed, noncompliant)) + # No history at all + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, {}, {}, {}, {}, 10.0, 10.0) + failed = check(failed, seed is None and steps == 0, "no history") + return failed + + +def test_replay_measured_soc(): + """pv_origin with measured SoC history: battery flow is the SoC change, so losses and BMS resyncs cannot create PV energy""" + failed = False + zero = [0.0] * 18 + # 6 steps of grid charge (5 kWh), then 12 sunny steps with the battery held: 1 kWh PV, 0.97 exported (3% loss) + pv = [0.0] * 6 + [1.0] * 12 + imp = [5.0 / 6] * 6 + [0.0] * 12 + exp = [0.0] * 6 + [0.97] * 12 + soc = [5.0 / 6] * 6 + [0.0] * 12 + seed_flow, _, _ = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative(pv), cumulative(exp), cumulative(imp), cumulative(zero), 10.0, 10.0) + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative(pv), cumulative(exp), cumulative(imp), cumulative(zero), 10.0, 10.0, soc_history=cumulative(soc)) + # Without SoC history the loss is read as PV charge (the fallback); with it the stored energy stays all grid + failed = check(failed, seed_flow[1] > 0.01, "flow fallback should show the loss as PV charge {}".format(seed_flow)) + failed = check(failed, steps == 18 and close(seed[1], 0.0) and close(noncompliant, 0.0), "measured SoC phantom charge {} {} {}".format(seed, noncompliant, steps)) + # 2 kWh PV charge, 3 kWh grid charge, then an unexplained 0.3 kWh drop (no load, no export): taken from the PV part first + pv = [1.0, 1.0, 0.0, 0.0, 0.0, 0.0] + imp = [0.0, 0.0, 1.0, 1.0, 1.0, 0.0] + soc = [1.0, 1.0, 1.0, 1.0, 1.0, -0.3] + zero = [0.0] * 6 + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative(pv), cumulative(zero), cumulative(imp), cumulative(zero), 10.0, 10.0, soc_history=cumulative(soc)) + failed = check(failed, close(seed[1], 1.7 / 4.7) and close(noncompliant, 0.0), "measured SoC unexplained drop {} {}".format(seed, noncompliant)) + # Grid charge 2 kWh, then 1 kWh exported from the battery with no PV: non-compliant + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative([0.0] * 3), cumulative([0.0, 0.0, 1.0]), cumulative([1.0, 1.0, 0.0]), cumulative([0.0] * 3), 10.0, 10.0, soc_history=cumulative([1.0, 1.0, -1.0])) + failed = check(failed, close(noncompliant, 1.0) and close(seed[1], 0.0), "measured SoC non-compliant {} {}".format(seed, noncompliant)) + # SoC history starting part-way: the stored energy at the start counts as grid + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_ORIGIN, cumulative([1.0]), cumulative([0.0]), cumulative([0.0]), cumulative([0.0]), 10.0, 10.0, soc_history={5: 3.0, 0: 4.0}) + failed = check(failed, close(seed[1], 0.25), "measured SoC initial grid {}".format(seed)) + return failed + + +def test_replay_skips_counter_glitch(): + """A counter reset pair (+300 then -300 kWh) is skipped, not counted""" + failed = False + pv = [1.0, 300.0, -300.0, 1.0] + exported = [0.0, 0.0, 0.0, 0.0] + seed, noncompliant, steps = export_budget_replay(EXPORT_BUDGET_PV_EQUIVALENT, cumulative(pv), cumulative(exported), cumulative([0.0] * 4), cumulative([0.0] * 4), 10.0, 7.1) + failed = check(failed, steps == 2 and close(seed[0], 2.0), "glitch skipped {} {}".format(seed, steps)) + return failed + + +# Hand-computed cases on a lossless, non-hybrid battery (6 kW, 0.5 kWh per 5 minute step). +# Each row: name, soc_kw, seed (bucket, pv_share), pv_kw by minute range, load_kw, charge windows (start, end, limit), +# export windows (start, end), end_record, and the expected (export_kwh, final_soc) per mode. +BUDGET_CASES = [ + # Grid-charged night then an evening export: pv_origin may only sell the 1 kWh PV part, pv_equivalent the 3 kWh bucket + {"name": "origin_night_charge", "soc": 2.0, "seed": (3.0, 0.5), "pv": [], "load": 0.0, "charge": [(0, 120, 10.0)], "export": [(180, 240)], "end": 240, "expect": {0: (6.0, 4.0), 1: (1.0, 9.0), 2: (3.0, 7.0)}}, + # Export with house load: house takes the grid part first, export stops when the PV part is gone, battery keeps covering the house + {"name": "origin_house_cover", "soc": 10.0, "seed": (1.5, 0.2), "pv": [], "load": 1.0, "charge": [], "export": [(0, 60)], "end": 60, "expect": {0: (5.0, 4.0), 1: (2.0, 7.0), 2: (1.5, 7.5)}}, + # Same with the starting SoC overridden (compare.py start_soc): the PV share applies to the new SoC + {"name": "origin_house_soc_override", "soc": 5.0, "seed": (1.5, 0.2), "pv": [], "load": 1.0, "charge": [], "export": [(0, 60)], "end": 60, "expect": {0: (25.0 / 6.0, 0.0), 1: (1.0, 3.0), 2: (1.5, 2.5)}}, + # PV during a forced export: PV is exported, the empty budget stops the battery adding to it + {"name": "equivalent_pv_during_export", "soc": 10.0, "seed": (0.0, 0.0), "pv": [(0, 60, 1.2)], "load": 0.0, "charge": [], "export": [(0, 60)], "end": 60, "expect": {0: (7.2, 4.0), 1: (1.2, 10.0), 2: (1.2, 10.0)}}, + # Grid charge window with sun: charge counts as PV up to the step's PV (0.2 of every 0.5), then export + {"name": "origin_sunny_charge", "soc": 0.0, "seed": (0.0, 0.0), "pv": [(0, 60, 2.4)], "load": 0.0, "charge": [(0, 60, 10.0)], "export": [(60, 120)], "end": 120, "expect": {0: (6.0, 0.0), 1: (2.4, 3.6), 2: (2.4, 3.6)}}, + # Forced export in the sun (PV 2.4 kW, load 1.2 kW) from an all-grid battery: pv_origin lets the battery cover the load + # while all the PV is exported, but exports nothing from the battery + {"name": "origin_sunny_export_all_grid", "soc": 10.0, "seed": (0.0, 0.0), "pv": [(0, 60, 2.4)], "load": 1.2, "charge": [], "export": [(0, 60)], "end": 60, "expect": {0: (7.2, 4.0), 1: (2.4, 8.8), 2: (2.4, 8.8)}}, + # Same with 1 kWh of PV stored: the grid part covers the load, so all 2.4 kWh of PV goes out with the 1 kWh + {"name": "origin_sunny_export_pv_part", "soc": 10.0, "seed": (0.0, 0.1), "pv": [(0, 60, 2.4)], "load": 1.2, "charge": [], "export": [(0, 60)], "end": 60, "expect": {0: (7.2, 4.0), 1: (3.4, 7.8), 2: (2.4, 8.8)}}, +] + + +def setup_budget_case(my_predbat, case): + """Configure my_predbat for one BUDGET_CASES row, returns the run_prediction arguments""" + minutes_now = FIXTURE_MINUTES_NOW + reset_budget_base(my_predbat, minutes_now) + my_predbat.soc_max = 10.0 + my_predbat.soc_kw = case["soc"] + my_predbat.reserve = 0.0 + my_predbat.best_soc_min = 0.0 + my_predbat.inverter_loss = 1.0 + my_predbat.battery_loss = 1.0 + my_predbat.battery_loss_discharge = 1.0 + my_predbat.inverter_limit = 20 / 60.0 + my_predbat.export_limit = 20 / 60.0 + for attr in ("battery_rate_max_charge", "battery_rate_max_discharge", "battery_rate_max_export", "battery_rate_max_charge_dc", "charge_rate_now", "discharge_rate_now"): + setattr(my_predbat, attr, 6 / 60.0) + my_predbat.battery_rate_max_scaling = 1.0 + my_predbat.battery_rate_max_scaling_discharge = 1.0 + my_predbat.battery_rate_min = 0.0 + my_predbat.export_budget_cap_kwh = 10.0 + pv_step = {} + load_step = {} + for minute in range(0, my_predbat.forecast_minutes, 5): + pv_kw = 0.0 + for start, end, kw in case["pv"]: + if start <= minute < end: + pv_kw = kw + pv_step[minute] = pv_kw / 12.0 + load_step[minute] = case["load"] / 12.0 + charge_window = [{"start": minutes_now + start, "end": minutes_now + end, "average": 10.0} for start, end, _ in case["charge"]] + charge_limit = [limit for _, _, limit in case["charge"]] + export_window = [{"start": minutes_now + start, "end": minutes_now + end, "average": 50.0} for start, end in case["export"]] + export_limits = [unpack_export_limit(0.0) for _ in case["export"]] + return {"pv_step": pv_step, "load_step": load_step, "charge_limit": charge_limit, "charge_window": charge_window, "export_window": export_window, "export_limits": export_limits, "end_record": case["end"]} + + +def run_budget_case_python(my_predbat, case, mode, step=5, save=None): + """Run one BUDGET_CASES row through the Python engine with the given mode, returns (result, prediction)""" + args = setup_budget_case(my_predbat, case) + my_predbat.export_budget_mode = mode + my_predbat.export_budget_seed = case["seed"] if mode else None + my_predbat.prediction_kernel_enable = False + pv, load = args["pv_step"], args["load_step"] + prediction = Prediction(my_predbat, pv, pv, load, load, pv, load) + result = prediction.run_prediction(args["charge_limit"], args["charge_window"], args["export_window"], args["export_limits"], PV_SCENARIO_NOMINAL, args["end_record"], save=save, step=step, cache=False) + return result, prediction + + +def test_budget_engine_cases(my_predbat): + """Hand-computed export and final SoC for every case and mode""" + failed = False + for case in BUDGET_CASES: + for mode, (expect_export, expect_soc) in case["expect"].items(): + result, _ = run_budget_case_python(my_predbat, case, mode) + export_kwh, final_soc = result[3], result[5] + # Results are rounded to 4 decimal places + if abs(export_kwh - expect_export) > 1e-3 or abs(final_soc - expect_soc) > 1e-3: + print("ERROR: export_budget case {} mode {}: export {} soc {} expected export {} soc {}".format(case["name"], mode, export_kwh, final_soc, expect_export, expect_soc)) + failed = True + return failed + + +def test_budget_parts_invariant(my_predbat): + """pv_origin's PV part stays within [0, soc_max] and the bucket within [0, cap] across lossy random runs""" + import random + from tests.test_kernel_parity import apply_random_scenario, make_step_data, make_windows + from tests.test_infra import reset_inverter, reset_rates + + failed = False + # The fixture has one car; random scenarios use up to two, so widen the car lists for this test only + saved_car_lists = {attr: value for attr, value in vars(my_predbat).items() if attr.startswith("car_charging") and isinstance(value, list) and len(value) == 1} + for attr, value in saved_car_lists.items(): + setattr(my_predbat, attr, value + [copy.deepcopy(value[0]) for _ in range(3)]) + for seed in range(20): + rng = random.Random(seed + 4000000) + reset_inverter(my_predbat) + reset_rates(my_predbat, 10.0, 5.0) + my_predbat.battery_rate_max_export = my_predbat.battery_rate_max_discharge + apply_random_scenario(my_predbat, rng) + pv_step, pv10_step, load_step, load10_step = make_step_data(my_predbat, rng=rng) + charge_window = make_windows(rng, my_predbat.minutes_now, my_predbat.forecast_minutes, 2) + charge_limit = [my_predbat.soc_max for _ in charge_window] + export_window = make_windows(rng, my_predbat.minutes_now, my_predbat.forecast_minutes, 2) + export_limits = [unpack_export_limit(0.0) for _ in export_window] + for mode in (1, 2): + my_predbat.export_budget_mode = mode + my_predbat.export_budget_cap_kwh = 0.0 + my_predbat.export_budget_seed = (rng.uniform(0, my_predbat.soc_max), rng.uniform(0, 1)) + my_predbat.prediction_kernel_enable = False + prediction = Prediction(my_predbat, pv_step, pv10_step, load_step, load10_step) + prediction.run_prediction(charge_limit, charge_window, export_window, export_limits, PV_SCENARIO_NOMINAL, my_predbat.forecast_minutes, save="best", cache=False) + for minute, value in prediction.predict_export_budget.items(): + if value < -1e-9 or value > my_predbat.soc_max + 1e-9: + print("ERROR: export_budget invariant seed {} mode {} minute {} value {} soc_max {}".format(seed, mode, minute, value, my_predbat.soc_max)) + failed = True + break + for attr, value in saved_car_lists.items(): + setattr(my_predbat, attr, value) + my_predbat.export_budget_mode = 0 + my_predbat.export_budget_seed = None + return failed + + +def test_budget_fast_mode_step(my_predbat): + """The cap holds with 10 minute steps (Python fast mode, kernel unavailable)""" + case = BUDGET_CASES[1] + result, _ = run_budget_case_python(my_predbat, case, 1, step=10) + if not (0 < result[3] <= 2.0 + 1e-6): + print("ERROR: export_budget fast mode exported {} (budget 2.0)".format(result[3])) + return True + return False + + +def test_budget_save_outputs(my_predbat): + """save='best' records capped minutes and the planned battery export""" + case = BUDGET_CASES[1] + _, prediction = run_budget_case_python(my_predbat, case, 1, save="best") + failed = False + if abs(prediction.export_budget_planned_battery_export - 2.0) > 1e-6: + print("ERROR: export_budget planned battery export {} expected 2.0".format(prediction.export_budget_planned_battery_export)) + failed = True + if not prediction.export_budget_capped_minutes: + print("ERROR: export_budget capped minutes empty for a capped export") + failed = True + return failed + + +def test_config_parse(my_predbat): + """apps.yaml parsing: valid modes, invalid mode -> off with Warn, invalid cap -> default""" + failed = False + for value, expect_mode in (("pv_origin", 1), ("pv_equivalent", 2), ("off", 0), ("bogus", 0)): + my_predbat.args["export_budget_mode"] = value + my_predbat.args["export_budget_cap_kwh"] = "abc" if value == "bogus" else 7.1 + my_predbat.fetch_config_options() + if my_predbat.export_budget_mode != expect_mode: + print("ERROR: export_budget config {} parsed as {} expected {}".format(value, my_predbat.export_budget_mode, expect_mode)) + failed = True + expect_cap = 0.0 if value == "bogus" else 7.1 + if my_predbat.export_budget_cap_kwh != expect_cap: + print("ERROR: export_budget cap for {} parsed as {} expected {}".format(value, my_predbat.export_budget_cap_kwh, expect_cap)) + failed = True + my_predbat.args.pop("export_budget_mode", None) + my_predbat.args.pop("export_budget_cap_kwh", None) + my_predbat.fetch_config_options() + return failed + + +def test_seed_hook(my_predbat): + """update_export_budget_seed replays the loaded history, and is a no-op with the mode off""" + failed = False + n = 12 + my_predbat.pv_today = cumulative([1.0] * n) + my_predbat.export_today = cumulative([0.2] * n) + my_predbat.import_today = cumulative([0.0] * n) + my_predbat.load_minutes = cumulative([0.0] * n) + my_predbat.soc_max = 10.0 + my_predbat.export_budget_cap_kwh = 0.0 + my_predbat.export_budget_mode = 2 + my_predbat.update_export_budget_seed() + if not my_predbat.export_budget_seed or abs(my_predbat.export_budget_seed[0] - 9.6) > 1e-9 or my_predbat.export_budget_replay_steps != n: + print("ERROR: export_budget seed hook gave {} steps {}".format(my_predbat.export_budget_seed, my_predbat.export_budget_replay_steps)) + failed = True + my_predbat.export_budget_mode = 0 + my_predbat.update_export_budget_seed() + if my_predbat.export_budget_seed is not None: + print("ERROR: export_budget seed hook with mode off left {}".format(my_predbat.export_budget_seed)) + failed = True + return failed + + +def test_soc_history_fetch(my_predbat): + """The SoC history comes from each inverter's soc_percent (or soc_kw) sensor, in stored kWh keyed by minutes ago, summed""" + from datetime import timedelta + + failed = False + now = my_predbat.now_utc + records = [{"last_updated": (now - timedelta(minutes=60)).isoformat(), "state": "50"}, {"last_updated": (now - timedelta(minutes=30)).isoformat(), "state": "60"}] + saved_soc_max = [inverter.__dict__.get("soc_max", "missing") for inverter in my_predbat.inverters] + for inverter in my_predbat.inverters: + inverter.soc_max = 10.0 + my_predbat.args["soc_percent"] = "sensor.test_battery_soc" + my_predbat.args.pop("soc_kw", None) + my_predbat.get_history_wrapper = lambda entity_id, days=30, required=True, tracked=True: [records] + try: + history = my_predbat.fetch_export_budget_soc_history() + total = 10.0 * len(my_predbat.inverters) + if not history or abs(history.get(0, -1) - 0.6 * total) > 1e-6 or abs(history.get(45, -1) - 0.5 * total) > 1e-6: + print("ERROR: export_budget SoC history now {} 45 minutes ago {} expected {} / {}".format(history.get(0) if history else None, history.get(45) if history else None, 0.6 * total, 0.5 * total)) + failed = True + my_predbat.get_history_wrapper = lambda entity_id, days=30, required=True, tracked=True: [] + if my_predbat.fetch_export_budget_soc_history(): + print("ERROR: export_budget SoC history should be empty without sensor history") + failed = True + finally: + del my_predbat.get_history_wrapper + for inverter, soc_max in zip(my_predbat.inverters, saved_soc_max): + if soc_max == "missing": + del inverter.soc_max + else: + inverter.soc_max = soc_max + return failed + + +def test_seed_hook_measured_soc(my_predbat): + """The pv_origin seed uses the measured SoC history when there is one, and falls back to the flow estimate otherwise""" + failed = False + pv = [0.0] * 6 + [1.0] * 12 + my_predbat.pv_today = cumulative(pv) + my_predbat.export_today = cumulative([0.0] * 6 + [0.97] * 12) + my_predbat.import_today = cumulative([5.0 / 6] * 6 + [0.0] * 12) + my_predbat.load_minutes = cumulative([0.0] * 18) + my_predbat.soc_max = 10.0 + my_predbat.export_budget_cap_kwh = 0.0 + my_predbat.export_budget_mode = 1 + soc = cumulative([5.0 / 6] * 6 + [0.0] * 12) + for history, expect_pv in ((soc, False), ({}, True)): + my_predbat.fetch_export_budget_soc_history = lambda history=history: history + try: + my_predbat.update_export_budget_seed() + finally: + del my_predbat.fetch_export_budget_soc_history + share = my_predbat.export_budget_seed[1] if my_predbat.export_budget_seed else None + if share is None or (share > 0.01) != expect_pv: + print("ERROR: export_budget seed hook with SoC history {} gave share {}".format(bool(history), share)) + failed = True + my_predbat.export_budget_mode = 0 + return failed + + +def test_publish_sensor(my_predbat): + """The sensor carries the agreed state and attributes and the manual export note is logged""" + failed = False + my_predbat.export_budget_mode = 1 + my_predbat.export_budget_cap_kwh = 0.0 + my_predbat.soc_max = 10.0 + my_predbat.soc_kw = 8.0 + my_predbat.export_budget_seed = (0.0, 0.25) + my_predbat.export_budget_noncompliant_kwh = 0.4 + my_predbat.export_budget_replay_steps = 2016 + my_predbat.export_budget_planned_battery_export = 1.5 + start = my_predbat.minutes_now + 60 + other = start + 120 + my_predbat.export_window_best = [{"start": start, "end": start + 30, "average": 50}, {"start": other, "end": other + 30, "average": 50}] + # Only the first window is manual; both are capped, so exactly one manual note is expected + my_predbat.manual_export_times = [start] + my_predbat.export_budget_capped_minutes = [start + 10, other + 5] + # Budget at the end of each 5 minute step of the best plan, keyed by minutes from now + my_predbat.predict_export_budget = {0: 1.8, 5: 1.5, 10: 1.5, 15: 1.5, 20: 3.0} + logged = [] + saved_log = my_predbat.log + my_predbat.log = lambda message, *args, **kwargs: logged.append(message) + try: + my_predbat.publish_export_budget() + finally: + my_predbat.log = saved_log + entity = my_predbat.prefix + ".export_budget" + item = my_predbat.dashboard_values.get(entity, {}) + state = item.get("state") + attributes = item.get("attributes", {}) + if state is None or abs(float(state) - 2.0) > 1e-6: + print("ERROR: export_budget sensor state {} expected 2.0".format(state)) + failed = True + for key, value in (("mode", "pv_origin"), ("pv_part_kwh", 2.0), ("grid_part_kwh", 6.0), ("cap", 10.0), ("planned_battery_export_kwh", 1.5), ("noncompliant_export_kwh", 0.4)): + if attributes.get(key) != value: + print("ERROR: export_budget attribute {} = {} expected {}".format(key, attributes.get(key), value)) + failed = True + + def stamp(minutes_from_now): + return (my_predbat.midnight_utc + timedelta(minutes=my_predbat.minutes_now + minutes_from_now)).strftime(TIME_FORMAT) + + # Starts at the budget now; repeated values in the middle of a run are dropped, as for other forecast sensors + expected_results = {stamp(0): 2.0, stamp(5): 1.8, stamp(10): 1.5, stamp(20): 1.5, stamp(25): 3.0} + if attributes.get("results") != expected_results: + print("ERROR: export_budget results {} expected {}".format(attributes.get("results"), expected_results)) + failed = True + manual_notes = [message for message in logged if "capped manual export" in message] + if len(manual_notes) != 1 or my_predbat.time_abs_str(start) not in manual_notes[0]: + print("ERROR: export_budget manual export notes {} expected one for {}".format(manual_notes, my_predbat.time_abs_str(start))) + failed = True + if not any(message.startswith("Export energy budget (pv_origin)") for message in logged): + print("ERROR: export_budget summary log line missing: {}".format(logged)) + failed = True + return failed + + +def test_budget_exportable_output(my_predbat): + """save runs record the stored energy the budget lets the battery export at the start of each step""" + failed = False + case = BUDGET_CASES[1] + # Seed (1.5, 0.2) with 10 kWh stored: pv_origin may export the 2 kWh PV part, pv_equivalent the 1.5 kWh bucket + for mode, expect in ((1, 2.0), (2, 1.5)): + _, prediction = run_budget_case_python(my_predbat, case, mode, save="best") + value = prediction.predict_export_budget_start.get(0) + if value is None or abs(value - expect) > 1e-6: + print("ERROR: export_budget exportable at start mode {} = {} expected {}".format(mode, value, expect)) + failed = True + return failed + + +def test_clip_budget_floor(my_predbat): + """In budget mode an export target is never below start SoC minus the exportable budget, whatever the house load does""" + from const import EXPORT_MODE_TARGET + from utils import pack_export_limit, export_target_of + + failed = False + reset_budget_base(my_predbat, FIXTURE_MINUTES_NOW) + my_predbat.soc_max = 10.0 + my_predbat.debug_enable = False + my_predbat.battery_rate_max_discharge = 1 / 60.0 + my_predbat.battery_rate_max_scaling_discharge = 1.0 + minutes_now = FIXTURE_MINUTES_NOW + # Simulated SoC falls 8 -> 5 kWh over the window (export plus the house load) + predict_soc = {minute: 8.0 - 3.0 * min(minute, 30) / 30.0 for minute in range(0, 65, 5)} + # Uncapped clip: display target at the lowest SoC (50%), command 10 minutes of discharge below it (48%) + for mode, exportable, expect_limit, expect_target in ((1, 0.2, 78, 78), (1, 5.0, 48, 50), (0, 0.2, 48, 50)): + my_predbat.export_budget_mode = mode + windows = [{"start": minutes_now, "end": minutes_now + 30, "average": 50.0}] + limits = [pack_export_limit(EXPORT_MODE_TARGET, 0, 1.0)] + _, limits = my_predbat.clip_export_slots(minutes_now, predict_soc, windows, limits, 1, 5, budget_exportable={0: exportable}) + if export_target_of(limits[0]) != expect_limit or windows[0]["target"] != expect_target: + print("ERROR: export_budget clip floor mode {} exportable {} gave target {} window {} expected {} / {}".format(mode, exportable, export_target_of(limits[0]), windows[0]["target"], expect_limit, expect_target)) + failed = True + my_predbat.export_budget_mode = 0 + return failed + + +def test_measured_floor(my_predbat): + """Every cycle the export window running now (or starting before the next cycle) is held at or above measured SoC minus the budget left now""" + from const import EXPORT_MODE_TARGET, EXPORT_MODE_FREEZE + from utils import pack_export_limit, export_target_of, export_mode_of + + failed = False + minutes_now = FIXTURE_MINUTES_NOW + my_predbat.minutes_now = minutes_now + my_predbat.soc_max = 10.0 + my_predbat.soc_kw = 5.0 + my_predbat.battery_loss_discharge = 1.0 + my_predbat.inverter_loss = 1.0 + # mode, seed, expected target of the running window: pv_origin 20% of 5 kWh -> 1 kWh exportable -> 40%; + # pv_equivalent bucket 2 kWh -> 30%; off -> unchanged 10%; no history -> nothing exportable -> 50% + for mode, seed, expect in ((1, (0.0, 0.2), 40), (2, (2.0, 0.0), 30), (0, (0.0, 0.2), 10), (1, None, 50)): + my_predbat.export_budget_mode = mode + my_predbat.export_budget_seed = seed + my_predbat.export_window_best = [ + {"start": minutes_now - 30, "end": minutes_now + 30, "average": 50.0, "target": 10.0}, + {"start": minutes_now + 3, "end": minutes_now + 30, "average": 50.0, "target": 10.0}, + {"start": minutes_now + 120, "end": minutes_now + 150, "average": 50.0, "target": 10.0}, + {"start": minutes_now - 5, "end": minutes_now + 30, "average": 50.0, "target": 99.0}, + ] + my_predbat.export_limits_best = [pack_export_limit(EXPORT_MODE_TARGET, 10, 1.0), pack_export_limit(EXPORT_MODE_TARGET, 10, 1.0), pack_export_limit(EXPORT_MODE_TARGET, 10, 1.0), pack_export_limit(EXPORT_MODE_FREEZE)] + my_predbat.apply_export_budget_floor() + targets = [export_target_of(limit) for limit in my_predbat.export_limits_best[:3]] + if targets != [expect, expect, 10] or my_predbat.export_window_best[0]["target"] != expect: + print("ERROR: export_budget measured floor mode {} seed {} gave {} (window {}) expected [{}, {}, 10]".format(mode, seed, targets, my_predbat.export_window_best[0]["target"], expect, expect)) + failed = True + if export_mode_of(my_predbat.export_limits_best[3]) != EXPORT_MODE_FREEZE: + print("ERROR: export_budget measured floor changed a freeze window: {}".format(my_predbat.export_limits_best[3])) + failed = True + my_predbat.export_budget_mode = 0 + my_predbat.export_budget_seed = None + return failed + + +def test_budget_iboost_excess(my_predbat): + """iBoost solar-excess diversion only sees the export left after the cap, so the cap never makes the house import""" + failed = False + case = BUDGET_CASES[1] + iboost = { + "iboost_enable": True, + "iboost_solar": True, + "iboost_solar_excess": True, + "iboost_on_export": True, + "iboost_max_power": 3 / 60.0, + "iboost_max_energy": 100.0, + "iboost_min_power": 0.0, + "iboost_min_soc": 0.0, + "iboost_rate_threshold": 9999.0, + "iboost_rate_threshold_export": 9999.0, + "iboost_today": 0.0, + } + saved = {attr: getattr(my_predbat, attr, None) for attr in iboost} + try: + for mode in (1, 2): + args = setup_budget_case(my_predbat, case) + for attr, value in iboost.items(): + setattr(my_predbat, attr, value) + my_predbat.export_budget_mode = mode + my_predbat.export_budget_seed = case["seed"] + my_predbat.prediction_kernel_enable = False + pv, load = args["pv_step"], args["load_step"] + prediction = Prediction(my_predbat, pv, pv, load, load, pv, load) + result = prediction.run_prediction(args["charge_limit"], args["charge_window"], args["export_window"], args["export_limits"], PV_SCENARIO_NOMINAL, args["end_record"], save=None, cache=False) + if result[2] > 1e-6: + print("ERROR: export_budget with iBoost solar excess mode {} imported {} kWh for the house".format(mode, result[2])) + failed = True + finally: + for attr, value in saved.items(): + setattr(my_predbat, attr, value) + return failed + + +def run_export_budget_tests(my_predbat): + """Run all export budget tests, returns True on failure""" + print("**** Running export budget tests ****") + failed = False + failed |= test_parse_mode() + failed |= test_allowed() + failed |= test_house_from_battery() + failed |= test_update_pv_equivalent() + failed |= test_update_pv_origin() + failed |= test_replay() + failed |= test_replay_skips_counter_glitch() + failed |= test_replay_measured_soc() + from tests.test_kernel_parity import snapshot_scenario_state, restore_scenario_state + + state = snapshot_scenario_state(my_predbat) + try: + failed |= test_budget_engine_cases(my_predbat) + failed |= test_budget_parts_invariant(my_predbat) + failed |= test_budget_fast_mode_step(my_predbat) + failed |= test_budget_save_outputs(my_predbat) + failed |= test_budget_exportable_output(my_predbat) + failed |= test_budget_iboost_excess(my_predbat) + failed |= test_clip_budget_floor(my_predbat) + # Config parsing and the seed hook mutate the args and the loaded history + saved = { + attr: copy.deepcopy(getattr(my_predbat, attr, None)) + for attr in ( + "pv_today", + "export_today", + "import_today", + "load_minutes", + "soc_max", + "args", + "export_budget_noncompliant_kwh", + "export_budget_replay_steps", + "export_budget_planned_battery_export", + "export_budget_capped_minutes", + "soc_kw", + "export_window_best", + "manual_export_times", + "export_limits_best", + "minutes_now", + "battery_loss_discharge", + "inverter_loss", + ) + } + try: + failed |= test_config_parse(my_predbat) + failed |= test_seed_hook(my_predbat) + failed |= test_soc_history_fetch(my_predbat) + failed |= test_seed_hook_measured_soc(my_predbat) + failed |= test_publish_sensor(my_predbat) + failed |= test_measured_floor(my_predbat) + finally: + for attr, value in saved.items(): + setattr(my_predbat, attr, value) + finally: + restore_scenario_state(my_predbat, state) + if not failed: + print("PASS") + return failed diff --git a/apps/predbat/tests/test_kernel_parity.py b/apps/predbat/tests/test_kernel_parity.py index bea9d9fb6..762d92df0 100644 --- a/apps/predbat/tests/test_kernel_parity.py +++ b/apps/predbat/tests/test_kernel_parity.py @@ -24,6 +24,7 @@ import copy import ctypes import gc +import itertools import os import random import signal @@ -142,6 +143,9 @@ "rate_gas", "iboost_plan", "end_record", + "export_budget_mode", + "export_budget_cap_kwh", + "export_budget_seed", ] @@ -777,6 +781,77 @@ def run_edge_case_tests(my_predbat): load90_step=load90_step, ) my_predbat.io_adjusted = {} + + failed |= run_export_budget_parity_tests(my_predbat) + return failed + + +def run_export_budget_parity_tests(my_predbat): + """Every export budget case and mode through both engines and all PV scenarios, returns True on failure""" + from tests.test_export_budget import BUDGET_CASES, setup_budget_case + + print("**** Running export budget parity tests ****") + failed = False + state = snapshot_scenario_state(my_predbat) + try: + # Lossless (as hand-computed), lossy, a lossy hybrid inverter with an export limit below the battery rate, and lossy with iBoost + variants = { + "lossless": {}, + "lossy": {"inverter_loss": 0.96, "battery_loss": 0.95, "battery_loss_discharge": 0.95}, + "lossy_hybrid": {"inverter_loss": 0.96, "battery_loss": 0.95, "battery_loss_discharge": 0.95, "inverter_hybrid": True, "export_limit": 4 / 60.0}, + # iBoost solar excess reads the grid balance the cap has just changed + "lossy_iboost": { + "inverter_loss": 0.96, + "battery_loss": 0.95, + "battery_loss_discharge": 0.95, + "iboost_enable": True, + "iboost_solar": True, + "iboost_solar_excess": True, + "iboost_on_export": True, + "iboost_max_power": 3 / 60.0, + "iboost_max_energy": 100.0, + "iboost_min_power": 0.0, + "iboost_min_soc": 0.0, + "iboost_rate_threshold": 9999.0, + "iboost_rate_threshold_export": 9999.0, + "iboost_today": 0.0, + }, + } + for case, mode, variant in itertools.product(BUDGET_CASES, (0, 1, 2), variants): + args = setup_budget_case(my_predbat, case) + for attr, value in variants[variant].items(): + setattr(my_predbat, attr, value) + my_predbat.export_budget_mode = mode + my_predbat.export_budget_seed = case["seed"] if mode else None + pv, load = args["pv_step"], args["load_step"] + pv10 = {m: v * 0.5 for m, v in pv.items()} + pv90 = {m: v * 1.5 for m, v in pv.items()} + for scenario in (PV_SCENARIO_NOMINAL, PV_SCENARIO_PV10, PV_SCENARIO_PV90): + failed |= dual_run( + "budget_{}_{}_m{}_s{}".format(case["name"], variant, mode, scenario), + my_predbat, + pv, + pv10, + load, + load, + args["charge_limit"], + args["charge_window"], + args["export_window"], + [0.0 for _ in args["export_window"]], + scenario, + args["end_record"], + pv90_step=pv90, + load90_step=load, + ) + # Seed present but mode off must be ignored by both engines + args = setup_budget_case(my_predbat, BUDGET_CASES[1]) + my_predbat.export_budget_mode = 0 + my_predbat.export_budget_seed = (5.0, 1.0) + failed |= dual_run("budget_seed_mode_off", my_predbat, args["pv_step"], args["pv_step"], args["load_step"], args["load_step"], [], [], args["export_window"], [0.0], PV_SCENARIO_NOMINAL, args["end_record"]) + finally: + restore_scenario_state(my_predbat, state) + if not failed: + print("PASS") return failed @@ -789,6 +864,7 @@ def run_random_sweep_tests(my_predbat, count=150): the sweep is fast enough to absorb the 3x. """ failed = False + budget_count = 0 scenario_counts = {PV_SCENARIO_NOMINAL: 0, PV_SCENARIO_PV10: 0, PV_SCENARIO_PV90: 0} for seed in range(count): rng = random.Random(seed) @@ -823,6 +899,43 @@ def run_random_sweep_tests(my_predbat, count=150): break if failed: break + + # The same configuration with an export budget. Own generator, so every scenario above is unchanged. + rng_budget = random.Random(seed + 3000000) + my_predbat.export_budget_mode = rng_budget.choice([1, 2]) + my_predbat.export_budget_cap_kwh = rng_budget.choice([0.0, round(rng_budget.uniform(0.5, my_predbat.soc_max), 2)]) + my_predbat.export_budget_seed = rng_budget.choice([None, (round(rng_budget.uniform(0, my_predbat.soc_max), 3), round(rng_budget.uniform(0, 1), 3))]) + budget_scenario = rng_budget.choice([PV_SCENARIO_NOMINAL, PV_SCENARIO_PV10, PV_SCENARIO_PV90]) + # Lighter load so forced exports reach the grid; at the full random load the house absorbs most of + # the battery output and the cap would rarely bind + load_scale = rng_budget.uniform(0.0, 0.5) + budget_load = {minute: value * load_scale for minute, value in load_step.items()} + budget_load10 = {minute: value * load_scale for minute, value in load10_step.items()} + budget_load90 = {minute: value * load_scale for minute, value in load90_step.items()} + failed |= dual_run( + "random_{}_budget{}_s{}".format(seed, my_predbat.export_budget_mode, budget_scenario), + my_predbat, + pv_step, + pv10_step, + budget_load, + budget_load10, + charge_limit, + charge_window, + export_window, + export_limits, + budget_scenario, + end_record, + pv90_step=pv90_step, + load90_step=budget_load90, + ) + my_predbat.export_budget_mode = 0 + my_predbat.export_budget_cap_kwh = 0.0 + my_predbat.export_budget_seed = None + budget_count += 1 + if failed: + print("Random sweep failed at seed {} with export budget".format(seed)) + break + print("Random sweep ran {} export budget configurations".format(budget_count)) print("Random sweep ran {} configurations: nominal {}, pv10 {}, pv90 {}".format(sum(scenario_counts.values()), scenario_counts[PV_SCENARIO_NOMINAL], scenario_counts[PV_SCENARIO_PV10], scenario_counts[PV_SCENARIO_PV90])) return failed diff --git a/apps/predbat/unit_test.py b/apps/predbat/unit_test.py index add6d2081..55ddc97f5 100644 --- a/apps/predbat/unit_test.py +++ b/apps/predbat/unit_test.py @@ -33,6 +33,7 @@ from tests.test_dashboard_device_class import test_dashboard_device_class from tests.test_inverter_config_sensor import test_inverter_config_sensor from tests.test_kernel_parity import run_kernel_parity_tests, run_model_kernel_tests +from tests.test_export_budget import run_export_budget_tests from tests.test_prediction_batch import run_prediction_batch_tests from tests.test_kernel_static_cache import run_kernel_static_cache_tests from tests.test_execute import run_execute_tests @@ -454,6 +455,7 @@ def main(): ("inverter_config_sensor", test_inverter_config_sensor, "Aggregated static prediction inputs published as sensor._inverter_config", False), ("model_kernel", run_model_kernel_tests, "Model tests run with the C++ prediction kernel enabled", False), ("kernel_parity", run_kernel_parity_tests, "C++ prediction kernel vs Python engine parity tests", False), + ("export_budget", run_export_budget_tests, "Export energy budget (export_budget_mode) tests", False), ("prediction_batch", run_prediction_batch_tests, "Batched prediction fan-out tests", False), ("inverter", run_inverter_tests, "Inverter tests", False), ("execute", run_execute_tests, "Execute tests", False), diff --git a/docs/energy-rates.md b/docs/energy-rates.md index a6c3480f2..aa745282d 100644 --- a/docs/energy-rates.md +++ b/docs/energy-rates.md @@ -708,3 +708,41 @@ Once the integration is active, update `apps.yaml` to link Predbat to the Carbon # Carbon Intensity data from National grid carbon_intensity: 're:(sensor.carbon_intensity_uk_sensor)' ``` + +## Export energy budget + +Some prosumer schemes only let a household sell energy its own PV produced - for example Poland, +where energy bought from the grid to be stored may not be resold without a licence. Predbat can plan +battery exports within such a rule. Set in `apps.yaml`: + +```yaml + export_budget_mode: pv_origin # off (default) | pv_origin | pv_equivalent + # export_budget_cap_kwh: 7.1 # pv_equivalent only, defaults to the battery size +``` + +- **pv_origin**: Predbat tracks how much of the stored energy came from PV and how much from the + grid. Charging counts as PV up to the PV produced at the time, the rest as grid. Energy the house + (and car, iBoost) uses comes from the grid part first, even while PV is exported; only the PV part + may be force exported. Every kWh that reaches the grid is PV, sent directly or stored first, and + grid energy is only ever used on site. Use this where the rule is "only PV energy may be sold" and + storing grid energy for your own use is allowed. +- **pv_equivalent**: a bucket that PV production fills and every export (direct PV included) drains, + capped at the battery size. The battery may force export while the bucket has energy. This can sell + grid-charged energy when the bucket has credit, so it is the less strict reading. + +Only battery-to-grid export is limited; PV surplus export and grid charging for your own use are not. +When the budget runs out during an export window the battery keeps covering the house and only the +export stops. Manual forced exports are limited too; set the mode to `off` to export without it. +Because the inverter exports at full power down to a window's target SoC, every cycle Predbat raises +the target of the export running now to at least the measured SoC minus the energy the budget still +allows (rounded up to a whole percent). + +Each cycle Predbat replays the last 7 days of `pv_today`, `export_today`, `import_today` and +`load_today` history to find where the budget stands. For `pv_origin` it also reads 7 days of the +battery's `soc_percent` (or `soc_kw`) history, so conversion losses are not mistaken for PV charge; +without that history it estimates the battery flow and logs a warning. It publishes `predbat.export_budget` +(exportable kWh now, with `planned_battery_export_kwh` and `noncompliant_export_kwh` - export in the +last 7 days the rule would not have allowed). Its `results` attribute holds the budget over the +best plan in the same format as `predbat.soc_kw_best`, so it can be charted next to the planned SoC. + +This is a planning aid, not legal advice. Check the rules that apply to you. From 757cff268b1bf999628556a8c221644eb20ba900 Mon Sep 17 00:00:00 2001 From: piomar123 Date: Mon, 12 Oct 2026 14:29:03 +0200 Subject: [PATCH 2/6] chore: update prediction kernel binaries for all platforms Cross-built with build_kernel_cross.sh and zig 0.16.0 (as in CI) for ABI 8 / parity 18. Co-Authored-By: Claude Opus 5.5 --- apps/predbat/prediction_kernel_lib_aarch64.so | Bin 254080 -> 254752 bytes apps/predbat/prediction_kernel_lib_armv7l.so | Bin 203520 -> 204320 bytes .../prediction_kernel_lib_darwin_arm64.so | Bin 306984 -> 306984 bytes .../prediction_kernel_lib_darwin_x86_64.so | Bin 275650 -> 275650 bytes apps/predbat/prediction_kernel_lib_i686.so | Bin 235916 -> 236636 bytes apps/predbat/prediction_kernel_lib_x86_64.so | Bin 263848 -> 264760 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/predbat/prediction_kernel_lib_aarch64.so b/apps/predbat/prediction_kernel_lib_aarch64.so index fb05c3fe5ce85843bb893d449fc1b05954f0697c..f754fb58599fdab949b8f3f27bcf0d38c01a6203 100755 GIT binary patch delta 78934 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

ah4f65)(%lVsF|DTPSOvyW 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 delta 78097 zcmZ_10en-{`Tu`z(n5d=0ZIwAga8#otyqykRD`rtjaVUKr%|g0M6HOfDsypTCQi0h z?N}Ym+waCSy3PfL8kK1}nZ~W#I%R(2=v=lj7g*hbblS~2Q*Gt{Il1R)Zl3S|*S+c| z_x+r6?m3_HoO5q(QWpL7w8(4II^CA!pB|}sDqPlR5%Pyr2rYjs|2sjxdeWLd7EhKI zsdu??C{`(D^}K1Lo;RIuMUeVc@n~88#jf?*^cjV7lo-(`cip8eno)PyXrk`0aq7Cm zyY^{|78FYVzk2k-f3&Ac!jbP8BO6d>d>@Ak#3{nP-{2Wzpu&R=&Hx|Ushm*dAF~QjD`l(I9^uc>+do+jqf5< zl;caQ)F3~ClZ|%zo;S*O=iAx!4cmgSOO4e?8X+1d8AUhmHHtQ>zE7WG@U1TxJfOO= z9H*3?)v9*fiYLKk*JE*`{Gj3+;i=@ipUd;GpuiO>Sw>m199A8Q?K2wMsyZZ;nI#7d zP96*^euPcd2k3x2aqcCf{Goh1VT>3rWMKGFBS6`ELh;b|4enRjU{ND3XU-i{Ba0}L zeQLy8)WB@tHrny3Ea?Pa5XOo7qDG)ajjV2>(V-nbGPpn#xw|Y=mV`Ge zW61ekYRYZT7#&l?66N4BEA4;6i1AaG|F01LRQ=npPH*&5h<~XWOtTpj!lM3X#mXsp z;n^vRXN76^w5r-2KQ~TpSGy{4pE`ChzWrB5c^Bi2zc#p=@g~LV3?3GAg3T)6VHLJ3 z?qxipICYHLald8cnV*$!`@LaXu!tjn6AH8z1%yahjYMl>Jgs<$@r>dT#7;qQvNEjB%UdamEJ}mjjpQAD@DdvM$LgJfW=XV?3pfN%<6{ zS^2kAJJ|xypI>-?Xw2DAA&{Rent~kTGzCJ{qZ88<*chiNuroer4I9=uSb(O$#W+oY zoAIo&w2tv1#XXGE6nMidKvUpjd_-C2XPm4LGM-S!t&EeSZHkAvul z#`9S%lbZ3BlMJW3ig{R&rP1Pm@Tm$h#{G)N87E6=zcJiq?3D&RH+ zq&Z|Mjhs3}mU>wE8}gP4;boj0^)nvpE;ZJFfCai;MzRDMcg;6=E8}|at6g#wnoqPGxC=ak8|J z@!YTT?TR$x_bHxbJiPX|Mui*;conz(sMsOm4#r=5-Dt^*2y z2rzz{>QF1=JNk_BA;z;W8@!!yYNspDk$*JzkynfgF;?M_vM#~+tX~=B`xt*q4Is_< z4^>CAW-jx8=ryCEoH+p0qbk^*DxQL|-x%c`jDM)OoAGuv01xB;?ltxw;bVb)szQMA zU5d9dK11;k+h|4Z@gI5+km z@dagdZaiREOmk-Yaq$$~tI9hV{}h(WA2;JuRYyIHe<7?I^0B}TD%%5$KcJGUmGQgP z$U=<&hgJdOV~U5nSl}2<0pmMWM-z-ct#}{fU5cj}r*^UiFWmpPsuSl}g)gckvc-z0 zz^W{DF#eco$IbWw<(#L8WBxy{to9WJgt%Na6kz;UGzE;esPZAkUspS0`~M%8`Pan) z;*ER`iP-;xCm6TyHJnK@PB$ifjMI%t3Ot|xwEXDKB+V+&jY)=ax{PKSr>p1?<8&3x z6}Ykf5;qvvX`x0!9ZD*0W1MbGXyjC$uA&ZB{ta~%bupfLQeFS+SfE`Udl)B6y^NEk zKE}yWKjY+RAj|?}X^?TUw3TtPw2krIo7J5U<9ig3C_aAwPnOcixuu<~p-+^hU5wL> zNsMu^&q&gEF%OTw%}x{t1X-G7oGk5QoGeW-PL8G-HylO&WmteL%`)D2lVRx)<4ua^ z7$-+*)x)cB2JdN7!RpqH{+C~b&Qjv9uv>6KeE(o3dpXIr9Q^V zQa|IAqyfgs(IDf)H(8DK-^v1`%F;H*$x<3QIYjF|!pdK*9BpTu9PQf2?*E5W!6>hw z9?8TQCrjgulcNd7$SmlQtz(=l^)OD3dKo82eR+=jqY;y(epaDZ zSr=gZkm5nc$x#|PwNFXfW-c%D|5asa$Q%GCOWPUGsN+t?Y29}*PL4(ymyYJwUyKFF z(m3N}X@YUGG|4zQ+Q)cctC6IspRoJ?pbDf}1+tVz&MnQd^6x1}hZrYE#ePa&WB(BW z1#II1x&IZO0oxfTOC5|;lDZftN8OAMhSkPW#{y)jhjFsh%eeOr!%`pPKE?fvlcQl8 zIkz;(D$MzV;YcgvWNC2+OQVcalExS(N8?2t^G}v0 ziURmttIe=9$#|3EeTlm-Q%W%|F;Kus%sDQT+$Y&c_N+YL^lBIrDKBST~ zz&JVD%6Rf=b^UK+0kSm2I9VEDoGfi;oE+_BoE+^6vjABdWt=RHG2VQ)VQHN47R3{c zlcPz+$M65i(mqyUzp^yNI9Zxu-1Cf)q*=zv(V=1<9>34e6$b=aDpZ3s_hhM!akA9T zI63NI+;9~6=VE~!Uozh*cZWqjys>i$2*0%R$ToE#!c z6RiB?xAWVDNHR{2rWkiWYb0s<8Fv3qmS$K5vNX#$SvtfxIhtdf92Keq#xL+46nr56V%`i?$nq{0E9V+6O|CSEJ(p*tMh|P)%HA1qEETxeXrzEwr z^3(rl0QX2;<~vr{psK$?B{s*u^WTMx?YzW1K8aF&8Vinwv85L;cRGuu&u<~~)N3)ERqd7B|>(76{$XcP4PC%C07$-~Z zj8l?27$-+vj7vxJ>)*`+WN97aWT}U7-{XcuUdH{3`xqZk90Sjve|!qa(g3RvSC$4D zCrjHH?^DMi#>vshI5*Be{t&8tJdj@$;}@q+#>vty#wkgojFY1=#&coyo$fdbj4F!~ zjF&_WtCNh=^`1sfIYf@8So!yqqv13QkfmA1y+1XQbck`XG{-n4sZjN(LzJX8gBR}q z$x=J3K$bcfCre$7Qo8FF;14I8LxZMNYV`Be_`W1K7%>O|xmS!!dP z9JMn}jyl3D5RVy_x)@I=?q-}UrIAyI$Wad~|5fFvSMl-tf3noiD#X-rfN`=k$T%fw zE92y7TQLuh-{*&l1LF^$BaD-!?TnM9os38K8jf}`9?Ns&Uz7#NQW`n8G|tLDt1L}0 zPLB35?s~~c(v;*f|LFu|X_{3aOEZjvsZOYHuiEDf>>WN9no zWN91YxDf7$-;T7;jg{9y6EuPnLSk0dTU^$2eK)XPlBWz&JS?WL!F$Uw^GE zK$f;K-uY9*(h%caibohHM``5T(ar?B|G!sR+Qk|oOJj_S9wSNPjFY1Y#>vs-I5+m6 z@%#L~@qn>h$kG(!WNDglO41DD`c zvXn+n*3r6;6ji{d;>yx?#>vty#)s5#l<~ZyGXG*MK$gZCCrcBIlch<<$$Ybu2)ZdKf25y^NEkKE}yWKjS4oHyjOwS)fb>f{c@;G;(r?ENx@u zo0X#>#>vrk#mDdeGYWL_3hLo=7vp4UlyOSZ7~|w!W?1TDyi0LEHfb@1^OtU z?*GZs6ys!Rn(=?BB+W2Rjt(&%_8l~`Hpc>#r9#DNF3D0G<7BCwadOnbxN;QV|7QWR z)Xg|qTF1Ee*M_AY#(j!=87D`Lfg}HEWMrwIRXFX4ad8STPL{SZo>a$ejFY1wGnea+ zERC20;ACk#<78V%+_Tk)&zH z$`+ZI5}zu&*wi?XiTZBW)+$gcQHKc*b@6u7be$WmV+kY9gMb?j%HEDbPDNg8CF9BpMhOZWe6EI^iq7$-|3jFYA9 zj90y7INHg0wc=f279dM$`|Qr*o-dF5r@)$b@;N9vSwoauQO0xXIL0_R8fTmwO_;e{e`IOW8~`Uv`xqxnQ;gHa zDa|-Jnqhp|pXvMmEU*#*`7^{gSxO@(=V;xF*NRuuUCL1#k z%{W9|)JIy_yBc z(h%eOm8B8J$8 zEI^jlF;13x81H_^u++;qIqGBlfGY0?&*wi`bWjBXtO8j|Bd79|q^+#{)V~?4r;Tw+ z(nx{l&o9ynv=;*T7Rb_0#>vty#wkgojFY1=#>fBt&o~S8|IM&8!8lo(WPCuC?_+#W z@f73aXgbUSWNC)+ivtgxjhseIjs{ryd-9GV|AH()mbNk8r;bC65B}Zg zXoT_R0fVi+)^%2Ge$WNDD`ggS0zoE&Xq zJWQ5`Sb!{zFiw`XGftLvGH(B;N@~WHqhS$c0hg)}W8AHHoN=<0M$VHo$;wa2;!<@zH_g*p*+h%B`+PDyHKoRZYRc)xPa z#rP3$d4Az$0kV`vP936k?_uRvXJjk*cYhftNBxY))N$Zf?EarD4YCSkX)EJoX&d9@ zXozugG&0Wf<1hTBQ~P+p7!g_8$@qY>w2SdU#iNXqqcrkyN5gL!$rWc6LK&k23C79N zKE_?YHrh!sPL8G-Cr85>79dNrjFY89jFY7~#wkgK>KKif9JLv|aR1+wH8u)6tI({t zgK@HyMouT7Bz3d$FDggtia6$lklW#~#KhNxh6ylKK=MzyGH!^|K0OX@GIEG{`t5X)EL8 zXj?H43;zd(MWNz=2q+$5oRXAAPE$aZcCzvTC#wIwr7mL?b{OOuR~ zqkW8%qbbQ{{?iD^(lo0;mSz|yOS6mzCmT19LyWg7o-^_M`Xfte}DK}8tcD~1;|nl<7BCqakA9MI63NPoE#1GvHO3rG{`C(m||Gk%J@OW z+ZZQDY2@S_IU1qz^!)!tWobJF)crqM+Qs;gI*u}4a*9zg#yB||XFOb{DkNBdEKM>_ zmi94DmZlgdN7Ia#8|TIM|5>0)btubtx8gK%ZfTB{|3En^erqgeDo>8u^Bnm{fmT(} z!7HeT&o0KvQa9t2q;-swqaHJt`A?R5%>i(-)WSx?P-I)6T;{nBkjLRg=uRj_& zIYC+4#wxgu85gGz<78<&;~90_$vEw#UB6}b|72;DRUk`ajFY8t#>vqH^oE!Vk z_=nAX;{ju&sTqc)DaO-^rx~YpPb24!W?A_SVP)wM3y`Ja_2TResAC)BKKXwVh95iQ z+Z1;&9#uT-Vga($%{W-deN`XjGpzvoo?Tk~Bb}~*$+Qm3I8f851sLa0@3y`I8#>vtI<88{JB;z5) z`xvJrl>^V`KhM%Mt8hSBnqizQ9b(+~hLN;6#%bLP6~}pv^+%T43W0n!lcjdX$x;X7 zl%y`k$x%1sxuxp*TgL)}vyG(lFg~ofmvOR`M$R4ev+`NxXdui2WN9noNp;-DI9VEE zoE(iXPL8%KK7RjCmUglVWN8=UWNDOfO41nPNr&NRyqJeYp9&<31LJ>|LnG&w_ObGF z{+>@6kz$-2%`omcB$E{Rmt_I6bck`XG{-nuD)J2$?kC7m8{_1tU2>WKG%~W(!77lY zF2*}64NKjOcPU=SI3=kua^t-D^+#K&msRj7OMQ%!r2)p{>Nv`b&**7@Rp?ec$T(Tr$~ZaN#`u2K zPRPt<{*$E?c}fTZ}Oh4EDQNy9o13v{YuFXOcCeTI9F@r>f_1~1(I)4HdTb4$BeLzgH^ql{CM#u>N$uiFX>R=6#rEbO}>bQ>aL+T&3@-R+G>Mij6`NzKj=_>^C%Y`iUGftKU z7^fr+GER=RGCoT8|7|Q#a*knLi1Dh=8JtE=&XJ|y>$RTxqYWf;#Xo@Jc=@3)5-uX{H?qk=l1oC}Zt z`HfH`Crd9-6>N-?L!?xmroh3Z7m`B%pRA$9Cwyu@QnftT@s;y%U?C>~%u zrH+GAW&YC$4yp>Rtb$$r|G2j?zEyGRFttNYL|FM7l@skIj{hrrY(Q$Rx^~Tfbapsu z3d<;sJI44nb^18tH0}iB)U71rcdKso8N6^spmC95e0*uv&<@p5hH)BRmT~IPP!Y$B zJgOSX6$S7_NPSo@l=2SQ7=KB%V`rQ?;$l4CuFMEpM0A2Z=NYM2$121W_b?t++{<{k z;y%W6iu=Lk`NvZ-)nJ@Bz$%2i1`jfR@B)LkF`iJzWH}#Lq)dQUTtuj;^S9@4%LvIRoJ7rgYmTDF2-%w z7$>M>+^>#3#XKzbw-^do@RXa7mW5ZMI7t4rOgOrivmJyReXr?km5PUcPK6n8!1i`y5mlxeH-I_lFNO= z&H^b_!NGW1aTnvQcNr&eGw%JOI`JQhJ4BZ_J9yE)N!LsVtI(;gC@#k7uE@l zel_QQ#yc)Ctfqlb`QR&-{6J{r#J9d`@YXPE$o=ztdC|r=?Uy0OGe-=EBL5HG&iQ~* zzFiGCJkjX52pQ)UT`E9aVG(0Iq5=uVI~DI^yi4(r;u_97!^nRl5-|nlsKQcm{YLi6 z3d>A<$i!Ehc%7*ouZd?&4vc6oZzn@?msR1L-Oa;yPYhf|sME z0U`P)xCa`=0b6yZQ4HIvk2H$-r0R5|=%19vUbVlmtiMqt8p~1qP~)!hc!wo+`U_9S zA3ZPZeoPa?xNBGjwIL(D&?;yvbk9wA=+mu~+p$DLy`!q3x`nLU=*ou1Dr!~w&O(>fjHEL)ZhKACYqq3 zxF$NG9nk&IBR|!I3roQBk|vfx13hRM+VwL{M4+jcHL)8SdPNhx(1WjPA`NxFrinr5 zN~jGTt@j6m z4MzGgQs^G&N@y>1GjtHzkMf;=MngE>4ef>o{-TKtGzcArhM+dA*-mH`bT_mP+68Td z4neD1h1l_~Cc+_rl7GMfXdK!Ltsc{a18X?*8RixRv!xc%jAPp*i#Q1FhYmxxPPPa) z)^uQsMQnvOmRUp`>Y8d1IcOiW7Hhk0nneVm4!cF{h9;qX(AMdeuo%UQrkNID$6_Cb zHbQroTf}zg%2{X-IshGjwpUn$!-Xfcvn`?tI^aNq&_QSnIt)Ds9fhW#Vh-v-ZO|OF z99o7=q6+GQ=H`Sgq7^Sj0k%U+DlMWDy6sep=!cfiMFngg38)w9cUr_YXbZF*x*56$ zIt)!gN1+4IDi@r=<`S825r^Pl)gp^%!|_3A4BA$M4ncQ^&wxePZCaL~BhdIc7%|kh z3=KicKW7nD*mV+8Z^bfQZV`TH9J&KqyTT$8&=Ay*auMhtj#E(A7EFZ)QwQC@)*?0| zzWGvg80u)k0HNU{cwt|JIk^l4p*z;W0qDy0m?P*YwB&U3+z$t!$*W;GblY_p8MOBX zObK?gU=ULRO>KlT(DqFhk%TV0#UgBrv5dE%eQ5P~Z{2DULja@D>KZJc z+byC6+IR;#0zCrlh1#}ZD$c;Ng8HES&=%;9FIhwvbSPvIX=vCLbTc#r%|W}N_Mc*4PzUr7wCzPqDe4XM zVEvaY#|F}a4nPNfhB=qV&=zRz&ynrWUT7cm5cCN2z$=*h73es$8ruB}l!p%g5=jdk zg&x8Q(!W9naGZfApq@TB3iU$m9@GoJj%9%t`=PDS%p0%>nuW%pqrXGaKug|4vOsew zICL)N_$`ba>i9jf8tQ`XfO-yNDxh9yAGG^zixB6beP}tf|4&$^&?C?wG~E0b^cXK% zpxw~T&;)cV^bpi@1XknLdB3m8aR#$&@6NqIs~ea4chT(LI>2W|cs zNf^e9VZ1m19fkHm#Rz)VfDHrcf~KI$pq@`q5gLKEK--~h&@^-h)cq+|3$zZ}f+?sT z#j3&aGH4RI650>VLd(~{L1@^G7dgCG2^C|o5E_JbKwF_vX!B>-@t`fx0jT>Vvc3@~ zf_k7HXcN>64MP3GDx%QM_`3q!m5Qy<9CV=6Drzr8yHl)U8#FKtU;B&W#ppB?ghuUF z;kXD}=X9%Rf@Yx+XvYkzH~_7iX%$&$KeXy%Y*6J^(G0cEvWj--0q8+!pu#GKprg=g zAKIO56#;0Y!zwzVS!f@$UBsyXat&twnImu1JKqh z&^~lKbP(DJ9fEd;@nRS+Mxi;Vy%}@39wUR6Kt0ehXcIIJZG#?w?tmtsUC@Kj{m=nu zKeWt`_MnHLwVy`^H(&~(%~xOwp##u%XvgRAXFvUTvHwa;!IcPHg=GRg5VuZtV-+n>8?+5t25rU(nxQ*z9DsH~w?mWA2(%yCCF3Yp{v{+Yj=j)>I4%hx zd0VhWL%q;#&~4Cz&?q#V!;3z==(`u|7@GMqMsOXj0bfCfpiSH12s8wZLA#+T=t1ZJ zGzrZ?vryOdm@23Ty8Ek`LTC=U8`^gt&I3(Dk3h4~q3f~!U6=yL4d^k{3r$5Z5@_TB zj1am5+7E4qW}$u1QD|%jHmV@D?5|_rfJUHxXa{sNvU2cZMO zFs%G08rlepAA;4;7HF$H-ibMbj_Md8bg&B@-GtThKbTvn_xo@L+WP}+B+%gFXb|f8 zF|z$eB=KHY4NdPu@Tp)JqBdh7#9Xfw1Int=MB zf8l4NOSGEWhc!`#;_}CiUyp`HOspEL39Ra2{hAWZxvTCoTTP;~xK2CbaT8mHI(xu& zcYXIWZON|A&uo^J-`n-Q&nhiDzPIbe&lXuazPIb0&zzR%_jY~uS%by#8J8co$~ zB{=zBJd07xfok&G`pbUue>*CBAirc)`x6X%d1?70c-W=i>C)!u0Zl8P6T)#7ipU=? zeh;E(Ii5oe?$S=q*PqffXX!y4`tCcyF3vO+bkL~g$j9ygZU^AE;f&7s@^MJK7)&#Z{jM|swf?zEsRtL5X ztO+cj|J$Zj=vS0#bLN!1fhT#0$sd_12T`UCY`=d0Ol^+-SgBTN8F=HRpOtDGG)u`* zed3I;MP>(uCVlQmmuY*-UfV>CN!wHdm1 zsa7&!KT6p@%D1dXC*w3bjDv~gQ?ZYKr0IXF)XtpX!$IqR^{G>|r4x?)7Y}W@v;)>+yn=Piab7qEppI)3L|~PtP}|Cvmn3 zIc%d_-TEujvDk+4x>T>7f$e15Vtx4xZG)wHss7LmY@<;;EA{6`SgB`bXtkE^75dbf z+S1Z8JPd8q@Au-|n`WYU@45PYGqvTGD*dyW+FDCpy>w#9gv4x&DgSzD zX|5h`rj02&RE}}9HQ+f&{`k>Zn!}Q6(AS-#Eio2S2R5gbYou9A^vEnMr2T6QYvZ%f zU3;Vcvssw1Vc+;*;lzvuGM7Vhu%Is~xGHzW4zM<`xJ6%8sa5HBRmknbECE^w% zhg=S=#F;?Rt+y1P`Vd$UY}BH^S*AJkXHL~BE2_5?3Q3O~^YFVxf9F(O2joL{TA*^= zLBt|k^hH(Ll8WKmieue~WpC5B$k?_!iep*CTJO-GL2ORs3&pWo7cQcb>5o)k-X_o0 zDoWE|#ItzZD>?KfSL4FAW-hjwwtEV@N9SCvWKQOuLPN6S18Arp%x6qo?_3y{{gVF9 zT)Eyud9&o!Q`tTriEwYBt{m7NFyFoUCMP=R{z@U{Ml6F^6;U$=`>^ed8OvyJ85()UF&y3}puH)9-L;HD@-3@eC47{>Vhl zBIXC9@-k6J!5YB=MxwssLb9YED3p<7^i^Y*en6i(Ut3bSdq*KA>vtg54(3(acE^0| zJDuMcpNP3R6d3+Sp^}`$veVERu&j~&gYz{<#hz~#%E*SBQKs{odgTIaz21lQ4GXlT zH7)q;gE}tuq>Esr~b?Wtzpix&f=JN5ljc$EZ-l@)?EuVcZKgeg)*{l zT`05iJNoqtwWV`b?kbLD5UT?#H|i%BqTlxK7MF3KjvMRm>hH_?y?P-gjch|K0p>7P z!MbWpaulD((3oVI11Pf_tWah~g{zreM8vFX5J;kv`WI`vHTYs$@ z7w|==VNxTH7s|-fUlEHlmIdoJv6X0J6s!yEkdgdxMMcDchI3AQ4=g@z&NIRpZr5pP`8k9d$ zT{XCE0kh?a5MJmqu%>SPm0E4p+z?)e@c9zO<$yZCwt}@Ao!N3a%1<)n_09!1|3c7Pq$O%oL8z{R^SYAy%&gED3f{ogeikt=xx?nB*-Km-k5dw+AJ9um+c-mgnTH#nQQHlsA2sLIWF-G})8d<`sfXb3F$Q+-t}?g~>sHQzW_R(M`4ZYzhfwJ*xH8p4B! zwW@aHx#h>N-j|BmX0Y9ig}}04K2zNeu&PAiTz15wV0JLSsoVjuCWEcZV_C2du$@&t z0@l`3Y|aqaRxmP0E`yS@F?cX_JBxQ5Q}zFxsa4b;G8L3337}w-v8`YSOibRPM!;fV zg)8d9Ip(%x&ZSgagKB*)!5ZHFv*M1GFU0`B3Y(5ox1Xii>PJllWye}kaEP((U;`#5 zN7@ON2D2Nx@*QVsizdWg#x7r?JLllte*7$4CPJ?kdI7hD`y5#Is{a02+R{n!BtBXz z1eH8MXX)F|(QMj&`TCp*IbcUhf8`wHdi(EjJ(o`xD)nj0v@=a-{>%xOU#Y_d|$y-ryPexzj(U#0!cC65dbYwqb?qkNZ>QN7JXwNa@ z9Y_jIm5RTccfpFeO*nBY81*qf;b1Lbg||%=b9@7ZGV(OtD6c~FIuM=zqtJ9xoz)je9&c_{j^M8uZRkj*sz^I<=s|zd$=F#gN+U!SH;xWSJ zkFePrr(U{JTNK{*-{NNE7ZEzZN>E+?NZaI>61Ia;(~_mYsy{6*Hvm=+Cgbu)Y7Wc} zX0BW2#aaO?6XH@?E?>|EIQmI(n;!pI4F3=WC*n!vf zPxZAIXf+jH(}`udUc{DtD$6ah1oLGURXXaicunQpC|3)%BOhNdSsn*)TzkFlT&30A zycr)In$77#Y#ZvE*?zFij3vRE8S4jYG%=YUS+J7p^=DRTOTs~RuG$7{${4%(TwbsY z^QalDpOtF`>ot{g;auCn5@6kUjgM907Ju1XyeZjTvd8w=qtm^;x2<}k5plsf`u`&55@H9lNOuEujH<6x20|E$)QSh_yd7kIU$XUK1T?2tXc zk32#58tj%}oq2*S7@7dXw?g!=SG%M%ep0@1#YF{AM7?+m&?WE@pz%Ioe!X^vWd|Pn z)N9M@8!g3Cg|8%wWnkuX%7VGUT%uWP_=cBBL!nH!(ZT-%_{vJ92zcQt4=mQ<c2U z{r)T9$&@wPe9O=jeaRY>3!b81vj$HDz0>q3*Wj&B?=*atH~#*8sy?&^1|FQLe}clL zgXQ>OPd?I|rLSt#7F6t+g%5XC|Er<#i*f0grQg%2Et+k26g-fzLBxc^s=u)sZz58S zXchOme{RGjc(aL?OpxDR+3e7r7sB5bw2?NvXuc5JtC*wTaUq_2cF(cmb2Q^={F@iz z{m33Xoi0%wku$jx-(=|kldt8E?0_Gvy;85ZNL#c)mZ!Z{mgzt&%G!v6buuQuDbr_S zvfVzgM5VqH?N%Hx#bo;>Ymrrz`s)|rfkM@(`ae*{GH|Ls^`Ge^hdJmHvu6K2)W@C*$$Cy3>cdF}qV=<->!7UZ?&Tjwj1=r?HLo<&PKD$ZznN z$5h^g%@T}!k>%ZBNvHn4Pg_)(M2sd6AtCphR>TiD^(B{JvfcCW@v@N#cU^+_O)c~E zhc3Z;xg0q8Dz)q~ycaVuc^((o&^-MgmtZ_tF;my#c2w5u%um{>`sdeb3oVWF^)Ij0 z&I>0N7CI>#EWyoxj4=mT7nm1u`BR18TCiTQj0BeMsV-mHT-UCW$0q#1mX9|fzM~o+ z#^>W5MR9qat%%p2W<9@XG!a1eX$5Cw!QEgk6RQQ2-wbk`rr&X?wq#Wnu||0k{K)cy zGPbCAxr_C1%EaWIP&t@br2qL+%xYkfKBGxnUXgPb>d7{{P-f7rU*Du%G+|FIK0cqM z(!L2PG5R_EeW{0*>r*e2i+P29-euZ(r3nwdSztWh>AVc<#&*8G?=svsZ(AwXlXf0H z#M0Jj^Cpxu;wuXl+28`*w@!1F`Y*!Bjl1S=uG8j}RpTp1wHmt7G__5ido}i?U#`>U zPLkg|N=j_JS(v;YeQ3W#uUU_W{n54f+Jo@`vVA@7Tm6^nkFCd3(eJkFKVPq1YiVDg zSNgRJE&cQLjehMcORq=&jvt?CbT#V#@M9x7a)G|&a_t^V^>rIySo3ZAH#XqBk=yjAHfReh_S^N>H{jEs-n;e6E6`r>QT-07`xE*v zuF%#^-i=R_x1-Cpm-Thc+9KWCj2puvhxCh@vBs)@r+-=M*5B#RK&N!zFCF}{@Tu47 z^FFW5*ULVS4J-CLz2fsI)%&}b)_z`_piL>8i|11o6#L7y`VH6Mt;QFx)K0aOSL@%o z5SrE)hAz#TG99PE3bwd@%QwdSL4!F zenNjmYU>I8{i`t$`yg)cWNUx9T3_FcecO8t<|Op7e&sc2Et1n8m0CNZzkLn7t^P!> zycVsuf1+P`En3B`%}%L$K%lw&Ob0D?4(s#TZuqbz1c)4X23m48B{IwBGQx zOE0}%^UeBhWJB+_#qOilc{LWi{?ID+^?qC5bUkhvUje^=f_G#=*{p|yo5Ul3x6azv zBiUrdeqpc!l1)`?ftD}#tYkA3`apETp_))xe|A1;V4cw}Bg>|TuT`!2`t+nW|VvTT0i zNT0h%4XKD4Ma(-1l)r|IbFG z?caCm%QtCvO?`c*X9*td7;Pu-~9U5Vz`hKxNYMC{hZC(9pOtFM{dw&p1?hFvm2e4v7_k1q{|ye7MF^*CS6`Kaw(b( zK53l(@hL_ZwF!|8mw?mAhS%5c9s9~JV!557eC#Vf-}})NF*3Z~vUd#KmIhI|53QDc z!&YtI6xF9`lhCP2cyv*N6R$<5&bkTvJUacSo%$U&Y4es!*KnSXK07JDe>9}^HjD^Y z#Un1U`t3_n=l{WdYtZAfh~@d%A;f|e`l~l-t16Ax`EuAOzEGoyhx6l}f0{n~X07Ht zQ{0AYx^4cXN9MV#e`xsKpnX2dW~{b-d#8z!KYdy3-aE}ZVmi0}m7BFyr#&$Bt@ki4 zFBbXHHQIkG3@>*?V7|HatZ|T?EqFpiTMs4K$lWTT;2;4eRJThtQ ztA~$I)PHe{Rx`PEg7(u0s$Tmo{l7R~68x6f-9D`xBb~MHsCD+f?F+;sA7a#Zfq!&k zJ(@jrU+Uz^*^gVQPJDQ+zOGfPS$Z>KpJD@pW99O+qxd}^4xGe!Wmj-Njwcz)9&IsE3biH1)1uOrsrRVr9`juO>d6js%7{1+&T4DI@ zD#f3CS-d?b4marE-lCmb`8K*JPxr(*mbVVe*Ero13oUQ;cj(8qXp2t&wTd5IGv$$A zn&Q29{VPo3ULlqrM`LH*rp*e!WGZ~XRQRWO{UQqY!@BIX^&`iT1sT|^X_MY~60zom zYxd3*kr|)9Vt?kCZKD^K^1^ek`edEtTC35QnxMi%@iGN$66A6f3{(6?;Wc7~r=S3eegv3|^gMS9>4G_;|9>;*J<^np`uk3LgB zw(qI>vBxKfJF{1bvCM5^Ec$%?*pm;R`*h|@c>Oc^`n;zzuj2KS^d`gUx1O*}dt^E~A>04(o5>4={SIgLOAS2-?x-L8>6P^h#*RH)@$@`R+9;+XlZW;Q{ z?c@h%VA%P?hw8_UouiHY{VXx&b_JaS4I7;w|8d^!nVH&H^yd1p%nInH`myZcj>_!C zT2E}tt+~Bhw&XG=#8|R&n=|{k7>QY?K9W5jov>mu!-^>C#Zoyg*^e0#EMyggZ~ttR{98GEyrA~mOov7l$8)Am*GuIw%` z;>H5XoDMd@wl4dU)|36Ar6)5jasjsgvodRNLTlCS8S51MmffCNA;ykc*WI2u;k-Tb zs(0+@-w?l48^im|@}tjs$0W<%Qr~m@?o)1$EZpeCU)gMR-oG9vThm@C(=97A1hyT0 z;M&_WUqFNZM5Wbe{9`m`oq9VekH|d$k7Xah*9A_X{7CW@(R>1Y?~?kF_mD%aAKiC& z@vW_i)tJ(~pLs{TbLzkBzW27#;G~N_`LF(X<=pz9^KVG~`;pG4MfcT@30JFg?qxye zaWs-S;T;p&q=&OF)%Rp>)UaoY+a9z;pLLJex(J50ugLrJR(cV1! zea_5P$Q0G?ZKig^ykT>rVKnN)^>iX8MRrWP_tu1_b}{#Cx}m-ip7t zl1uqk^ep4J+bKu=Anr2t)ScS=a2Qu;ZPINU;cR5#7o9&|x7``LsIey&5X&M9Z*j^E zB;)#`^SO1mII}-&=;;$;#Yv=-yza>}O4fdI;_~c;k)CWk!F)`5G*wdPM(Z6^iO!?MvVSbtG(vLYHjQ`lplRIa=|)e$3DESg&v2ViGIEQ zkk~ETkoT8w;PrEet;Vn1ogRcCx~Uw ztgRn;dU4SC+O4;biuoIz^P5_onr)-=&Bgk8+qCMEd!6+bebY8=(Iv0Rb>i6M+~nTq z+@y)IiqVswlePbj+ST|?x`WPNpcUD2gXgQxhSqzWQP(Etg-tg(|AwXi!6`R7A1u4o z`D^{HZQ9IRy{CLRk0+OHaURCicrluI3o1J*uLQF9awKv@d+%%Pxx_A(MJpP{_C3_t z6PzD(MrSmP9skYamC=Pk=lj2W5MK=t%l1Cj*mE3??OkQ$rweXI^~=7f&C5@MJd{=C z?7WZbhct8VlZ`!lv4%E^+={*5!)fq(Z-Y_2-hv(E()ux3Pj1(8!9QVX7@P0e?F0&z2Cv4VAQ|W#D>MQ9zU-VFIGfR`KW9Vg)hW{U4|V& z9t&*mPoTm1Xi#onNmwm2qzq}*uFt+#C>aD7{h`P};r(|JoDuY9ny__Xhq;8H)iVeA+(UY^d2(_987_l+l~HjLdr1v!9y z#D$rAIR9rRd0)aki}AN0vX9abxddco0VDDadA8#9)^Rgv46>2=*mC7qfq*4nc~^YvKI?U?j; z|0u>jn5T_Ro-CT%tv5d=HyGQ9_dD~n=_mG2G&Y=3Wc$aswfn!DPUXH&OdHQaocO=i zIW=|*bj+p_n5V^<_FN1@%stxrR8Sy{^|bP|8>sg`3*^KOmb6_n~`}V zk~`Y_=$LoJT2Ui+BzdDcoF7%y|Jj}T&_Q`EcyE3E*d)xUVAq3k`=sX{ti)G^%VUeK z-z!V$TSJ;REbC1gTZ2#5Mfq{8i`b(25qSZB9)pw{&%T=akpXN%R$R1WOY2AeeXTZj zF<$Rmjw`O~MyKUZw~qSpTWZ5pH{IyG-`0jHzX`AL>)Havuj|WB@A{xK;=0ATqv;mt zM(6!Vi5=(P8Ft=z-gYG1eaMyjpkH=gggcOSN^e)q6=$t0-LH7Zycl%@M(xGm8rEa?fK%_DTA$xRB4MnOhpwcDRe$d&tc$4$%Z{FnG zVMFC#ddHrHoh9dPcJAuy{6w8JV9S9&DHlX zv&@jaE1L;j3PIL+W5bGfsvu{3WIxvK;M=De(3a^*b@k-@xYW zm}#$p<3Y>>y=dc@H$(r`OXKuAHA42|^(FXQO!i11-t0A1z~2Re0|Qd^cG0Q&bxz~- zI=qb}SSsT9e$C@Zk*|zLg!>f=d3~a>42dA_f6UVh_-bn-oHBF;IwPF10RsepxFrZx zxnOlRh_3-rze03kQ6$8dgGpTJD)cT(MYhKb42E%NI1bPG`Zy?IvSGSD9?_5w5L&Hz zOB1xVF9tdcVvQJRCq!2Wag?CF5Ld%Q{DporpN&3J^bVNR$KZ017nau`=9Z^4v{&#n za0~=y0TAq&;0^Y8!#sd^1T0$;JRXh5>C-^a4(Bv|ItKj`ge+*Arr%{XRiTU(?vEqI zj6UcWU-m7$We;a5GaDgJSc%ccIR6HgPc78RK4lD z8TwvOup$hSfn|9OwAKVdM2r)&G=ZH}5YaWvS}2x~>&lm)FR+v)Af_Q*EGlx0>`_}xReG8-HKmDWfb>hsRCZsUCjFQ~mlv{-EaBEgoCyBD ze(0<4u+yH^dkM4a0X7Qdx(T@*)~D)mn^8%4ixHfbL6fILlUE5%#>{k3;@^U&>u*Ad zlc2=?_O5Ey4+@O8JKSp&a~r3Rk5VVF924ya&Q3*L;PTWg{cp0+T5tk0754g@)g-Gh z)8o);JrHlo{w4QdGLFay41sB|^@;j0h(v-9aD?sOg_2bnGSN0uUj-fNGZ5v#(Lua| zK%vkzVEb=vrYpJ8Z8g-9>;8-!Lv;RH-yrqid`2t8ST^h&c&1C z%Z~kB-&qhQoXrt9ofSP)aU~d~p-UmIiB`w+HT-}h#PxOXMEx;{E33ij2#50+w(kT5 z(qND!%V+9^X|}?za2)SJWFM1*d^Fcs#C43rFZi$-Eo zC;2;JwsZ8ik%dXX7q~9?+Zcsx3^>P;%Hkx>Jq>L{|7mE`Fvf1^nHWP%G^<~TI?(S= z>lFFy5!5Qk(;$$}}&QD!b9p%5}!{9T$tneg8MB3Q(U_<-5M|4WenWMugbqA*sV9MO`C z#9a{qRs$eZ5Xdl~;6wlhmA*qv!8%EBECaI_9LvT&L{(IligW@Uh`j(&XhfE*u<(1e zvuc>4i1VT>=X+$+2u#N4bY$Mso)6M8K2=|dSqeO{OsS57M+N=~k^O|DJrbQ)@X5=^ zqvPs|u&RplfdkS^)-TG6NyTmmR(J64IWc0UbM*`nP|R@5FDXhkT+~?VT!eK8{%vjN zBCIo(dTXJ`un76Zbp_5zi!oJSh{n>*x z)mmTw49`q4WO-vq1iNHM9i-B1pLzNM?7u4OKco{HX~NcqRmOLi&-NBP>y+5Xz#c}P z*u(hJx`%N)+*Mgdh}FU$t#ug*NT$WU#x20(m%dmrOu*lr;*#~sN&(@aVU-|O0{^d7 z!oODs1)pWb)%|;)LIl$5yNqRG|4(xU9KkLqPOjYrHv}hy+7v;uH6z60bDF+DEXc6^ z&=*V<)+@^Iw2iB~=8qJ!MJn#EsAX5MpJqbRR0!#%B98UM3fYte37Nb_UXrT6-Xd8q zHp#MEWa-=DxhN(}FB+w4Z5mkdM+YxZR3{N^ESeu*rhzXiidHw?u3&$WBi-Z}BrP~q zf8~)>chzl72DZpM-UyAWTLdH8f#01l(yVxR(Q;6J<(v^2H?{_x5g;+Ut8UFR1eFpx z5Zepc7^vJQL%$vS90iHUS7V?zFrpCnDnD@N-$c}a2yEOv75gD3$i4&*9Wfmw>%&Dup{j6<`e{4(_6FMCdjT41X64u7jzWc}r%WG9s>~7+pC_Y)1x(PJljWO*RtmSJ~&U8 zrByha-_s8V=Ns1I+*oa{9IU6HP6A1iK|MSV+%*J0-cRMx&hNKd18CIyR4Yc}Rov*sGBrqnieCe2BlR zps)9^9I~0#^8^0`(5A2tbpMuz1H6VV6$~WMdm4`X3s>FJ#Q|F!`BzT=2lWcBI9KXB z#n5#dY?^_Q;^t0+uoi&|JCq3q|Dz6!U!YLvR`MwX8q8h6rk%KdfeS%`EU7r2wwYN1 zE1?@^7HQW7QIcA&XUQ(}7h__J)!P;eEavshm$BDq_XZZ@5@1smNDnr!b$B&5H=hk* z_vk`C3-!6W2sbrwPiH%}bW^Qqrio}HDEyeJH?nY_Lecn|wecTld{b?_ncBaFzTXnn-&?EC zqWTB5I*-PR>XoAUfVKJyRDY&cFQGM}`b|;2)mr^NsteWXxpYue&k)s1t<`H$y;7}y zjc$wT38H$cwR$$HXQ)D5_1O zx|OxM1FEe&?WXdyi>PjFt@cE&AK_5g3M1Givitly9ol zOrZ|@@t#fcX7&m@MP-{=3wE9=wlFVtlP+vw{+cJa74><2JyFyc@ z4A(Y%l`>>FdD?p43J#xDUw^W}`_{a9Q#UDH%119J8@%u7PvF>HC~6;z@d#XiYb#*hlGpIW zT_Xusxcq3vKGx0dZBuP79oxskUEctbaAv~ERY4YSkjsAXQcpqq;cb4P(*3M8KR=%? zZN|;%oAc?XEljWJjz*u?LOGHT;NwYQrA!B>5m(CG&|p|8xZaZ1l(L>K`*4{`F$Rph zhc1?at52z}l=bj<+oq=BD%l1abb$3>i^+TdmrspD=%WMpS`YYbfy%e11PeM2r5p;tMe&00HeLI#*F zGSUJq{dJn<^2)n3|3_BC;%V#|L75BrUtk8>afU?*|7R_$Kf`)CIH7G-AzeCy51j!I zWqMk1mbGSgXz$tQZT;x}S&x zcw+_Ln&)^RXqZEHlqIjQEi=&P7eJ&x-MjF7a05mD#5S?t=+sX(oqGHXBEO^9pKb6K z|I8vBb|djL;$tJ$8D0LFU3Hj@vZ|@i%Rr>wqP+;2GMO?jF*k=N$oHfa>X6Mn*%d0d z1Rr;TI$l=$7U(qVGTb_XmbFYUz^>BCyp~dG5NZ&Ys#u^MM4<3GkaDZ=zHSD3H4c0} zEan_YtQzv|N^7cZ&<*S^{aDR9JNTeMdHnMR%D{;=2-#1jVFE__qDmE0XbmQCtcG27 zw5!d)$BVW{ad#@e$yT#ZDe)G|V((GqEm%gb#pidV6D-k^aGT9!e1|I?`UAW?LL=|6 z6Ko@e+=by}Q^sB9?+6vj6ZCJm%UXJ#)Ydtf(~>$-9&=zMNNp~M1saZh@kD)kOl=+y& zuw>f(7~~9~h+2GH3IQXnmR*3Y#XbSfpEUjnBji7I0y<1Ve}ki+Q|8}@F#E{-H)6_8 z%6TeuL`(I5vmCbIIk@X7z(LQ!fpq{|KL;NPu#OTr545`rtF>%<#>R6tN-5Ea5{2%Y z&+7N|D+{44&i!a8<6{u!_A;eSg)^OFe3ozv=)~n8P3R5I=dw!_XU7%Nd}W>kSGh&z z20`f|0j_#pJJF6W<%^rp9Xoyj&gPgsZ{g8$BJA=lNnCb*&T3y`4jkV$B0mS-pJ{25 z1CIn73mo`BSj;^K-U1nxha;cp^3?<=F~T6T%O2c|RygvWcz?apk?%kV&(!c`Y&=1T zw;Te2mu*j%PVr{izQ|Red*)&axPUMF7@T-t$bXU(Ph;1q(uucrK098@PXJbk@KR1Z zlO3W=XE8w+S{J}$=|^Yoj%*;O5qG1f&b%vMKc2R($SP)h1q8h zb`*#^w8H@=LqoPx$1vH8;$6Vw7%Fh#yD-Cq#=NuWKC3aW^{E&K%mJ)+yFuDN`&DDH z*n`Hhv&2H?CVU+u3efRLj}-#TNvbtAmP)^~>L{#B2gXezzoww(Jsmf)RJy9;R)ec{ zA!k=!?a@*+4P>>r-(Nb>+7vuT8^QCYyse-}Kv2u3{G4!oZV+fi6H0R95$p@v=*D~6 z?@Ys0d`hvGeI3D4sD-Pg-i?oE4klC>-K{~%gKNdaR(bHNygn75A>*Mu#g%q=@{z2H z>OA=e$d-z|xIf!O$GkA~`}DwzZ)3A*qc?A5x2Io0q~(w|_u=d+U1-LK+nv;~SPJ*$ zaWIovzTDs808$+zSN-WW+Uv_h*$0+tUv6P6f;Rap;jst0ZwKoIeV}`6mJt`zoP}iJWIqmn6;s~4eG^G+=@^8 z^t{aDD|D0%!3d2OCv(D^VPnQ0{CtnL`12{4sn(#HBe#SaxIMEQjy8%r;c>~d_7T$y zmhKTA5(<~=*9_JFmtSf^9Rqm_{xFF=A2E|%T~b3&*OTabC*I2WEJ{FN9<odyjfaVv+KuQT} zbNJ9u-h&;dVWFrgMoqa%tyxc3L-`3Tqe{bsy+zW`VLXuyqmYh#4hyG(j_9{J9qh;_ zAVFx^3E$#rM2VgF9KV~RA-y&t(P{R-5}nhQ>Q1~5V=F8no%zok3k3T}9)pEYT%=GA zADS4+53+YCs4JKPZ`~E86|HDmH|{|ncI9utxrRgua)N1K6gRULR2{|J@tii)BpS0u z_7V*+r5#<4=EbaxR>S}d2qQ}jkP!sBp)Knq`rBwfY9uC0Yht*sW3Vuq>Tqfs%QxA# z`B!;G1l@||#r%(5mbbcdeD8G_`NZ*H9v4eJr=l##rp&V3 z#M2qp+4p*i88C}iJWu2fd<0nSK)8z-V0W@#Ko85h-h2>eX;j@;Fv*1+6A&%B(ZU3P zIbN0>3H$~VVX{AbNPr)G+@I$|T1uXJ$$591Yq)MOxED0&?TOM*X-q8|}Fo9!~Fa*P-1kI&jx9{3|ww z>c+rDLkD80^;ka6{p6#-81s3AJfEWM!O;kyqjrSTwy}^KT*6qy*G3fkD*uxGOe_hy zjP&iqcie|oCv$hlE<7IJ zw@#T)F|W83cpNN}Qg|D?Jt45v`V>CW&O8ubXjAgm>8bdxKn*=eh0H5xUK%oqVA_%f zXH-NN(|8sZc4No!1sLPPIK+_@(vC+i(V2FS=Ns@X*tiKi+|FSjJZ$-UV7H+gX7R@W z>emgXkf(ve{CNVx+9-;c$OrN-2GFJD+>4_waVUSzz;8P$d7ik*SsACh?{kJSF&AE?lysRGrF zvdefk?GGpuj7X+IuYnO&MMyl6>%GoL^Nszf`wZTJUYW_eA~9CF$h3Cx7j8K7A$&Mc z)m8HWXqeWz2>`+^5~MLD5g-F$cl%E6SLI z89__t@W`fH`$_q;+DK(?-Oz($_F%o*gEj}{g2r;nNrQP`r!8}lkxr!Qxtw@hKS8CQ zk|%HtZJ!6LYST{@|Jdc+k(sG>9{0ENLl>&9hRx^up{rNt^H4{v$W(Ho$aevsXMZ3; zvExUu?++JngQG?Sl9U)ay@03iwF$yf6?Me>#KLh*e}j+V=?J|d85oYXN@pS&c!T$1 z%!zuv2`2%+J>^ZL<;SU47QhNSnv%tLVgtf8n|pz{kZeq7KK07x-5c*IjkYs4QCyi< z3HY520Zyme*$AJB6qN(SE;KBMpYw3<`@)Ylq(X4Pi-2+8GIkM+5YDc8F?SPL-(oO* zB}FXZJ^8{uY7(T(tinyqW0w8!KDO@5-M+xXyi!XyNAYON&gB{`G*{$;kXCdxmnS(j z2DTy!S6VxfH{-K<)7H6I+bmnkgM@6C@+4sa%a9l#4_StW`)Kbnh`$+~S%z%1DLq(* z`K+V3SID*!5V$!&x8EpauJga@PPe+KTxf z+PwzJ(HknxU$l2Ea7NLYwZOR+kKT}trc>Qo@bM(Yu7f9peXPUMsgUgR_#KB=fnyA$ z#u~Yqsxvtn@--uhB26|cQ8C4d4wg$8H2`BWT4&c!!pB zaU=4jYFBc8i<|jY3$n=D3glc78>qAC*I~MYzTGS#NGV*p=~){0zQQI{MD^7 zbthBg`r(wa30%bTY!d=;E7Nmr#NtCoe{X`_5XHR%rFl$S-hm2TqpR;=q|?;#U49x{ z!}gmYf0;UNhG^EssiJYEk()u(eA>7fs8gtVGu+D=O4$kzhkvd%4lC}8Es$1_sBtHk ztzgbNQN2pAe=Co)`^gC3P*ur?(ZX#IeGe+whMwM|+uL|EZ0l&Y^H+qk-L61yZ0FsO z4wY@^>zXH`p~@$m(P0Bp?6xO67;9HNtH1kJIS-;01$>0IEwF?R?WP+Ah+nQo;hj9` z%xVFP=IXOQV5Us8&wzb*PV{{u-cfNYGWOH(A3#zk+*{zggNctJ?-8H4z14R z&B^^e-dV(#_h5NQ)80eu8ATpD5lg~p?@ko@lI#0m38Q)M!{gqfQ}6S2uHSZ7U9B-p zC9XeZ?t*C0`!4un2)c;((XIfJh!@V3Sp>73MioVzSOSeKMz^dY1*oPu`419eBGV0x9i%AK9vY`BB4w;S?pN)aFNX-*FjM-)_iNN6`7 z?sTaE)~HQ;**5)#Qa;8g5c|hG#%>c(-x@2slW`B^olOh(@MxrfalZ8V9&ElK%I@Vc z+Fl}1LA2jc&R!&7jj7is;Kd^<_ypiDS|oi$Wd3aj)Z?Ezpvp^XRlHti45>ZFn>=Y0h1p%x@9 zWzp23l!wwW3sRd+KoC;%75!|3NKSnUqA*AqQh-!uEl1H)s;k)>RDC+kbVz2Hi#NI{+F+rp@2T>2z zJIFWi#!63m8utbFcCr&afmutt(zCVLN4fVNjO`CP@&(eBBQ)s{4|n=cR~4nZEz0|J z^$<`NDk$2S0tFLzNFBd|IbSG8J~@`O70~dWlv#mUw4+J^K?e>aL#d0T?wQ=5iVwp{ zz@HrEA8S90Y+xahKW|ahlwv0F5VnKveF-LQLOs(e9Q+E&>+7`lD|mfO?Fd3^2Rd>D zT|w`^h9q4n>T9f_!MU%Y@WZ><=;C?u`vy8v*+rexKuY-r3_L(PzX5~ZA&;ZHFNZ!Q z9mSr@9GqnENS_RWi%54T0x7Fv21V#h2ajPfhG=peG2t;K z9>*F06ddP0JuXFHRfH=8!u_%*^+SKeS!6Y7zXe0E+xG4AA7j;(ZELoJ4E@_}fVyiwG5T3Se9m^*_ZYxwPsm~d>CIJu4+l~=g<LbE2moPGB+cKI2$f>A1UZ*K399diqVx0 zo(99VQ{8E-FmR^)BP_A5ljyQLHZO1d$QST_Xt*DFN%k4;#}7-i?F_F&3bW-b(tSfB z@pHV@0Au2H9mDz^+goO_Au7)Lr2f~#0#Mcf8~b0^iM_-en=;_MT#Y@0hIS&k>4*P_ z;0R5uy9KKEcB1bcLG{UVFyH)m@;uK2yZjh`UFU&bT+o{sX}{@uSOj1vD}3LijljrX;F(M#ZS;a=-W?FstaWP z1zsrZXWr81dyFk!2%|mig8)joO z$a;U_F^#4JN7%uiVOU`rb#h-ef&wmLxL8_o5n-k?RcwcgJb4iT5eH2d;hRrt;(Ac% zB|eEgpiP&M`Q+HqHEv}D#*&ELKz$!dxuND*HxP&|0&Ac9%J!;1`Kb#2 z1bkfzn4XH{=ryXog(N}?on${!`&)btKhR!X0q<_FT3e_<=^=80-{E}b((d2Ev4?cz zcUTs3f!ln6T?e4j^fLYu&P#*-fSjJvnm^#>uoL|U@)7X<4xnPXa0i{H7NY|4cKZq&)0 zArYm`+<({YM_r0qH}GF|_}5%=R~AWTCW|vuTsX2Yd7g+#Tq&q-tFDq?MXYbYDG61?JVaY3B2fx5itG-jpRTIY9uE?vuw(SVL`xLYH)S{+6bw!B{8G*_aEh?9-wDeN+_Ch|mnq$M?LEO%o6p)E~h zFCN{JZWh46F8IqW_|}&6$5!k;h3Vu*SXRdBOlfE?8Ri4tkeM{Bx zmFxbO>e)>mkQz6GQ_fgShVKfd(z; zo(CE@(;!c|1)D*$JTVXCDW38wh9Kl6k7m1Z8ivC46yXh4&ZeE-nD|7x=Pmn#7*`*8 zh*R%C>x|V^0-CJwk;VO_3LkkDZxkq!<1ShbERmYw)?+h>=y$4YCa=;~2B<wRP{VOOKl6;eLgXLw|5qAjz8%;DT1dxI1LO{N!UM2r+ifsc? zV(+PqJWxcOHu46X@tfO%{~yxDwsNHXTYgB22}i0(RNBEPPlg0UQqOiU%ExrDo%}I8 zMn-#}V@cayUdLVh)D?Pi2e}zK+@hI6BBNg(VCWc*Lb{uAV5?k#7U?nmE0((v$70e;Zc3W0 z;KcR#2M#X(MMHI~C7Ko^hhULh9W4h7&^bm90{tChKmqRY#>fUlM-}N9ZHfUBKn1Ck zZV04SDpEt!&6L0X4R7Fg1Af=zcO!oBAH3YF@tL}Pe-EdKSV*&yCdGm?Uy>OQ*YuAX z>BLtT#E0-iN?m9<7AyaTck5_x97LF8ITa@_W`57Sz&O0qnvVYJx#m_m-Wg){;^Qoy zC66qbJ>@2h?X%>>qhq8J#l2)VhKp(kd&|BumSGnX6`AhD%cHq^+Vd$xJQ3u?q^SBiVSfFZ_y6fC@ z(y52abskNLos}x5WAQYizdS5z#S$Q(-vp-ZAF_}SnZ%`eqG5TCyYBu#Q}M$Q;_HH6 z7G3kecjs*2t#q}&+`_jAXz5(jUxTL0nKbVv)~}P8aUQy~w0KF5ka_WO%cy}e{>SAB z8Z<;s;!k(cCqv}ZSrw+*BCth#JVJcQ?K3wizom7J6rAX;)6`woEVq-oU{5lS{el~j zRqBn%VYm@lG zFuq+P=wvUs>%`;?lCf+M`Y>`SLcBImG`UMx3I0AAWiXxn_;hjc z4d5yL{c6H@>w-oK6DR{!frj2{RfV0TdlOa3 z_!3Utf{G$xUIMM^BPs!&1G*KxemhJK@oEOV{gYpR+!?Pw+022Qhs&M*f%vrP|B2{B zn}^F`u6?Ind07mT9qX>U4o_g9i^F9vzcv^_s57<>res^iJu6zJ^Z>bzP#i@25y13R zG28S7UuHT;W$6x5l<3eH<*t({WrQ5=$tGQSxd-kM8=m1-^Y3BG2N_e+sbqvapks1p zcinkVDS@@K9E?iS@^E(@x{AU__5^z)N+n$vg~pEVx~mlOikucv9_p^!XKgmq+RT8m zEKq>os6D95M$`S)rseJ2b%&_p6*_goTQ$or|epBxYYu2S>_Yi4&UQd>=CxSle5<>u|riw!VcFm5!Tj zN$63$nUu|YD3aVCBzkc#8HRF=l)Ya3o&IdwQ2~qg1{@{JUP!W|M#pu=RizRG|VpdhI`0gR(D2V(RJZ4jTF&EK2gA!gvi&-@3 zRm3>lIeS(1YBEm;S<9EZ9TgdRwT8ZVRZhgkDvu<1!dECZ3C*!Bodi+>XhjlwVN{tU z_typJUcAx;{kluR$#N0aQ>T*U5m=Fiq#zXxpyCwy=k~8Qk@BB{7yA{@&>YhA#zkHC zl3!824`tc1`zrO#1Gkbi+M6o3@HmUA3cPgKV~lhUhB>qfO)}_4s=UMA8v{F&IZgH* zDS`H?f0=Dgvn$gLPz)JvCjfdMkln<5{aHQXxSTXLG+)FB|2BE%b!GZR;QmDR}aNp#v@LKR{U9wHR@eNk>yQ~dfBKxeH&ioW6R$t#)XvT&!ZqPNil17rMDcOKG zm>g=)0p~8}!G?>N-?RDHUHGwZ0eA&9ZQUybd=&!>;IFM~DpsJ4~DP z<`#ISeX21h!|H0$op}C@=UWt!E-!1B)5Zop-ASPDNek|-pjTSaPvD7omQOEF#4_w@ zx@>06t8q^pGduR4n~n#9I9P$0t)^v8(RfSoWVwSwhr0qH=SIy7a;p4Pa_&k>|3@0B zv!W+h z(eVY+{A-p6Gvv=1mUw$-Lf@~_g_-j7-iu~LX(Y|J@QStW_#$8lM32C9Qj^%b7SXU& z91cUX@&Yswc(umAqzpM(2%>JiL!v|N@kO0z-7L91lGB5;>N8vJXrJ8MO*fqu&Xz-Aal2>B6YaC(+;j=#GY1+HL{Z{_1GYIxVgI7I zxyb0NEoF0&Q)1(2&3q)4BdB`5Ovs$)Es%ZtR&21DJb2{@dSPZK1@EiZ+th(ELiCWY z!W^BG%KN5x?$$!K<@vH7)h#b zLd6NC4f#SZ9Sgo!fgS+b=2Y7BHjb&i#WyxrtE4NfQ@&FhEEBEczEyz_^5ua=3kV|E9W4bYY_sJYCzR9^@*>=w=i#giLa}O9z9^{;dn0_X=P! zyQA?dtn*4?#Tx9f z_3dd_+na(&e%uv~UUV(g6ldZ2TBtn&Zyp1K1Ac60hAyLC)8>j5=Pqyr?w^)nZ_D4> zIi@UAIn#QJ95Fa2*Osr2DqqVDird)9R4MJk(}Z8VY3%Bs%QBCGenDTt>ovOIkuT0R zM42?h^3fJ-hG9FYdMhH_FI2ZxHa7YYZ%yto)yChfr}mVv4N1m%TC+_yW?3r?sHng^ z?&1~lJ(!E@LsPA;(93M#{z`%;x)#4m-4oOuR_he_8Q>ZlnD?yJac`xqQttpb&<1t_ zY*OJY1)(ttQf&~L0$yYTdjc-Bftvw7Yy;~7*Vw>;fVs~L0$KqMw1L|IHYsq{S%rWO zC`h$I=mdC?4crBAp$!}j_^=J!9dL~eYy!-iy&#}B;6NL=A7GP!v;0*82B09-24OJZ zMKC*Vak@I%0bHt-X`hi%|zfNN}E9uEQxF9>h|9B2bO z#n--~Guae0212S0+!XL48`u+Yp$*&&@L?NR54c8!ErULg%ef_am)td!pFczIoR#0? zQlX{UIe9kAGH$_p7x?)vJ+uB>16#+<`mfDgB>?09S2-}?|F7&VKm8Wwbxqv z^1jSTKjUdU@0sH-7k1v!Gtp3(EKBq_OY|SZ|0JodQO2XOKcT*or0pe1E-lIfeVn8~ z9~b-M1Ntrg^K!JJtXPoA57AT`r(pfkb?h21A<`?Dn{L5 z5-EZ@d9gx`9cxLc*6JKsp5Q z7Wv&6Sz05?#fZkEfjD#+B0B7VyiW@OX1HO*HB3qp8d-%ozY7~PiuT?FmOgqs{*LR2tmED1Si*_iLGST6FLmR2tDjW8*P^Is278F5P7P9pxM# z<8P(RrCYm--(Uzriosxt*?-EtRlRotd1oik9|>#}C^e~cjX+m{o&vQ3y#@LR^cNT) zFi?5TeEP*=(?iF}Q z;4y)x1)djpN#HdV4bn|PxFhhcz*>O~0viQtY^uPX0=)(L2@DVzEHG4Hguu}PW9$h3 zn<@x%1SSbg5tt@$oxlu%Sps(o+$->qz+(bW3p_9IlE7<(=wG@i2zLbD6<8~pp#yh(1y5zVaGU z$B+t8EJ*nUMlroIH?WVAh16c97^z02N|j-K`zR@WqnNjH9H~1<#VK9;^-*H_MX@X; z8>#b16)8_$TuiTmRc!44eG6U4vu0G%EZAC z5UJJ51*B?`I<52%g@B<^tWL>C>KanPO6zAJ;4@KdiSim!$DYx<6}YPNbz12#WD=`T z<_>|7L!y|UQjAn1QZtodLm}kQD7I5Mj?^8bN|df)5Hc)^c`DgRokuE4X+kRa*(jEw zEPob4B2}oABjx#A6l+u_J_i|*3R5m1Rf|-b(mxzBhDWgiB|m(GayLAL)hewcAY()n zLuf$i7*YriNcjzmq7X3*@*#yVfm9<>2o=L2-|#3lRXL8-9i(!Ut|K7dh$wbV$wult zQm#r9Qo*_?HdhtwnG0#da|g)03=LcWnvWQ0gvLkdPX z3i6Gz8zEB1kb)5+=bLR@X7(l$0?(82@Wy`e1VN#|&@__EL2o zqWmysu`+tB4>U1t>?9cOyJJ_vXgiD>LHZguRLL5rbBk!Fa_f|@#`RGe#?3Tj2uh~F zEP*=(<_g>^&?xYbz{3KM2`mtJTHslM=LHrDyriN*DiVYefj0$~3cMq*Lf~D2_XXAp ztP|KE@R7hqfl_;Q=o*2Zc0^dx3WB#lAAx=X{RIXH3=|kFFhpRez%YRk0(AnT1jY!A zBcxsCR6&?2aE?H|z$Af71f~c~6__S)wZL`C+^7MF2b-eC8O{q@p}4KwzN2V1c0m!vsbM z)Cn9dFv^aY-WWlcDsZO2IRfAz0uKv3Ca^%@X@O@277Dy1ut?xFfh7WO0u8i$mI}fhffWMp3cN3{R$!gL27!$N zC7gb!J&izDft~`j0=)(LbZ|D%n^8yP6UJ_U&@S4C9fj0$~3N+jmi4bh`Y3@P=h6#)icprRTD6bRvNTAe7 zrMn8e19}HARuFc;A(8MoNy;SDNm3SJB#v5yqa|M{hZ0dZst}Hsq_c$4lC-mCnsP`zS_X* zcT~QRLux%8km~up$0S$q&G~>yVZgv6D&6xalcpjc1)K@20H(A%jhy|3a_47>!q13YY2N3;YN4n&XoRn1?j#}pu+ zisN4$&=rSW(ntsnr9}7nL!~$3Sl)pAF&s_}kC2%27n2%+o`2({*uf1pZW zNE4GhffYb4FufU5LUbFZgy=v&U>5Fa{DBcnR;R*AwreyCNc>Sao0Eq1Kx(JJSvJ@U zLR-o9hDw3dP^zoSm;qI$_R9g7Dn!g4l&7DqHN7}evZGZ0ul^(j0Gzb4LMS>(s*(PI?1WB`G$rE@CNOOJ` zNc4j3YW_S>gM3_$nx6x-Un0Gw<~@PrcCNeBydRMAKDlZ>07x1N+zrhcD6tP#j0Rne zux{!YXzv(E^t$~jJ>np|0r{IiDz5+%f9QK^UI!%p^FX3Y@2hlAAkmKjiC!n@jX(nx zoIb1;Xg^RZ_yLI?dPJ52fDuPkdKAzf`67{j1oT5*cU+}kDp2`KfWe@jKcVJ}fPu(2 zo>J*MPpfp}Y4|@Cto~RfWB{qdv`^FuXV0nhOF*I<&#U=kz!2nXKU4FMfYhPxqMDBZ zQoCtisQGjt)z8EwBWZ3YkOq=-8U9a%y_eOI94k`uXMv>ZqHomvO(3Z*rdZ9-1d@hU zm#Fy+AlZ!OJ2f8$B%8SpBznqCl|SwWwVgRXih2elsG*cnwP48|wIB^hs;v|GMj#1v zwp=a01SEknep2(tfYi>^pH*YKU!iuKRjHQe0!g68Dm5Qbts1c*$E*_00?CRs_td-= z*a+jS1rj~;zFHyd-)i}2Akm{9sQFYN@yFGu`PINj$fwn+`Mtmf>~ zz=Ge^^7Ft)9~h>;l~ZlIqhvo$R&{+!~kQBpA@!fW(qEPWHL=Z0ls7^8%nh=u@>$cB_2^ zBx^Q$IoYlJrni&b`u#gPNuksbFbue^lamwy491HV9qFUfQf1c4ZwnrwCO%^ zDm`Mds;SZ`s>(~BSEr(Os>**8Z`Y`PDG-}F>AuJZPgezB0;H)mG$0X!gl2}5GzX{$ z>VcPltAU;~ouqX@e_%Q=7nn==Sx(YkVBl;g={!&mECgo8J4u&-hvzs+MZl=}Vrr69 zy8j}Tp0wC5pdmdMi3%`kmcV_0Nk9n)8~sv@5E!rw)(orw>VZDVPEs0Bn}WAnKs_)A zcnxR-j$RH;0ex1e8VCd)Lp}pY^wgCQ0C*Pf?$R?1dFc&ERDck*O0AFzBx5RgLCqHd z@1WfCMU^iQNUGHViJk$h1@08|Qs8~$m!u&+0CRzlfHPl$(RBnr&>MIf=wm>l770I~ z-^*&lxj+)&*jly1;dN?-v#+W2Qem|Bfy8HAF9ZcrN5%~*yLJJ+poSy_(nyO0y+Pz>Zc+I|x2pWwZ7N>?klJYgQaeRiYCEH| z)$%ML(Mv_XBHPJeub_WZEqDZ^4t=((4f*U)>34uc&&pG+xe-YDb$eCShrWZ5jE*Dr zVUEL~av+r(fya;!Fsk`rAbEoy4$~b6z=%8HexhT4Fc2XI)=W4Z5sGjSLMGv0?1TtW zGmH@HN(A9JY&Zye!RQDfYZT#BtOVSYQljO>w!UtgoGnuRD^xteuSg2D<+(P9S$Mh$?hb?3(#Cb zyp7&V7!3b6QX&HTc|yE^JWPmJtH%iOO0|FxFCtG9;vMfc?mS= z;)>)kmlSBZRbay`DaS3K4%}`5wX>vL_kjE0b8m=+N@r>B&XNje`GCE27A9K?rhcOB z{j5hnkNGdrnuj&KV-#oThvM z*gH-6drqPpHcgo~x1;PoO?i24Ke=J5a$xQd`TSI+Z0;g?>eN#s=M7=9-}B0=^Iwn; zPf@J%JIXmzly3Tt@@hMD(PKTyfF=r{2}t4^su?YXK}k_llvr?usNgf@)a&{qOiqbY z`Xx@0ed3hY6F0~^Cn@rRujOm8%9RDf<*Zo6JtvFeCSST|_+56d!emnzn<Nah;snk0ql;6Y;*Ipyh| zNl%I|LvXE>f$AB|wFH+v3|26DtTH8~x9m4oc{OE_e1DAcVM@=Qm&VxRk3<@c(xgZ+ z2sJIu?a-K0^(nCdPvvQ)8jWPE)Mj0{FGcnLck2RUrK@DDmNK8@+bIiojOh4NTVr+6 zZmCAn8moUA01l(E@@%ehZbxs!XCP~|yUcI&SYP2OZLM+%F;;#8nyaAs2-<1TJOwR4 z&^`i9D`+8tb_6tUL5mQycR}+Jv?xI{g65~)Ww3WVRS@$)^cReJL3l)Y z3fgKx%K|M}&@u#VGiV{8xnOWPg7yYzp`h(W{>p%v>#G)q7^`0cF$~1RcA`pK4O)a~ z@U*D>B4|26D-^U9pp6!^Yl60Pw=zWO*;|jI7*TXr6vczaJhxUkYmJrfU@k7^Dz7VV z$!}*X?RLH)d+t{D>>Me#+O7Pwb5NJFZKWE$w9hO_+biZ|OEs-A+cbwK+baEbbs0Vd zBzV9B*wh1<|^Jt?+T8$?dk7lE?Vb>5=s(i9*dz-Uh zY$e+MBv+aK_UtzAv>@%vRX%(Bmo^C?k-d=wiMh&2{;Iq^OL;o?+;cuC@sTpBsO0lD zDwjXf9YOaN@~2L^aDRT5^uRA2o#RO{Xru^((sOrjIVww;uzT6~Az9E2?ANCxx~gv5 zh5N2-pV>#h!#?@}D3he=)qmJ*?j@qdN=~#Al*d)Kl_d8fLBFju?H<9dD#P}Sns<(P zpy?Qt#rUh5l>N6?BxJ(;1pf)}Fi0zD3(em`g%Wm71=vNU;L+i!!=r(;_g~jYJMpZ> z6M-ixO!;X~7lZZZiB;W8zPu+%ldJUuv&|AbNG3OwrnGPL$~I%6@1n<$wA(J!YD%)J z>b76F-?%E@9IWMLXVm%AX6w=*E9TX5w)sA=7AQ&F?5E>q{~T^EKwg8qB+aUxzD=513-&m*#`6dLD}ZJBeTr`{@LczcG+g^NZe(4R<*N-)UT1{n>|x=%vxQJ**h)= zjTozMqJb?;oyQ{ZkH+}7>`$+d^b|i}O4^-fN&5z#U1kl?RsTknMwd~giQ81ga%NTa zL;G4SzbixdM>d1a-Cdeq`Os#2PSTI9AVn6vkZt~Y{rU>(NS0?-SGY_4q|^x&~>Oqp|X9&|I`f?vW7bY(j-byVZQNUB3Bj z&up^`_zKZ>#@kZOO@o|oZiN{hiU!Ui?W*5eRrEr>ITIr)M7{(w>LSHeVl&`w7w!Pm ztEFeGUBHW8#!9aND=UXX@C_k7Dt;P}UFCxIf=D1}tLQ+!nL4|Pw(gEZU*vFPEi}bO zW3>Tlt0oU5A~6&~rQUIQsE}&%LP^iAk+c6A^+k##U+mRS*ujuB=s&BjX7bUFA#Fpx0nFWsQ4C=wmY^3>|(=+HUU zSQ#3(%bbA@Kco)h#;6^lL1%Q>i8_??&Cc44idJzD1RaLxHe;SMDnhlJ(eUQS9b$x) z7r|cuO@tUXRUO9E`lN5FqNydv?|?fQcWMkD6IL&kq;psS?NSz^Qt6a@vm5dhYtNG) zNNbS3AOz5)Zmx25Shf^bRXPQpglV(DCE-O69PK`jcBMFDHPrrq!3&6vPf{zf6?cEu znelt2u*?vrY_qf1j(c^O|4m*Q6_Updi_YVBtM>1Q)}K6zExjeF>?TG*K@u_fL7g&i zUnl3fLHXu1W#YcUhQZykt4R0_5U#v?b`=S3K>8=7N$_-}$%^LO872BP0qHW=T;w?JO|+doIqi&~+1)M|6go_a*FoE)>iF~{EGU8tHW zwQSKDEqcGL%-cT%UtsOpKgv*>m~VEGW>mKF$}q8kyG?Zv{r-V`bHKK2OI&(-eTGMw zrB>c!4#6C~fpiqhHVQJ7IXxObMJKDT7`BDRd4h#R-QT0yWZpXke->Jmf1U@2sAys*pen;L4dz! zgbc#Q5IfiPu~F^3}1u~f}gK`I=R?#)m1uoDsn;nJkT|_A6jMq ztrZa9o|J=7sNHif1S(vOHneqx^?LAV3)1V4`zBaJu^f{5Bl1)qqPa`RHv3g&n_mVm zMsBbk3;)uZwyn%E&$rle+*fZcg{})wn2JVTSX*Yv+E#3N8Rg#4^E#CIBQI_H&a%2^ zzInmg2B>ZdMr5oUf^zsu`$ga()wMzXxQE`F7++>N9+YUsPW(%hSG4QC5?cc@VPp0F zb_Qdm(PN=i7o<9^3o2E6ykbp6C+}`c!RVzg@%eg1Fh;i#p^Zl34xYOnFI)9!FO-3Fo(d`s&#hNI*c?8Blko*$F_ZI)uB#;$3v?ggVZ3c@vXQ1>aJ_hDsvCD zGAvqKVC@2Gs7JZQcr@FhHKy0EKwc{q)~~23v&^a4V@W}N8J-aE_yp~<>_vJI(qY?* zE$K*4MLI3M*zz9IRBvQ-vE>lds9jrZi47{Y1cDxnr#GH{csk;VyP9p;a5cM)W$UM~ z`K!g2j2bX1$KUfcP;+N|%Pr(J`#n;vwF&uHx$@0q?Qtjz{xsX7-*(y_=>j2gNM5$( z>22ATD37{WL@0btmu-#%?+Wme2Q33qw<$mpAstAbb_fo@(le`~paNGZz3LDGN3EQ1 z!1TI&3=IHdJH|+*m;ZNWR}$r05-%L+D)c_};QQs2q0ZRgJ3;_p=C0 zQ^MyfZQtuUVRd-9V*a3GoH?E@F}kV!i$I z%;d8>F`1I~EwiWpTTsD{d#(v@-9yZ!37KB)EJ+hQwTjtg%87f-eTPLpy2Da<`z&?- zK#nt3YfIAWrK2Y6r|X02??M-}KkkD%wOVYXUdT5;>bVEOfVTHjsyCA^Kiy%$O^!Q- zMA8Edgu|ke9Hk}gU(t>v8@Y*w#n79*0?{-KOb9$$(4v&U6R+T ziW~Q7fi?Nlg4jmPBz2CU>>e%3Fze@%KUMjnw}Ee4K`d#Kgr&}zq^-V*3CAGa10}^w zlZiGeDNr!P$y2nubHyU3M?A$RBKBZ_sPet5G^LVE%mjT!{hS|=Xg7k#Q1|2%+c{34 zSjW{ASpQa@ob&!cn$}mp$l&_us|8lSDy+~_jyZO1fpvUxftBLA&tz&d-_m7Zzxt@7 z`4(Ea#@^01Sh}wtQ2!4C4+Z#)nsUU8a>R{tI9yzHCQH{!9_hG5n`-xi0CFr3Rn1DC{7O?<`^23}Fi+lRQcuhZ;2e%pKnQU!Ky0KA;d&F|L>al#XmnTrsj1WVg37U^CRnL+S_(IW7g`tiHrN~f z5F@NYV5b<85Uz%rm6)mp9%{KBv@=*gqR=+;@1cx3+TKuRc@Gn%7cI2L9$wuQ$I+xu zpx&rwN2?@0^-irOI9l~ZtG>mSGcX3nMmZS)F$TSS##YqRh$21e+R&U5E`*WL{6y{F zV?Ja^gzhn6NpV1$JWQevm%lbDeT(NC;4cS=5w3DkgV)yK# z+lqO(`MBfXZMHH}%Y8(q4G580;XhiWpzkdQu?vx+f51S}tStps;*Pl*R$>HnEZ^_( zg7sj~Md>VCR#%@8lgC6zwuN`Uq0b5ey zI}p9v8tBB$4qk0sVf~lkn3r&MN7B>db?bqkSFH=;?G|sSUYOTljfHBGw$-&+7F5@U z)J$v4!aQ{nFJM%pzR$c?)JOW(wFyS!q}BxAf;MN+>49ylt%S5?@nQ+}Nm!}LlF731 z!r_5b=U)xq#DB3mJ4mxyAmX4@I8#RzX?u_snU9hFZVkiyX+qSMs7K9kD+{50)68lo zoe^88xazdXY(yH#JwjM2h%nZ-D)CR34`DN8I|*3yXfRm4W}ggFH*JXs07S#omOX`q z;ItvU%+fPxu{A5`3+n<=VW+c%Pxy@0G!lsSAPE~UhhgH9Xo9vqT*Ax0p7t=bD6D`c zNJF$@)5(ZvnNzTpK;E%fbdaSZR0oU814murH4vk2?Z1eTK6e3I~kIA*;JYa@%SzEBrhlMp9qq0X`|)MA}>SC1f=mi>rt4@w4H!9CN4Dko?GA+55F!V20OHV(uV z09z>iT6LCPwHv1#2&uq2x1r)dh%r*a*~7`-Sos^y<~Xia6k-P+wrY<#Ij;`qiaqA^ zRhuh<2Ljppia_iSv%;|)MVBDW&A{b*Snu3DEARAN~S-%N~eFjxe1{f5F?VtAePQ1U|S!f=(g2$dq^>ktLhd?doyB2;$NnS?q~;jdWr@oM>s_y+4F zEKv^r72qG|yUw~ol#{Eh5N+wg4Zm9{nvgD6hEr6TN_UzQer`Ldiq7~#nK0JjJZ5&*rc_pfTX>}(RHzr(P};^ zzAl!uMEr&!(d8CW&AZV_*5kJWtP{i4f&$QEQE|cTf>_<{kL}ET!(X$eMAu!vi&O4& z%=4C`y{uQlUwRxTOA$5ZLBQ(pI!vG1&Jm0lt8!U3w$|qG7p+NxjyE!8e!ce4o_0$0 zQ4KDWP)O%V%71{oeLo7Vkd*fQX!K=k5}cHd+UJvhw!9ZVT0Ls_BQu{uM!H{{TyEKb zmkx;#JTX}nK#Km(awvL{brA-cBu2du+E`@QhT$OplptaWV zqSA5S1=hr9xD~WD9_mZ5s}Dz`__|nK{O|U<`e+D-yhF`YW=5SPp$S@D7T!K#uTKL^ z%BwSUTN=H_Uir|`-qv~O9Dm(CJ26icW)_pqZAH1GvuP;PZ2QZ4F#Zcz`X%cjSo^!t zqpT;Pog^VBgp3WKGhdJ@)XJc`*aNVwli|gdF-&@3*DmaeT-^jac7}Ut~QVzYtne2e{Ax!_i}YCprkoJ6w>eg&2e}VUiP~OM_;iX3{SIC{l(#G$M~3_>>jjY zaCF8&fIr$T^WUiS|K)x?ljr~6?uUVFz>%^T4I{SOr&Wr+0rx{V$27E@qJ^sc7^uLS zgu)eK{`8R0?t-9^K^_Q7vTCCLvL3?y5jMov7r=lfI_COz!S!WuDH<7R$T7OlXmmj@ zTB~k*S{=b_CA4`Kyu^0~NCVXV-Q%HEt1Ya@9%zrJuX^D147!Z1=O5N2sB%vHd}Z^; z6Ad?-Y+FC`dbE!=i(gEHW3 zXTyrMYI!0Cumbe=lNVVvYyYwml3fXn+NXKT+E=WLlOMv{3St+D7^RO#tV4dG$Wz&W z$0_V59xS*$?6J}uW;Yohq5Mx!!~5|Ev`kdr);zAT6pfC;&i2IYkh1&Y+@OobN==%@S1$H7<}TujW5l>scx=1=z34DErF|QxCr;BQ z2q&E&wf+F`I!q!Mw-GMbUd5sj5kW?yzki?2JjElhEYpfl2i= z$m8K7t*3h=)h`I51IJ{%BE{{)A#AA;+}fOsF1BQ&0Sfa}NF&2J(48vclbW(H2yg(# zzgRd)5NP)xSYnHLCE-b+01^!KD0EbLAan#3KCZW@g{JO#ykM}-13}-S5gOTCG(cK7 zhO@wbcMPHI9Uo}ng?NK<#i4#@2=U(r=+I2dxJFYJ9Auy%_JY;n;{B*`#F>`XN&-0= z?}?zuyTwtB(VY@p+~O~O==x^dzS_Pt^?daSZ8_E6m$23~d#mjV?>5xb63jKZRN zv>?_%#~@=1RbsT)TQ*wYiya%LBE`4vdS#H#dIhIrM~8?d-b6ri?v4Q=9+XW8e;xKQ&tSJg{2EJDY<)MXN4Zt$_W;bsgNOWg{ce`2W=~Z3$^FO6`%**ld;E^?1=f zC1m9Pp;^R_SOb=W6c|QTxXwzWz5?b0xHEPH7LpR1qw5aUVU%UGdym4D^zbdVCTtsu z5P#aPp+sDJw!t9Ue${Mya@Lp9X+B+a~*!spA+O`A>m$6i&~hKP|9+7@uvSQ}nU5*_Nd>1=a)c#g^S~J~>VA zK{__C4%eiZf4U!yjxMmqgcn#R`Krffx(YoIuWp);tNpd=nv!bEz@x1Zh3U3 z0ni;#mZZ*kM+gg7{4xt~kN#u6p(WkX-&Ielk?d18!GKF3qwlM9uEdf*&wj~7?&XG8 zO=Lh?|3X~c=UYyGns51atGFc*n((Rg}Cl8IByi}#b{}R``Go69vxI{*#hGt!Kfk$;}DGa zH=t}>(CWwS#KKS=uBz1))>CX)kf$2zf@pQOe=z!z!AdVl>6At;btrx${1j(XtcuvZ zS!bb9(nb<)j7b}MUuZ-stfx~r8RR^y;s1TfG|Ogta>*p3-&EY36$Z_>Y{1}p1}(w$ z-WS%>xNlkz6s-oA7`!Q`t-FlVljF{H92!3ZVG4rE>`UmnDf#B(;Zv;6xYu!vjBdB8 z5b^HfS*fi5qLcj=(Q%JTVme}_F*?oakNdMTSZB#P$QRI(*E+m<2*lRLp?_S5%r@hc zq+45V8JYZK^NFLjH4zhEja3Hvi@h8FqSYLaGeNu>rS3+*LZ>7{EWKeOUE!v~niyUe zOBJeG>@cb+CI;2T(j;QI4+u&3It&H;)_1}05QZie7FO0XsK|OCd;$CjFH~{j83})) zx@2iOTxX4hap<;@AO`y`wQPw9NvOQF2v*S(N2i`a3$66Jb_0~(^V4v|*N^Rjj@@?p zLkRpKc+ZWs^CtZV@3v0|JzjAFAxy{<(|3=+op?GX)qW9=`=0{_#L;v}m;_>Pymr^a zifHdo8cD%qk^}zwz`tP`Moc$}@RL~lt#9=r@Y6dzBTh8_L8GvCzC>!izR;uYI@Rr& z_blq;T?fM9Y-lRsXoK|#20~?ta36Ysy9_Iop)yal;?v^?|05+T*`@R?vFyh>nhuq% z@GZBHBUiwB$eh=KXN9l&w%$KaL;L*))G#6KAX?tP)A>U0TX#JHd^AuRRIx{$!Ah@I zsWE>n!h3PO_{t-EU4l1!0Zx0~#of=rSh$h_>T0W0txOJ}Uc1?&Tsg9C-f8y1Go zXY6&E`yRY&qwPU0u5=77?{pHP>3-)w?{nINk#4i-C~Zc=bQHl}`hQQx@#11C`44OU z+Mg}&Cy%lILg&2yzL>(v`0=Gw{0)PJ4sDAdy(11J#^bOTuZ{|ID;=2~r{Y8ivI6-7 za8316D!@wDEshn#eklc)rHiOUv5F)jO$J$uYduKz=($HS<1YN^nq=$LpZM!E5 zgHcFxTf9uy(9xsZ(gw7>IqUIZL7}A$=36V_bu)cvfU_1{a6$lLK^JB6rLK{9FX{V* zh4@Gd6%DorMF+CYCp1zG;U;`Ln`!@kR{i#~2%1Spels3KP~zqD+p!MMIpP2|`0kW; ze9$!ujH9W6$8UoiZ-HWUi$89*eg2VRz0}cld%E;sPOOup)Lrr!s6)c>QM!-)L)(4# zwx!ee;`9+NUZQLF-IF8?4j-!rfY)D{_SFEkQrYy?O8iRJ?_c#{QN3$Wy(ys@w ze#-8zqusuHO{z&n-Q$Yo>v63;(HhfEsG^tQ6-wmgUR|+owSNyCjBORgvwvY6ej4g; zdqsh={_=eM%1-5FMZWQy@^Vo(IeD9M{nw7lv7!Ld9GWnZMY?`w48(%g++4M~x_LOq`n>=~WZ_0!#&k^ZLch*LE_e%HHfd+g9jc=AE zY2Ur4lp9yt%Rg>ahVSX}*44nLzTOJ;A;27lDh{{!4te=nsU}K%hkQYqc-7ZndtLp^ z5BqQX2i>Vcd4GY<(MlNpIItoLe@=%d6^|eCqhs(lU*d5EHbkR*l19qF6O2cLr-A5r z=x+tj$Kp$7Jgc!c3`0I;0@B!S?Ht(roGlBDYVh0{hd%^ELxnLKsRZ^`I~ZpK@n;5} zLgamI3o5(U8Gff()GIx%b;nPEMP3^!uYRb!dTmeZaLDV3;Sr~L6c1)BNSSs$x^?Lm zGCei8-%^fWKZPI7O89m_@57)gcm~`5`)!2%7((wHi((fqzj$=ihy%^G%LkP+-}Yv^ zl=5$VQm`@1gqO|O9^zHE&$v1CB&ZkhPR5`U0MPpz`0WE7jF6qgLf zPph#TzHE%r75@%bp1tAQbtpP4l<>_nOomLq2%jKdk}~YyGKMItz}HvF#=kw455VmU z?wl6fx!~R@xV@E1@U>Q&@UM%~`8(gPHhgEUZ^69;+)0A_kuv!^U-nR0j(;C0Tfkin z?vNJTVc-rG+;^0V;QK)-$G_K=zrOSBe;M4Ev&V9~f*W&gm%9*U^fvJ)eB!5#xp4oy z68U{E_NTJ&`)K^A-HGofLE-FXuhutV^8Q+SU2d#ArVP9}xbG!UXwE(YhGFepiI(uk zJrD5JL^b~Ks*Cm|^crWZ#;>d0?1W!$d-rCa4qHTThfrrENi`DorBvPwCq4fV&f1-t z^+P=CZ`+I_VL=*UL73s1MZDP-0=jDf_7`#LAF(V^D*x4M;&n=;tbtrEA%<%7xNCEMGB$W5R!NEK)k(@|Bx+Dno9KM4(!8 zYX*K|@W!o9Y=ZLdTfUt~f!*03pRq%m^xZVQ6L-b%hACakdf^x5BFly%u&pWU-nln8 zT~o1vN;g*0m)RQBqOj(#oG2TCA257a7R20?uD2(#e=Eyxcj{mL2Ke=vRaz`JT4_ra zwM^fvmxE4jMITMOpbeszDkpCDfyLaqeU;@Y@80Rf4k+K;@nzc-^BoRfd9A!Vd+Ahu z`93GWu*!cl7|FB0__7hov|oC$-pZO^eq|3%Exp%WBOlqIY^@p2_9)-fgtNt`oNE^| zHc?q_8H^tl+;8aw2l>RZ5kKBH%sR^L*_X+b^UYRei}fjk*pQ2N$E&uPlox^C)1J*Xd2O?8#0KR|UC$1KsHaqX@DJ%U zsq`6wvAVxvshh-hD8nB54*CSv;f%mb%EyP|)x_TwPiy2i12s~1)fS)+p17V)((mcY z)`zdNUlh0c0SJB1*7xyhz#`PrjN+74^#i<~fxP68{y_4o3gtw7cdQ;a>f5uSin)GV zhi$}xlFz9=IDL?Y*Z$Vtxh*<7pv?MhaEBKK&-*QS4k`P88{n2GO5Rp({nke_=+$PM zQt*3#64>AacaLls3X@!ee~&098V0lein*aX)-mVb-)E7^@!v-yH4ppRtCK zf?SmK4Zcd$AKtKo6Ahh|v_JgV7s`%5y0df2i9gy?k2 z4|ezx9HD3?)V|x;j=xITckeT0xvf*rvna{&#$U0ofRW%wdVOAKww+knY%?N#4bQ$6 z%6qn+!{U$(N0CELS0Pg_wji|F)wX{!21nTrQC70cnT=xuKc2{DFm{)}%UCqK!5=dA zKAU3NEwg0C{^8CV_F~^E#LFyPRQO;&ii1`qf}wjkXnN4RThL1Rehq8i;d>NC!5{ov z6kX@vXjo9!FHt0EcboAU(*swpefZ$rSlQa2wprUN+_;xB`|;_mVEMJlRzrU!rh^@0 z?XUR@+mBnTnr&%r*hJtLEw&+jCZ*Z7>IL4>g-z+Z2z6rEPV@Bc8TbrA6)*ubf6$^^ z(B|+RE)Z}Aid?ZGd264rPvM`qus$q`SGq7?R?M4R*fy4I+R};*mf27If*ZR{YH??; zFxFu5@?@XOY&5^ohAEwUA-dDtx=LHkt?2>~o{5i0Dm(Mn+Ol5kb<_T~>{G_x<#WB* zTDF1T@?zcDeg2mhi)SnOw05jd*ITQxnk|F>FK)Jl;zvl<0q^6-Nh+3N(0q40cH7N& zjoM3Req$`_#CNu5K5Q00-kyzMqfM6f>@stCev(vkp7B^;_Ou&*7^EL_H&(CX4?D0) zYzdF-2$;%ubi{NI=l`Z$KmKed z5g*?L#3_7t7j!#>-|E7GAcV6o8|B<}j#M*)ulHvI_&Q(a$~u`g`Lb4w)$?pWjMs}F z_haFmzd%GIUG0>%nDGf(ml`KkS7$lv3a)OZ9$i^DWBGh;Hy}Fd#$II4@YdbYdw0ID zJ9_uvA9shTp6ARTy}!Zx`-Af*zSJLOSNJCcXH0HAm`THi@{3Qg&22u4MJN=1t;gr{ z>Al(8>?F7JW+UVYv-s0}*fLo^jqmBhzLQI4@D+jVIrby}Adro4b{``>n95fLvi5KH z#h4Crx4vvBv+~Hk_8}$oWd=EKI#zM-z{m}PnzNR00o^9vF{n%~i<_U;A{6-LK z&kKWCfb*&t=|P4)54AT1u>sB>gOaLJGWeKaHqN;S6i++FkQ|L`!UkK-Ei5smlbUUZ z@l!inCN$eh@e4ae6Ps<_kvFQEIT9XnOqh4}zP!EY%DXRrNe!2*SlzeA5sFnP+*^5Vn8?^Ms*@ zSa~b)Cxn=n(fA3c%!p=N4``*3Zy5@K9&xWQW?(n@jxcom96u2T*Sy9bhOw(`3%~Fz z+YVcw_#7;AGS7dG&G#CEwvN=QYE8snbVFB^vONU{t*vNkv#*QM0tRK!+A~HT44v*c* z$B$qeS!-TA0xmI+_t3GyUNy^U=dcsXRRi@szEFqeuJeRQHiBW^$AuB98?7+E9egGY(=$mA!Nn3v~8F zNr=gLG;1ZZmw4;3>=l=r1DkEfPVqLg*>HJm3Xh%5CUEa@%#Vfff#Wdvu6+48wAnVK z*%ous(dMsw$9PDah97};zC8f8%lAit7pjS3FS>RI^1HN^CPkB491u+2@L3B62ni02OxCx zhG!jtZ2rUKFm{Kpii3Cf@%?cyoAbOf4x>21yH3V*`}6gaAy-fS!DP(OdTv3k?_}(D zXzg^C@aa2FajE#L{#Td6qQ!y98~Z^i>cagdK5Pox$HwsTDX@+~eEjq5OZGc&J(Znu z)_28@g?}{_1qFQIG_1Gp@`=;11g+t%r=zPSeDZYG3HGvdIvnClo;@9$&zb(3PVW1V z_n*l+x!uDCi58NjeARR`5JOCUeA7(UmVM86%|yL0{>e(g- zmhf5g*x)t^XkltTey})IseP6+2(Ef_k8v}BmYZ)=w-ZbBGigm zPec>b`Iba9c%FZd$Ob!4T!?*?sWK6YW_!6?609SgCnQ1rm-$yoSo}KjXBWa2viOOG zth)1zBz4%X2r9JKSS^CbM1Fh`+CIr|EJ93xD2uUQIme$_!e)3?E|6;I=l8M>$YaFS3RSE)9 z6tPWWp(d~8q?c-T61KfcOg^zZ%3CzH~KA>;^x+8hsq) z&#VE_i%(m_ex^Bo6*E7M|L`hPSU0|OEyUVr%3jNC46~B`8qDb)0=UZ?e^` z$1iYhlqLTSvefiMCrvB$yEvk`GOke}Gd zM#=xo;VXv9J-JT?i<1wp;ntIEBusvdQ)}Xv@IYwMxzR15HZ74_PL|v4C4E`0!n90;@4?*@g9+jo{|D(MK=S zG|oO^U4QTVWLMYwmaXP5G;jW)$#yppKjz7M?8el;!N1v!^#=~V2eL=<@;&UHr}t8< zqj6ejz7=sJA9|X~oAP1nOZl*O*mmcSOPg#F{Kh*_ zPj5bJAIwVTxAwt;mYDv6;V|qFBln{g9DhF?e+BP*05+rJ4-ddf5$+Gdpz?VCgRsxG z{N00WbBDjCN;UKTWvi)8!fzoigk*TMJn|6x2W~d(T?Eb5oV|x8XYtqGL+#J_{`auX zKE)@#&$zn>YU`%S(&2ghoh9r!+4?+hepMdJQx7vgxhP&Gel3XF515}OeXe6!dWSFl zfNgZv;2S+p{t!zox%UwSo|$~d5eyk?=@F>Aghw7lwCMaie|i~vnvNVtv2QMj6&+3y z9UjAinai_}!KQFRIR=$%=MRse(J{RLakTafUrvzCj~~b8{Z;H zdh+EjeS~^Zd>7^ZG&vX0JWS-RPay6?u_s`gseJhftY_Q#yC*QQk-YCo1)A8%BGw?&GNSDk)n4c+2Ioxs*q6PDTr=awL@p#887A(5Jpap9;FFpmY zzsnO&V|Ksb|2_@L-r`;#L+ZnP^2hL?O}zYLNVb$uJOhc6`1&)9V^%wx09t;+gwW{8 zD^2jxUnlY5i)9}^{4874v2pa1-W<#0yh(gT3=R!A#e9N(vUuN5SWt(LaDa2j<=`B| zmwv+L%UdUL>txoO&E^k3VeLC^Y{97&BXF6-Kl~bYsXNEQWOVS;$5;sVoh;Ghtw~OfJAYXV9-DL6`l*9h!3zpnrUW;muVN~+tUtn7l!Qn9P%k3ue zcfMlt*x$VAD>j%%T!KP=j#1?>USb-b+c8gib|`utj$Pb;oIIK)RJIo^fOF4YZ5Vf5QfJ&4@<4!^Q6(6Q1<#Cnm>PZ7h*5y@JLD@f}yt z7}l{X7=}Mzbrp@d@*7uKpAMzt)%}}`*uT}`mWc7z*RWmqjQ{%@Brh6dcWv1I?qZC4 zj>zH$;W}HOIW)+zb=2|7>#+EA?)5EPB!*A^mi@-=@i8UX`JCjPZ@`&$@Z&eIz^~y= zH{jSm^RC~)N*40$@33Rb;~#v-Msywtd0Jkc+!Y%dtl{4y+~u2|`X0=zmPg)12(99? zZc>Oat+|N-qWud$u&ZuQIjcVzq31jP#YS|CiGreV|CGtLnlFx%YE}=x|EJqKO*WtX zO}6v^HEul}CF0hPh+CyR`$r7HnHT@aR(41Udg88*$y&`Pmtt=KHQDhU1hEvT8;hR zi3s77Z?pF76km87L8RR{)r2nHX8r@q$NcZU+XaK`x(kaYJtCYr{AjbO!yN=E`RTE| zO$Byv`TVtV)+cniy_sCGea|%8uSK#i+}{OhzE%FWnNDM+2k%#uW2^JLVydcO-JIl& zIVSloi7;Nc`UY&Ny|jSX^QGkD}5Y_p4hMw2Zt!*u-*)`rQNji#UeWG7{urg!|! zeq?fS9Up!P0oT~bYUR}i)0<7K-idjd)-(Ad#(ppjbdvAMvTv=O%M|A#`@1m@)2g;I zcb1PWG`V+>`!P9Yp=n4*N|Y=xC3cc$Gj`T=!AE}4Sq`3O8q`gGo5=<7{7QGQJm9}~ zm;b?W^P#^y!|j7_@h!XFSoyqZau3;q;cPs&r#t{lQFc%HeOSRWz2t)|!gQ;bjGI$m z)0n4ZoH6_IiGAd&@Z`>c@=CVFv?Wl!j4KG!_3`()7y!c?D~CdPI}$+^{Cwa9}tdNyirrln2SK@uocksrdvOTAu!_9LVpEmP6(9 z&zQQ5k@5dXh&wo%9aG6Td7YEHG!UD=kS5#C0jBBE@(~$Vh_IQ6imJh|pP<@0=;8z~k5~`KZi3;2+MCk2wG9Fm8qTiCJES2q`YKk&Kpz;}eZ&6kh58s5jA zZI6SYVLlk9@&r8?`tsHZu*W8x{g6XQPL$(uK=>+A9?FK9ni6FLW99s{B>6=a!XGAK zy!&~Ng~(;_T?^%-ZSK5ltMO~qWNYu->|&@+r^B;Mn5S zWXr_=D};Rq%L|ssX)e7$UM%x|OXX&{)A#CR=$FX>Om_J}&7Dt{^^6%!U6;#~oLn+I znrt`SO)sR%6P#TxX_{=_8q*gq$-g+sL%+52^NKZ?V4ZC0h&?4E-(3q!Pc}KPlf#)) zT2rHG)N8Vv%yye58syL2UEFILZ3iBh+HI9r$SlURK1=?wmFC4;jW%vHE?Rg*e%|XADB2kDT32VR9Lc{qA}4$819?x2qF#K=QF&wQ zS3z>T1a{#+9F=X(gFzZ(x^+w*;mm$9bv`Nk%IsCsGpFSRGOIN0J|jD^)|+4?az5 zz*hJ}q&>jj4D5cI54j+})BCsWwi+YKGVpwRywUa=%0iKDMtTR*?eHx9kpF!_9^!rn zymzpjjz4aC?la6;m(Y`qkC&at@5!P3%P07&7v)6R`z-(IqFgU;I%E3o3%QHzvL?e; z^Z$xFzJB}ZB55*@ciqmMYWINGD9gq@=MeQ+uhsSyLa5(b{z;@ZPoA7y?bh$k6z)asI&vt-EBn7Jz%YB)8}v=t#8x+ zu20%;J<+be6_*;g>!e;j)_YHr?R4z5owpkThdcC%ao(A~wVlpgw)6V#z&mI3G~L_Z zXgkTfZD&h;;KsZ9n{g@0FWb&3%XaQ+u$}A&;`Xofvp!Qg5JM5z?Xhr)6;r)*v{VPZ6~mWYRqMR&8#@h z*l9aQiF;>LVD<<4H^-TitC^#)l0C5Ac9vJM2T&n0Q6{p`6!f!Aw&O>=s1F@QOVJO> zEQ{?|Hrmb+>_y@Vu#2&Cu#cg>=WM43yB-}T{!XkPuD;4P9gT9JYxKyU~8u z&#=vdzR&t0)*m5!l{9C_P!#R}@mIt);sm>t@J~r|gYX@MOR}OFSGq&>@C(OWBr@i@7Rf^^=go_TKo7w z+7`Zipk+v_=bNh7IuTdMydH2F6+A)-Bl0LFESBwV9%jT$%7817%%n1$iGWYL z@G$mZQK$ed*iIzb+-E`s5NyJ&k%eC}y!1ufIVeLCE>qw<;PxjOMV9MY3(8qBoULNL z0reqKb8C1TO z$4IizDr`p#Hh7AETYBDh;Xf*Hq7l8u3;srrN7C^{h0Tw_mi>#v7?l*V|HUDZ{H)tt z8)Co}Om(syNyiHnwj~Ce`5uE4lI$u|f$bP@UpE8EMHk+$usNRSt>x+A7B-TOFNImU z7$0|!0jDzuOAeB7$~w2Tnq#ot|Kr~-NU{YA+vj0^z-VK326L+9A_-S2a7KLe8rNNC zN-UIpBeaW;D{Scy%l?mavZw&sj&k}#@FxnqZwQXeZh)yn#RDPsf%R@{T^PxV<6k{X z9Run>!B0YPxdQvfM6a=Sld~jhK%!IsNnwjdVNH2@Yys*-vZ+5-;O(Qpl5N%)2asgH zxWTRQ>FBJf9f>ov(@4TUP~e2I(QDk~;mKnp*^LUD7lUnx=efRkUOkoY5e2S{0blbn z56gI$?NQicG1$IDL(?XNS(E)V^EtP<24cYZ%*|6G6h1jUq_7JTqPNz;$voMJB)bmQ z6qi6^Ss4QkPT?7D9#NC<>x$!pG1#d*o|l0nd);MC?Q#rwa5f>I3x8>&+gj=4qSv^1 z22Y|R>G&~)T{6gW{EvFUn8L%KNWwc6xFLpPUmDZlAj!5WY?sQ4WyCGAdirGzTmQ1o7~najKG@e;Nt_#RNy5FTpa-x?8*#!GuHvt*nLPAx<+B! zM`0O1IR60G&NZ|qB;n%<>=_@u#+g}$=0}qKNMZdkSkF9;f8RV8o>S#ESH&oBH|a&8 zZERAu%RZ{GM@C^w=7-pXukxA&Dlx;y@ebftATe&AQZf>8kRgHJ9zz}^^5|i zi-+!MYCpCJNw`sQJZnPa8s{>{mSBsq%aCNxDQw9E=HH3byepZHOTg9GeMrI+H@mG> zH;QA~TD9MxQzOZKU12+6>v)YM$^4d~RiYqL55?R(zGa3Qk?0doC~(rm$c2`U2VfGv z?K*By*n$zPDF>ec08!(q3mL1CEH$5p9_k-eBVfr&$4B5!E9{spF54QJHHUtmcLR#) zQKaJs6jslj#{p9{N7gu-xIEM<1bbLv8)G;YGn6$US?JzsK2jwIpY9m2?q8B=6EiWV>$xhnpwpPBvnvoo5a#Z-0E8~0x z-k`vd*wRXRHj<7j6t)F+^*V0Fp)hM|wXDddUQlCb`Dhsuo$G)C+rUlRLLD=b;S?Z*1ZgZ^$4(=S?ads_71gfw?j=!t0&9E(X zqqB+Aa6Su_?GC}^gRr$L$w*^r+;}bLMUHc{28qQJj%#MU6^Xl-?J%Oo=dgki;r|l0 zaW0lT)-RAYe=omykXTj{*Fsp#NLPylb5mhTr}EQWK#gn^kVr6odnhvzP9-cHh;SC+ zAXbDI6RyCDrApYBIG>;-l!}T`;eH%9(b}(s3eyu#=O32NWQNG!8Cun=OlL?!k@?Tb zTx2S0{Q_aJa4VmzP+ZEJqA@#V4Cy2$Gv#?If2zhj{&WGOyHs~2KDNbG*GEbxudvQaY< zt)3L#mWs_ra!LHB^;WWRx7j?vUi<81ewNPho$l6Nv`k#MdFtZ0xuWw>%nBl=1=6M& zFB*E;QtJ($kv68TpPzgE)+L`YdrYY5Ebk1$L7S^Hc2_9u5#dKg_?pcd(6+Tsgd5p) zjnl0CB3!{VhZUc*&Wdo-bavHr>r=wsbYHxd?xSmrwdSPYFN0l~;j_MzLOMTTzt38g ZV$9L8yM!(CS#M%}O)z{KacGgj{{uoOHe~<+ delta 36194 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 l1EU0ee05jZu!l1I=tIE?|%*DV>ti- delta 44660 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 ZLE&jiL{o;M(op;VX_bhk6_nkMERG3RD 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 XD9)(;sXFWhd$PMJnCWgRe|6*ki)G2j delta 44353 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 Te>fR&vD?{(=!QpjY=KdVU%ec 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

x^700o3+TDd2p-+^vOh;xU1drTKc8)~aihe~L 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ɷ%E(Mag5hH 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 delta 71359 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 Date: Mon, 12 Oct 2026 14:39:28 +0200 Subject: [PATCH 3/6] fix(export-budget): float cap, soc_kw history scaling, unquoted off - export_budget_cap_kwh was read with an int default, so get_arg truncated 7.1 to 7. - soc_kw history for the pv_origin replay is now scaled by battery_scaling, as the live SoC is. - export_budget_mode: off unquoted is YAML false; the schema accepts it. - Docs: the replay length follows the history days_previous loads. Co-Authored-By: Claude Opus 5.5 --- apps/predbat/config.py | 2 +- apps/predbat/fetch.py | 3 ++- apps/predbat/tests/test_export_budget.py | 33 +++++++++++++++++++++++- docs/energy-rates.md | 8 +++--- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/apps/predbat/config.py b/apps/predbat/config.py index 93596926d..c7a9244ce 100644 --- a/apps/predbat/config.py +++ b/apps/predbat/config.py @@ -2604,7 +2604,7 @@ "db_primary": {"type": "boolean"}, "threads": {"type": "string|integer", "allowed": ["auto", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]}, "prediction_kernel_enable": {"type": "boolean"}, - "export_budget_mode": {"type": "string", "allowed": ["off", "pv_origin", "pv_equivalent"]}, + "export_budget_mode": {"type": "string|boolean", "allowed": ["off", "pv_origin", "pv_equivalent"]}, "export_budget_cap_kwh": {"type": "float", "zero": True}, "log_count": {"type": "integer", "min": 2, "max": 100}, "ha_url": {"type": "string", "empty": False}, diff --git a/apps/predbat/fetch.py b/apps/predbat/fetch.py index ae59a785d..be7ee8f00 100644 --- a/apps/predbat/fetch.py +++ b/apps/predbat/fetch.py @@ -1756,7 +1756,8 @@ def fetch_export_budget_soc_history(self): clean_increment=False, smoothing=False, divide_by=1.0, - scale=soc_max / 100.0 if percent_sensor else 1.0, + # soc_kw is scaled by battery_scaling, as the live SoC is (Inverter.update_status) + scale=soc_max / 100.0 if percent_sensor else (getattr(inverter, "battery_scaling", 1.0) or 1.0), required_unit="%" if percent_sensor else "kWh", ) if not data: diff --git a/apps/predbat/tests/test_export_budget.py b/apps/predbat/tests/test_export_budget.py index 25698c384..80daf57ed 100644 --- a/apps/predbat/tests/test_export_budget.py +++ b/apps/predbat/tests/test_export_budget.py @@ -401,6 +401,18 @@ def test_config_parse(my_predbat): failed = True my_predbat.args.pop("export_budget_mode", None) my_predbat.args.pop("export_budget_cap_kwh", None) + # `export_budget_mode: off` unquoted is YAML false: it means off and must pass apps.yaml validation + my_predbat.args["export_budget_mode"] = False + saved_arg_errors = my_predbat.arg_errors + my_predbat.arg_errors = {} + try: + my_predbat.validate_config() + if "export_budget_mode" in my_predbat.arg_errors: + print("ERROR: export_budget_mode false failed validation: {}".format(my_predbat.arg_errors["export_budget_mode"])) + failed = True + finally: + my_predbat.arg_errors = saved_arg_errors + my_predbat.args.pop("export_budget_mode", None) my_predbat.fetch_config_options() return failed @@ -436,6 +448,7 @@ def test_soc_history_fetch(my_predbat): now = my_predbat.now_utc records = [{"last_updated": (now - timedelta(minutes=60)).isoformat(), "state": "50"}, {"last_updated": (now - timedelta(minutes=30)).isoformat(), "state": "60"}] saved_soc_max = [inverter.__dict__.get("soc_max", "missing") for inverter in my_predbat.inverters] + saved_scaling = [inverter.__dict__.get("battery_scaling", "missing") for inverter in my_predbat.inverters] for inverter in my_predbat.inverters: inverter.soc_max = 10.0 my_predbat.args["soc_percent"] = "sensor.test_battery_soc" @@ -447,17 +460,35 @@ def test_soc_history_fetch(my_predbat): if not history or abs(history.get(0, -1) - 0.6 * total) > 1e-6 or abs(history.get(45, -1) - 0.5 * total) > 1e-6: print("ERROR: export_budget SoC history now {} 45 minutes ago {} expected {} / {}".format(history.get(0) if history else None, history.get(45) if history else None, 0.6 * total, 0.5 * total)) failed = True + # A soc_kw sensor is scaled by battery_scaling, as the live SoC is (inverter.py) + my_predbat.args.pop("soc_percent", None) + my_predbat.args["soc_kw"] = "sensor.test_battery_soc_kw" + for inverter in my_predbat.inverters: + inverter.battery_scaling = 0.8 + kw_records = [{"last_updated": (now - timedelta(minutes=60)).isoformat(), "state": "5"}, {"last_updated": (now - timedelta(minutes=30)).isoformat(), "state": "6"}] + my_predbat.get_history_wrapper = lambda entity_id, days=30, required=True, tracked=True: [kw_records] + history = my_predbat.fetch_export_budget_soc_history() + expect_now, expect_45 = 0.8 * 6 * len(my_predbat.inverters), 0.8 * 5 * len(my_predbat.inverters) + if not history or abs(history.get(0, -1) - expect_now) > 1e-6 or abs(history.get(45, -1) - expect_45) > 1e-6: + print("ERROR: export_budget soc_kw history now {} 45 minutes ago {} expected {} / {}".format(history.get(0) if history else None, history.get(45) if history else None, expect_now, expect_45)) + failed = True my_predbat.get_history_wrapper = lambda entity_id, days=30, required=True, tracked=True: [] if my_predbat.fetch_export_budget_soc_history(): print("ERROR: export_budget SoC history should be empty without sensor history") failed = True finally: del my_predbat.get_history_wrapper - for inverter, soc_max in zip(my_predbat.inverters, saved_soc_max): + my_predbat.args.pop("soc_kw", None) + my_predbat.args["soc_percent"] = "sensor.test_battery_soc" + for inverter, soc_max, scaling in zip(my_predbat.inverters, saved_soc_max, saved_scaling): if soc_max == "missing": del inverter.soc_max else: inverter.soc_max = soc_max + if scaling == "missing": + inverter.__dict__.pop("battery_scaling", None) + else: + inverter.battery_scaling = scaling return failed diff --git a/docs/energy-rates.md b/docs/energy-rates.md index aa745282d..d6b092914 100644 --- a/docs/energy-rates.md +++ b/docs/energy-rates.md @@ -737,12 +737,14 @@ Because the inverter exports at full power down to a window's target SoC, every the target of the export running now to at least the measured SoC minus the energy the budget still allows (rounded up to a whole percent). -Each cycle Predbat replays the last 7 days of `pv_today`, `export_today`, `import_today` and -`load_today` history to find where the budget stands. For `pv_origin` it also reads 7 days of the +Each cycle Predbat replays up to the last 7 days of `pv_today`, `export_today`, `import_today` and +`load_today` history to find where the budget stands. It uses the history already loaded for load +prediction, so the replay is shorter when [days_previous](apps-yaml.md#days_previous) covers fewer +days (`history_steps` on the sensor shows how many 5 minute steps were replayed). For `pv_origin` it also reads 7 days of the battery's `soc_percent` (or `soc_kw`) history, so conversion losses are not mistaken for PV charge; without that history it estimates the battery flow and logs a warning. It publishes `predbat.export_budget` (exportable kWh now, with `planned_battery_export_kwh` and `noncompliant_export_kwh` - export in the -last 7 days the rule would not have allowed). Its `results` attribute holds the budget over the +replayed history the rule would not have allowed). Its `results` attribute holds the budget over the best plan in the same format as `predbat.soc_kw_best`, so it can be charted next to the planned SoC. This is a planning aid, not legal advice. Check the rules that apply to you. From 8ff0041613cce797941f6fb04ee769095896734f Mon Sep 17 00:00:00 2001 From: piomar123 Date: Tue, 13 Oct 2026 14:46:50 +0200 Subject: [PATCH 4/6] docs(export-budget): pv_equivalent never limits direct PV export, the cap only bounds carried credit Co-Authored-By: Claude Opus 5.5 --- docs/energy-rates.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/energy-rates.md b/docs/energy-rates.md index d6b092914..80419d729 100644 --- a/docs/energy-rates.md +++ b/docs/energy-rates.md @@ -726,9 +726,11 @@ battery exports within such a rule. Set in `apps.yaml`: may be force exported. Every kWh that reaches the grid is PV, sent directly or stored first, and grid energy is only ever used on site. Use this where the rule is "only PV energy may be sold" and storing grid energy for your own use is allowed. -- **pv_equivalent**: a bucket that PV production fills and every export (direct PV included) drains, - capped at the battery size. The battery may force export while the bucket has energy. This can sell - grid-charged energy when the bucket has credit, so it is the less strict reading. +- **pv_equivalent**: a credit bucket that all PV production fills (including PV the house uses) and + every kWh exported drains. The battery may force export while the bucket has credit. Direct PV + surplus export is never limited; it only uses up credit. `export_budget_cap_kwh` (default the + battery size) caps how much credit is carried over. This can sell grid-charged energy when the + bucket has credit, so it is the less strict reading. Only battery-to-grid export is limited; PV surplus export and grid charging for your own use are not. When the budget runs out during an export window the battery keeps covering the house and only the From 405deaf54ce3fc0f6e6d9e45d2f0d55bb79103cd Mon Sep 17 00:00:00 2001 From: piomar123 Date: Tue, 13 Oct 2026 17:02:24 +0200 Subject: [PATCH 5/6] docs(export-budget): worked pv_origin example for grid charge, PV and load in the same period (#3973) Co-Authored-By: Claude Opus 5.5 --- docs/energy-rates.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/energy-rates.md b/docs/energy-rates.md index 80419d729..6a8741268 100644 --- a/docs/energy-rates.md +++ b/docs/energy-rates.md @@ -726,6 +726,12 @@ battery exports within such a rule. Set in `apps.yaml`: may be force exported. Every kWh that reaches the grid is PV, sent directly or stored first, and grid energy is only ever used on site. Use this where the rule is "only PV energy may be sold" and storing grid energy for your own use is allowed. + + For example (ignoring losses), the battery charges 5 kWh from the grid while PV makes 5 kWh and the + house uses 5 kWh. The 5 kWh stored counts as PV and the house is deemed to have used the grid energy, + so the battery may export those 5 kWh later. Over the whole period 5 kWh was imported and used on + site, and the 5 kWh exported equals the PV produced. Had the battery charged 5 kWh from the grid at + night with no PV, that energy would be grid part: it can run the house but is never force exported. - **pv_equivalent**: a credit bucket that all PV production fills (including PV the house uses) and every kWh exported drains. The battery may force export while the bucket has credit. Direct PV surplus export is never limited; it only uses up credit. `export_budget_cap_kwh` (default the From df7e7c4cf007dc31f351034273fa444ddd7b246a Mon Sep 17 00:00:00 2001 From: piomar123 Date: Tue, 13 Oct 2026 19:31:54 +0200 Subject: [PATCH 6/6] docs(export-budget): direct PV export doesn't reduce pv_equivalent credit, only battery export does Co-Authored-By: Claude Opus 5.5 --- docs/energy-rates.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/energy-rates.md b/docs/energy-rates.md index 6a8741268..8fbe32bca 100644 --- a/docs/energy-rates.md +++ b/docs/energy-rates.md @@ -734,7 +734,8 @@ battery exports within such a rule. Set in `apps.yaml`: night with no PV, that energy would be grid part: it can run the house but is never force exported. - **pv_equivalent**: a credit bucket that all PV production fills (including PV the house uses) and every kWh exported drains. The battery may force export while the bucket has credit. Direct PV - surplus export is never limited; it only uses up credit. `export_budget_cap_kwh` (default the + surplus export is never limited and doesn't reduce the credit, because the PV it sends out is added + and removed in the same step; only battery export draws the credit down. `export_budget_cap_kwh` (default the battery size) caps how much credit is carried over. This can sell grid-charged energy when the bucket has credit, so it is the less strict reading.