oprava zbytecneho curtailu A
Some checks failed
CI and deploy / migration-check (push) Failing after 10s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-05-30 23:23:17 +02:00
parent 830aa7a4cc
commit a03b45d4a9
7 changed files with 177 additions and 23 deletions

View File

@@ -5,6 +5,36 @@ Formát: **datum (ISO)** · stručný důvod · soubory · chování / ověřen
---
## 2026-05-31 — BA81 úsvit: žádný plný curtail A / zápis reg 340 (v51)
**Problém:** Při malém ranním PV (např. **405 W** A, **49 W** B) LP kvůli `fixed_pv_b_export_cap` (`ge_pv ≤ pv_b`) **usekl celé pole A** (`curt_a = pv_a`) a exporter posílal **reg 340** z nepřesného forecastu — zbytečný HW zápis, baterie prázdná.
**Změna (v51):**
- `fixed_pv_b_export_cap` jen když **`pv_a_forecast ≥ 1500 W`** (`DAWN_LOW_PV_NO_CURTAIL_W`).
- **`fixed_mi_low_pv_surplus_export`:** úsvit + MI + přebytek → neblokovat `ge_pv` přes pv_store.
- **`setpoints.py`:** při `forecast < 1500 W` a `curt_a = 0`**`pv_a_allowed_w = None`** (bez reg 340).
Tag **`2026-05-31-ba81-dawn-no-micro-curtail-v51`**.
**Ověření:** `pytest … -k ba81_dawn_low_pv`; MCP BA81 05:15: `curt_a ≪ pv_a`.
---
## 2026-05-31 — KV1/BA81: při PV přebytku FVE→síť, ne bat→síť (v50)
**Problém:** **KV1** (`block_export`, fixní buy) odpoledne s FVE (~4 kW, sell&gt;0) plán **BATTERY_SELL** místo **PV_SURPLUS** (home-01 OK). Příčiny: `skip_pv_store_block` jen před 1. `sell&lt;0`; večerní **push** bez `defer_to_pv`; **z_export/ge_bat** u profitable peak.
**Změna (v50):**
- **`fixed_block_pv_surplus_export`:** KV1 + `sell≥0` + PV přebytek → neblokovat `ge_pv` (pv_store).
- **`battery_export_defer_pv_ts`:** `ge_bat=0`, `z_export=0` (výjimky: morning pre-neg / pre-neg buy větve).
- **`evening_push_ts`:** přeskočit push, když platí defer.
Tag **`2026-05-31-kv1-pv-surplus-over-bat-export-v50`**.
**Ověření:** `pytest … -k kv1_evening_battery_push`; MCP KV1 17:0018:00: `export_mode=PV_SURPLUS`, `curt_a` malé.
---
## 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.