fix soc v TOU (ne 100) pri ne-grid-charge
This commit is contained in:
@@ -85,7 +85,7 @@ Z hlediska `get_deye_mode` je **SELF_SUSTAIN** stále **PASSIVE** (`battery_w` z
|
||||
|
||||
- **108 / 109** = **max** z invertoru (DB) — plný rozsah nabíjení i vybíjení, aby přebytek FVE mohl do baterie.
|
||||
- **142** = `asset_inverter.deye_zero_export_mode` (**1** = zero export to load, **2** = zero export to CT), stejně jako u ostatního PASSIVE mimo SELL.
|
||||
- **TOU SOC** (reg 166+) = vždy **`min_soc_percent`** (typicky 12 %) — `_deye_passive_tou_battery_soc_pct` při tomto příznaku **ne** přepíná na 100 % podle vykupní ceny, protože LP se v SELF_SUSTAIN nepoužívá.
|
||||
- **TOU SOC** (reg 166+) = vždy **`min_soc_percent`** (typicky 12 %) — stejně jako u běžného **AUTO PASSIVE**: akumulace vs. síť řeší plán a **145** / **178**, ne výška TOU %.
|
||||
|
||||
### Čtyři typy slotů a mapování na registry
|
||||
|
||||
@@ -102,9 +102,11 @@ Solver předvybírá sloty pro nabíjení a export-vybíjení (`_select_charge_s
|
||||
| **178** peak shaving | 48 (PASSIVE) | 48 (PASSIVE) | **32** (SELL) | 48 (PASSIVE) |
|
||||
| **143** export limit | max export W z DB | max export W z DB | max export W z DB | max export W z DB |
|
||||
| **141** energy mode | 0 | 0 | 0 | 0 |
|
||||
| **TOU SOC** (reg 166+) | viz níže | min_soc_pct | reserve_soc_pct | min_soc_pct |
|
||||
| **TOU SOC** (reg 166+) | **`max_soc_percent`** (clamp 10–100), grid charge ON | **`min_soc_percent`** z DB | reserve_soc_pct | min_soc_pct |
|
||||
|
||||
**PASSIVE – TOU SOC % (home-01 / Deye):** EMS ukládá do řádku time pointu procento, které na zařízení řídí **prioritu baterie vs. přetok FVE do sítě** (viz firmware / instalace). Je-li zapsané procento **níž než skutečný SoC**, přebytek tíhne do sítě; při **záporné efektivní vykupní** (`effective_sell_price` ze slotu) nebo při **kladném `battery_setpoint_w`** (plánované nabíjení) EMS nastaví **100 %** (signál „využij baterii naplno“) — **ne** v režimu **SELF_SUSTAIN** (`self_sustain_local_use`), tam je vždy **`min_soc_percent`**. **`asset_battery.max_soc_percent`** (typicky 95) je **jiný účel**: horní limit pro **plánovač / denní provoz v % SoC** (komfort, degradace, rezerva výrobce), **ne** časové „do kdy“ ani hodnota zapisovaná do tohoto TOU při této priorité. Jinak zůstane **`min_soc_percent`**.
|
||||
**PASSIVE – TOU SOC % (Deye):** EMS zapisuje vždy **`min_soc_percent`** z ``asset_battery`` (clamp jako u všech TOU SOC 5–95). Slouží jako spodní pásmový signál pro firmware; výšku nepoužíváme k řízení „honit akumulaci na 100 %“ ve PASSIVE — to u levného importu řeší **108/109** (viz ``operating-modes.md``), u záporné vykupní **BLOCK_EXPORT** přes **`export_ban`** → **145**, případně **178** na GEN.
|
||||
|
||||
**CHARGE:** TOU řádek nese **`max_soc_percent`** z DB (**clamp 10–100**) jako cíl při **grid charge** (spolu s příznakem grid charge v time pointu). **Energy pattern** („load first“ / „battery first“) v UI střídače zůstává v kompetenci instalace — EMS ho přes Modbus nenastavuje.
|
||||
|
||||
**Jak funguje pass-through fyzicky:**
|
||||
|
||||
@@ -147,9 +149,9 @@ Příklad v 14:18: blok 1 má čas **1415**, blok 2 čas **1430** – mezi 14:15
|
||||
|
||||
| Režim | Výkon (W) | SOC min (reg 166+) | Grid charge |
|
||||
|-------|-----------|---------------------|-------------|
|
||||
| **PASSIVE** | `max_discharge_a × 51,2` | `_deye_passive_tou_battery_soc_pct`: při neg. vykupní / plánovaném nabíjení = **100 %**, jinak **`min_soc_percent`** | NE |
|
||||
| **PASSIVE** | `max_discharge_a × 51,2` | **`min_soc_percent`** z DB (**`_deye_passive_tou_battery_soc_pct`**) | NE |
|
||||
| **SELL** | `max_discharge_a × 51,2` | **`reserve_soc_percent`** z DB | NE |
|
||||
| **CHARGE** | `battery_watts_to_amps(battery_w, max_charge_a) × 51,2` | min(95, cíl SoC z plánu nebo 80) | ANO |
|
||||
| **CHARGE** | `battery_watts_to_amps(battery_w, max_charge_a) × 51,2` | **clamp**(10 … **100**, **`asset_battery.max_soc_percent`**) | ANO |
|
||||
|
||||
Bloky 3–6 používají čas **2355** a stejnou **SOC** hodnotu jako PASSIVE (`min_soc_percent`, grid charge = NE).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user