Faze 0A: battery guard carve-out — neblokovat import na nabiti pri zaporne cene
_apply_export_plan_guard / _build_setpoints: kdyz slot CHARGE / importuje na nabiti baterie (grid_sp>0 & bat>0), guard vrati sp beze zmeny a export_ban se nenastavi. Opravuje, ze se baterie nedobila v zapornych cenach (CHARGE+17kW prekloplen na PASSIVE -> Deye nenabijel ze site). Diagnoza: agent a599eecc. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,14 @@ Formát: **datum (ISO)** · stručný důvod · soubory · chování / ověřen
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-13 — exekuce: baterie se nedobila v záporných cenách (guard carve-out)
|
||||
|
||||
- **Problém:** buy záporný 13:00–15:45 (−0.47…−0.95 Kč), plán ordinoval CHARGE +17 kW import, SoC cíl ~96 %, ale realita SoC 71 % (nabíjení jen z PV, grid≈0). Večer se dokupovalo ze sítě místo z plné baterie.
|
||||
- **Příčina:** `_apply_export_plan_guard` / `_build_setpoints` (setpoints.py) — false positive: `sell<0` & `grid_sp>=0` splete IMPORT na nabití s exportní situací a překlopí CHARGE→PASSIVE / nastaví export_ban. V PASSIVE Deye nenabíjí ze sítě.
|
||||
- **Mechanismus (fix):** carve-out — když slot je CHARGE (`pm=='CHARGE'`) nebo importuje na nabití (`grid_sp>0 & bat>0`), guard vrátí sp beze změny a export_ban se nenastaví. §6 zakazuje jen export, ne import (§7).
|
||||
- **Soubory:** backend/services/control/setpoints.py, test_control_export_plan_guard.py (test_neg_sell_grid_charge_not_blocked), docs/audits/planner-neg-buy-charge-not-executed-2026-06-13.md.
|
||||
- **Ověření:** guard testy 47 passed; živě — záporný den → grid_w roste, SoC k cíli. Mimo solver → golden gate / solver_v2_eval beze změny.
|
||||
|
||||
## 2026-06-13 — degradační cena dle skutečných cen packů (V103)
|
||||
|
||||
- **Problém:** seedy nesly default 0.50 Kč/kWh u KV1/BA81/HU1 — u malých packů zabíjel mělké arbitráže, u HU1 zkresloval studii spotové smlouvy.
|
||||
|
||||
Reference in New Issue
Block a user