oprava nevyberu maximalnich sell slotu (sahal i na zitejsi vecer)
Some checks failed
CI and deploy / migration-check (push) Failing after 13s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-05-30 22:56:28 +02:00
parent 4f67aad4d8
commit 830aa7a4cc
5 changed files with 227 additions and 59 deletions

View File

@@ -97,8 +97,8 @@ flowchart TD
- v **celém nočním okně** pro **všechny** sloty s `allow_discharge_export` **mimo** `evening_push_ts` (výjimky: pre-neg / neg-evening větve);
- **nezakazuje** přebytek FVE do sítě (`ge_pv`).
3. **v43 — večerní push + nocí vlastní spotřeba + odpolední arbitráž** (`evening_push_ts`):
- push jen **≥17h Prague** + `allow_discharge_export`; rozpočet Wh **per kalendářní večer** (druhý den v horizontu ne prázdný);
3. **v43 / v49 — večerní push + nocí vlastní spotřeba + odpolední arbitráž** (`evening_push_ts`):
- push jen **≥17h Prague** + `allow_discharge_export`; **v49:** rozpočet Wh z **aktuální SoC** jen pro **první noční epizodu** v horizontu (dnes večer → ráno), **ne** dělení se zítřejším večerem — zítřek přidá vlastní rolling replan po FVE/neg dni;
- mimo push: **`night_self_consume_discourage`** — baterie krmí dům, ne import ~5 Kč/kWh;
- **R__063 `evening_arbitrage_unlock`:** grid nabíjení **1116h** jen na dnech **bez sell<0**, když večerní peak sell > buy + degrad;
- **bez predawn push** (0206h); **`peak_export_shortfall`** v noci vypnutý.

View File

@@ -5,6 +5,34 @@ Formát: **datum (ISO)** · stručný důvod · soubory · chování / ověřen
---
## 2026-05-31 — Večerní push: celý Wh rozpočet jen pro dnešní noc (v49)
**Problém (v43):** `push_budget / počet_kalendářních_večerů` dělil **aktuální SoC** mezi dnešní a **zítřejší** večer v horizontu — přes den FVE / neg nabíjení. Dnes večer dostal ~polovinu rozpočtu → chyběly sloty (např. 23:15); zítra večer push z dnešní SoC nedává smysl.
**Změna (v49):**
- **`_primary_night_export_segment_indices`** — první noční epizoda (17h → východ FVE) od začátku horizontu.
- **`_evening_push_soc_budget_calendar_segments`** — push Wh jen pro kalendářní večer v této epizodě; **jeden společný** rozpočet, kandidáti **sell desc** přes zbývající sloty.
- **Hysteréze** (`_rolling_evening_push_override`): drží jen sloty z budget-eligible množiny.
Tag **`2026-05-31-evening-push-budget-primary-night-v49`**. Zítřejší večer → vlastní rolling replan po dni.
**Ověření:** `pytest … -k evening_push_budget_only_primary`; MCP: `planner_build_tag` v49, `evening_push_ts` bez zítřejších 18:30+ při replanu dnes večer; více dnešních push slotů při stejné SoC.
---
## 2026-05-31 — Podlaha vývoje reserve 20 %, žádný curtail slabé FVE za úsvitu (v48)
**Problém (běh 20728, v47):** Večer + **03:0003:15** ranní peak export → SoC **~13,5 %** (pod **reserve 20 %**). **05:1506:00 Prague** (= 03:1503:45 UTC) plán **řeže celou PV A** (`curt_a = pv_a` při ~86346 W) — `ge_pv=0` kvůli `sell < future_sell` (večerní peak v horizontu).
**Změna (v48):**
- Rozpočet push + podlaha SoC: **`reserve_soc_wh`**, ne `min_soc_wh` (10 %).
- Ranní peak export: **`soc[t] ≥ reserve`** v peak slotu.
- **`DAWN_LOW_PV_NO_CURTAIL_W`:** při `sell≥0` a `pv_a < 1500 W` neblokovat `ge_pv` (žádný úsvitní curtail).
Tag **`2026-05-31-reserve-floor-no-dawn-curtail-v48`**. Pravidlo agenta: `.cursor/rules/ems-planning-agent-discipline.mdc`.
---
## 2026-05-30 — Po večerním pushu noc z baterie, ne import za 5 Kč (v47)
**Záměr uživatele:** Večerní vývoz za **~3 Kč/kWh** (sell&lt;buy) je **správně** — vyprázdnění před neg dnem/FVE. Špatně je **po pushu držet SoC a kupovat dům za ~5 Kč**.