From af55fb33dd2cb7022dbef93ca5972c762c393b9b Mon Sep 17 00:00:00 2001 From: Michiel Berger Date: Fri, 1 May 2026 09:37:21 +0200 Subject: [PATCH] Default demand_kwh = 1518 (annualised) so dad's hourly P1 passes through unscaled --- src/pluginbattery/web.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/pluginbattery/web.py b/src/pluginbattery/web.py index 581e386..4cf2746 100644 --- a/src/pluginbattery/web.py +++ b/src/pluginbattery/web.py @@ -322,10 +322,13 @@ app = Flask(__name__) DEFAULTS = dict( # Window: 2025-01-01 → 2025-09-01 (8 months of dad's actual data with - # matching 2025 prices + solar). Net consumption over those 8 months - # is 1010 kWh; setting demand_kwh = 1010 gives scale factor 1.0 so the - # P1 series passes through unscaled. - demand_kwh=1010.0, retail=0.25, pv_kwp=0.0, pv_yield=875.0, + # matching 2025 prices + solar). The simulator scales demand by + # demand_kwh / ANNUAL_DEMAND_BASE; ANNUAL_DEMAND_BASE annualises the + # 8-month window's 1010 kWh → 1518 kWh-equivalent/yr, so set the + # default to 1518 to keep the per-hour P1 values unscaled (scale = 1.0). + # Dad's actual full-year net is 2351 kWh (from his complete CSV) — so + # using 1518 effectively represents 'an 8-month-extrapolated 2025 year'. + demand_kwh=1518.0, retail=0.25, pv_kwp=0.0, pv_yield=875.0, fixed_rate=False, saldering=False, eta=0.88, inflation=0.03, export_rate=-0.106, )