HOTFIX BA81: export plan guard neodstavuje pole B při kladné vykupní ceně
_apply_export_plan_guard při export_mode=NONE (plán nabíjí baterii, neexportuje) vynucoval _passive_no_export_guard s export_ban=True + deye_gen_cutoff_enabled=True bez ohledu na cenu -> reg 178 bity 0-1=3 (MI cutoff) + reg 145=0 a mikroinvertory (pole B) fyzicky stály i při sell +1.36 Kč (BA81 dnes: gen port ~0 W od 12:16Z, SoC 64 %, stringy 4.2 kW do baterie). Tvrdý ban nově JEN při záporné vykupní; při kladné guard dál drží PASSIVE/143=0/baterie nevybíjí do sítě, ale MI jedou (absorbce do baterie, přetok se prodá). Plánový z_gen_cutoff se respektuje. Pre-existing fail test_neg_buy_and_sell_with_pv_b_forces_pv_a_off padá i na main (pv_a_allowed_w None != 0) — nesouvisí, řešit zvlášť. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -64,7 +64,7 @@ Po `_build_setpoints`, před zápisem Modbus (`orchestrator.export_setpoints`):
|
||||
|
||||
| Guard | Podmínka | Efekt |
|
||||
|-------|----------|--------|
|
||||
| **`_apply_export_plan_guard`** | `effective_sell_price < 0` **nebo** (`export_mode = NONE` a `grid_setpoint_w ≥ 0`) | PASSIVE, `export_ban`, `grid_export_limit = 0`, vybíjení baterie do sítě vynulováno (`battery_w = max(0, …)`), `deye_physical_mode = PASSIVE` |
|
||||
| **`_apply_export_plan_guard`** | `effective_sell_price < 0` **nebo** (`export_mode = NONE` a `grid_setpoint_w ≥ 0`) | PASSIVE, `grid_export_limit = 0`, vybíjení baterie do sítě vynulováno (`battery_w = max(0, …)`). **Tvrdý ban** (`export_ban` → reg 145 = 0 + MI cut-off reg 178) **jen při záporné vykupní** — `export_mode = NONE` s kladnou cenou pole B neodstavuje (mikroinvertory se absorbují do baterie/zátěže, případný přetok se prodá; BA81 2026-06-12 cutoff při sell +1.36 zahazoval výrobu) |
|
||||
| **`_apply_price_failsafe_guard`** | `is_predicted_price = true` | PASSIVE, všechny výkonové setpointy 0, žádný export |
|
||||
|
||||
Implementace: `backend/services/control/setpoints.py`. Ověření: `pytest backend/tests/test_control_export_plan_guard.py`.
|
||||
|
||||
Reference in New Issue
Block a user