oprava ranniho nenabijeni
Some checks failed
CI and deploy / migration-check (push) Failing after 50s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-06-01 18:50:03 +02:00
parent 430e081841
commit 0dcf11d471
4 changed files with 230 additions and 4 deletions

View File

@@ -5,6 +5,37 @@ Formát: **datum (ISO)** · stručný důvod · soubory · chování / ověřen
---
## 2026-06-01 — BA81/KV1: FVE export při vysokém sell, nabíjení u min sell (v58)
**Problém:** U **`purchase_pricing_mode=fixed`** (BA81 buy ~3,09 Kč, KV1 ~6,35 Kč) oproti home-01 (spot):
- půlnoc→ráno baterie **~2430 %** bez vývozu i tam, kde `sell > buy + degrad` (BA81 úsvit ~3,35 Kč);
- **~06:00** nabíjení z FVE při výkupní **~3 Kč/kWh**, místo exportu přebytku a nabíjení až u **nejnižšího sell** v horizontu (**~1,5 Kč**, poledne);
- KV1 večer jen malý vývoz ve špičce, ráno zbytečně vysoká rezerva.
Příčiny v LP: chybějící **`bc_pv == 0`** při sell výrazně nad denním minimem; `pv_store` / `ge_pv == 0` u fixního tarifu mimo úzké `fixed_pre_neg_*`; **`evening_early_export_ban`** (`ge_bat = 0`) i pro profitable `sell > buy` v noci; `peak_export_shortfall` noční okno přeskakoval (pravidlo pro spot / `evening_push`).
**Změna (v58)**`backend/services/planning_engine.py`:
- Konstanta **`FIXED_PV_CHARGE_ONLY_NEAR_MIN_SELL_CZK_KWH = 0.20`**; **`fixed_horizon_min_sell_pre`** = `min(sell_price)` pro `sell ≥ 0` v horizontu.
- **`fixed_high_sell_no_pv_charge`:** `sell > min_sell + 0,20` a PV přebytek > `NIGHT_EXPORT_PV_SUNRISE_SURPLUS_W`**`bc_pv = 0`**, **`bc_gi = 0`**; rozšířen **`skip_pv_store_block`** (FVE do sítě, ne do baterie).
- Fixní tarif: **`evening_export_exempt_ts |= profitable_export_ts_pre`** (`_slot_profitable_battery_export`: `sell > buy + degrad`).
- **`peak_export_shortfall`:** v nočním okně pokračovat i pro fixní profitable sloty (ne jen tvrdý `evening_push`).
- Snap: `fixed_horizon_min_sell_czk_kwh`, `fixed_pv_charge_near_min_sell_margin_czk_kwh`.
**Soubory:** `backend/services/planning_engine.py`, `backend/tests/test_planning_dispatch_milp.py`, `docs/04-modules/planning.md`, `docs/planning-changelog.md`.
Tag **`2026-06-01-fixed-pv-export-min-sell-charge-v58`**.
**Ověření:**
```bash
cd backend && pytest tests/test_planning_dispatch_milp.py \
-k "fixed_high_sell_no_pv_charge or fixed_night_profitable" -q
```
MCP po replanu BA81/KV1: `planning_run.solver_params->>'planner_build_tag'` obsahuje `v58`; ráno export (`grid_setpoint_w < 0`, `battery_setpoint_w` malé), poledne nabíjení (`battery_setpoint_w` vysoké u min sell).
---
## 2026-06-01 — home-01: večerní vývoz po relaxed_expensive_import (v57)
**Problém:** v55 při **jakékoli** relaxed větvi vynulovalo `evening_push_ts``evening_early_export_ban` zakázal `ge_bat` i při sell **~9,6 Kč/kWh**; baterie jen samospotřeba, zítra export FVE za **~2 Kč**.