Context
Live Growatt MOD 5000TL3-XH / 15 kWh / Belgium Dynamic (Belpex H + Luminus), tester @Frank-Leysen. Related discussion lived on #126; opening a dedicated issue per your request.
Today BESS has a single Min SOC knob. In practice we need two different floors:
- Hard floor (Min SOC) — never go below this (hardware / safety / end of overnight).
- Evening export / midnight planning floor — how low evening
BATTERY_EXPORT may go so enough energy remains for overnight house load until morning PV covers consumption.
With only one knob we keep hitting a bad trade-off (reported on #126, e.g. 17 Jul):
| Min SOC setting |
What happens |
| Low (e.g. 12–15%) |
Strong evening export, but overnight can run too thin → avoidable grid import on Belgian buy≈0.35 vs sell≈0.12–0.16 |
| High (e.g. 47%) |
Night reserve OK, but DP often holds far above Min SOC through the peak (we saw ~74% flat) → evening arbitrage largely wasted |
So: one Min SOC cannot express "export hard into the evening peak, but keep X% reserved for overnight load support until solar returns."
Observed (today's numbers as example)
- Battery: 15 kWh
- User Min SOC: 12% → 1.8 kWh hard floor
- Overnight battery use (last night → this morning, until PV starts covering load): ~2.8 kWh
- Implied planning reserve after evening export: 1.8 + 2.8 = 4.6 kWh ≈ 30.7% SOC
Separately, before tomorrow's day-ahead prices land (~14:00), the dashboard Net Grid Cost can look overly optimistic because the plan still assumes export down toward Min SOC; after prices, midnight SOC often rises (overnight reserve) and the headline shrinks. A visible computed floor would make that behaviour easier to understand even when the horizon is incomplete.
Desired
Keep one user setting: Min SOC (hard floor).
Have BESS compute an overnight planning floor from history, e.g. last 7 nights:
planning_floor_kWh = min_soc_kWh + expected_overnight_battery_use_kWh (+ optional safety margin)
planning_floor_soc = planning_floor_kWh / capacity
Use planning_floor_soc in:
- evening
BATTERY_EXPORT stop / midnight target
- schedule / Savings / Net Grid Cost so the UI does not imply "export all the way to Min SOC" when overnight reserve is required
Important nuance: overnight the battery may still discharge from planning_floor down to Min SOC for house load. The computed value is not a second hardware Min SOC (writing ~31% to the inverter would stop discharge too early and force expensive night import).
expected_overnight_battery_use ideally = energy needed until net PV covers house load (not a fixed clock). Prefer median or P75 of recent nights + a small configurable margin, so boiler/EV/heatwave outliers do not dominate.
Proposal — question for Johan
Does this design make sense to you as a product approach?
We are not asking to replace the DP with rules. The idea is a transparent constraint / terminal target derived from Min SOC + recent overnight reality, so:
- users keep a single Min SOC
- graphs and economics immediately respect the real overnight buffer
- we avoid the manual Min SOC yo-yo (15% vs 47%) that fights the optimiser
If the DP already intends to hold this reserve via the load forecast: great — then the ask is mainly to surface that computed floor and to guarantee it when the forecast / pre-14:00 horizon underestimates overnight need (without double-counting on top of a correct load model).
Happy to stay guinea pig on Growatt + Belpex H and supply debug bundles for any prototype (e.g. 7-day median overnight kWh + margin %).
Thanks — curious what you think of the approach.
Context
Live Growatt MOD 5000TL3-XH / 15 kWh / Belgium Dynamic (Belpex H + Luminus), tester @Frank-Leysen. Related discussion lived on #126; opening a dedicated issue per your request.
Today BESS has a single Min SOC knob. In practice we need two different floors:
BATTERY_EXPORTmay go so enough energy remains for overnight house load until morning PV covers consumption.With only one knob we keep hitting a bad trade-off (reported on #126, e.g. 17 Jul):
So: one Min SOC cannot express "export hard into the evening peak, but keep X% reserved for overnight load support until solar returns."
Observed (today's numbers as example)
Separately, before tomorrow's day-ahead prices land (~14:00), the dashboard Net Grid Cost can look overly optimistic because the plan still assumes export down toward Min SOC; after prices, midnight SOC often rises (overnight reserve) and the headline shrinks. A visible computed floor would make that behaviour easier to understand even when the horizon is incomplete.
Desired
Keep one user setting: Min SOC (hard floor).
Have BESS compute an overnight planning floor from history, e.g. last 7 nights:
Use
planning_floor_socin:BATTERY_EXPORTstop / midnight targetImportant nuance: overnight the battery may still discharge from planning_floor down to Min SOC for house load. The computed value is not a second hardware Min SOC (writing ~31% to the inverter would stop discharge too early and force expensive night import).
expected_overnight_battery_useideally = energy needed until net PV covers house load (not a fixed clock). Prefer median or P75 of recent nights + a small configurable margin, so boiler/EV/heatwave outliers do not dominate.Proposal — question for Johan
Does this design make sense to you as a product approach?
We are not asking to replace the DP with rules. The idea is a transparent constraint / terminal target derived from Min SOC + recent overnight reality, so:
If the DP already intends to hold this reserve via the load forecast: great — then the ask is mainly to surface that computed floor and to guarantee it when the forecast / pre-14:00 horizon underestimates overnight need (without double-counting on top of a correct load model).
Happy to stay guinea pig on Growatt + Belpex H and supply debug bundles for any prototype (e.g. 7-day median overnight kWh + margin %).
Thanks — curious what you think of the approach.