fix discharge battery
This commit is contained in:
@@ -1383,14 +1383,13 @@ def get_deye_mode(setpoints: ControlSetpoints) -> str:
|
||||
záporný export z portu sítě a zároveň **|battery_w| ≥ |grid_setpoint_w|** (výdej z
|
||||
baterie není menší než plánovaný čistý export). Pak Deye „selling first“ (reg. 142=0).
|
||||
|
||||
- **PASSIVE** — všude jinde: přetok FVE do sítě / do baterie řeší reg. **108** (nabíjení),
|
||||
**109** (vybíjení, škálované podle plánu), **142** dle ``deye_zero_export_mode`` instalace,
|
||||
**145** solar sell. Žádné odhady PV vs. load v této funkci.
|
||||
- **PASSIVE** — všude jinde: reg. **108** / **109** na **max. proud** invertoru; přetok FVE / chování
|
||||
vůči zátěži drží **142** dle ``deye_zero_export_mode``, **TOU výkon** z plánu, **145** solar sell.
|
||||
|
||||
- **CHARGE** — nabíjení ze sítě (``battery_w`` > 500 a ``grid_setpoint_w`` > 200).
|
||||
|
||||
``battery_w=None`` (SELF_SUSTAIN) → bat_w 0 → PASSIVE zde; plné 108/109 řeší
|
||||
``self_sustain_local_use`` v ``write_inverter_setpoints``.
|
||||
``battery_w=None`` (SELF_SUSTAIN) → bat_w 0 → PASSIVE zde; **108/109 max** stejně jako u běžného
|
||||
PASSIVE v ``write_inverter_setpoints`` (viz ``self_sustain_local_use`` pro TOU SOC).
|
||||
"""
|
||||
grid_w = int(setpoints.grid_setpoint_w or 0)
|
||||
bat_w = 0 if setpoints.battery_w is None else int(setpoints.battery_w)
|
||||
@@ -1476,16 +1475,12 @@ async def write_inverter_setpoints(
|
||||
charge_a = int(inv.max_charge_a)
|
||||
discharge_a = int(inv.max_discharge_a)
|
||||
else:
|
||||
# PASSIVE: škáluj 108/109 podle |battery_w| — ne plný max při malém setpointu z LP.
|
||||
if bat_w > 0:
|
||||
charge_a = battery_watts_to_amps(bat_w, inv.max_charge_a)
|
||||
discharge_a = 0
|
||||
elif bat_w < 0:
|
||||
charge_a = 0
|
||||
discharge_a = battery_watts_to_amps(bat_w, inv.max_discharge_a)
|
||||
else:
|
||||
charge_a = 0
|
||||
discharge_a = 0
|
||||
# PASSIVE (AUTO): plný strop 108/109 — stejná idea jako SELF_SUSTAIN.
|
||||
# Dříve škálování podle |battery_w| z LP usekávalo fyzický výkon baterie (např. 23 A při
|
||||
# ~1,2 kW plánu) a velká akumulace pak neuměla rychle doplnit síť při nárazové zátěži.
|
||||
# Ekonomiku a směr toku drží TOU časové body (výkon W / SOC %) + režim 142/178, ne reg. 108/109.
|
||||
charge_a = int(inv.max_charge_a)
|
||||
discharge_a = int(inv.max_discharge_a)
|
||||
|
||||
zero_exp_mode = int(inv.deye_zero_export_mode or 1)
|
||||
selling_mode = 0 if deye_mode == "SELL" else zero_exp_mode
|
||||
|
||||
Reference in New Issue
Block a user