dalsi pokus ladeni
Some checks failed
CI and deploy / migration-check (pull_request) Failing after 17s
CI and deploy / deploy (pull_request) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-05-04 20:11:50 +02:00
parent b35f292295
commit 8a3a49806b
8 changed files with 28 additions and 26 deletions

View File

@@ -244,15 +244,14 @@ def _deye_zero_export_amps_for_passive(
max_discharge_a: int,
) -> tuple[int, int]:
"""
PASSIVE (zero export k CT/zátěži): výchozí plné 108/109.
PASSIVE (zero export k CT/zátěži): asymetrie jen tam, kde dává smysl pro import.
Export v plánu bez vybíjení baterie vypne charge A; import bez nabíjení vypne discharge A.
Export do sítě (grid_w < 0) už směr toku řeší režim / 142 / 145 — **108** jako strop zbytečně
nenulovat na 0 (viz home-01). Jediná speciální větev: import bez nabíjení → vypnout vybíjení.
"""
if grid_w < 0 and bat_w >= 0:
return 0, max_discharge_a
if grid_w > 0 and bat_w <= 0:
return max_charge_a, 0
return max_charge_a, max_discharge_a
return int(max_charge_a), int(max_discharge_a)
def deye_battery_charge_discharge_amps(

View File

@@ -36,7 +36,7 @@ class PassivePvSurplusChargeAmpsTests(unittest.TestCase):
self.assertGreater(ch, 0)
self.assertEqual(dis, 0)
def test_passive_zero_export_still_zero_charge_when_no_battery_charge(self) -> None:
def test_passive_export_without_battery_charge_uses_max_108(self) -> None:
ch, dis = deye_battery_charge_discharge_amps(
lock_battery=False,
deye_mode="PASSIVE",
@@ -46,7 +46,7 @@ class PassivePvSurplusChargeAmpsTests(unittest.TestCase):
max_charge_a=100,
max_discharge_a=100,
)
self.assertEqual(ch, 0)
self.assertEqual(ch, 100)
self.assertEqual(dis, 100)
def test_sell_unchanged(self) -> None:

View File

@@ -11,12 +11,11 @@ from services.control.exporter_monolith import (
_deye_reg178_verify_with_double_read,
_deye_tou_params,
_deye_tou_power_verify_match,
_deye_zero_export_amps_for_passive,
deye_reg_triggers_self_sustain_after_verify_exhaust,
get_deye_mode,
)
from services.control.models import OperatingModeInfo
from services.control.setpoints import _build_setpoints
from services.control.setpoints import _build_setpoints, _deye_zero_export_amps_for_passive
def _inv(*, min_soc: int | None = 12, reserve_soc: int | None = 20) -> InverterConfig:
@@ -273,7 +272,7 @@ class DeyeTouParamsTests(unittest.TestCase):
def test_zero_export_amps_fve_overflow(self) -> None:
c, d = _deye_zero_export_amps_for_passive(-1000, 0, 100, 90)
self.assertEqual(c, 0)
self.assertEqual(c, 100)
self.assertEqual(d, 90)
def test_zero_export_amps_import_hold_discharge(self) -> None: