feat(planner): EV anti-fragmentace + 3f power floor (Fix B)
3f floor (phases>=3 → 6A×fáze×230 ≈4140W, ruší 1f trickle) + block-start penalta (asset_ev_charger.planner_ev_start_penalty_czk V108, default 0=no-op). Golden gate zelená (363 passed). Postaveno paralelním worktree agentem, zvalidováno sériově. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -141,6 +141,13 @@ async def _load_site_context(site_id: int, db):
|
||||
SimpleNamespace(
|
||||
max_charge_power_w=int(v["max_charge_power_w"]),
|
||||
min_power_w=int(v.get("min_power_w") or 0),
|
||||
# phases / planner_ev_start_penalty_czk: parametry wallboxu pro
|
||||
# anti-fragmentaci EV v solver_v2 (Fix B). Default phases=3 (typický
|
||||
# 3f wallbox), start penalta 0 = no-op (golden-safe).
|
||||
phases=int(v.get("phases") or 3),
|
||||
planner_ev_start_penalty_czk=float(
|
||||
v.get("planner_ev_start_penalty_czk") or 0.0
|
||||
),
|
||||
battery_capacity_kwh=float(v["battery_capacity_kwh"]),
|
||||
default_target_soc_pct=float(v["default_target_soc_pct"]),
|
||||
)
|
||||
@@ -150,6 +157,8 @@ async def _load_site_context(site_id: int, db):
|
||||
SimpleNamespace(
|
||||
max_charge_power_w=0,
|
||||
min_power_w=0,
|
||||
phases=3,
|
||||
planner_ev_start_penalty_czk=0.0,
|
||||
battery_capacity_kwh=1.0,
|
||||
default_target_soc_pct=80.0,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user