prekopani SELL
Some checks failed
CI and deploy / migration-check (push) Failing after 15s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-04-19 22:48:51 +02:00
parent ee4355f17f
commit d8221e3169
7 changed files with 120 additions and 35 deletions

View File

@@ -62,13 +62,14 @@ class ModbusVerifyPolicyTests(unittest.TestCase):
class DeyeTouParamsTests(unittest.TestCase):
def test_sell_uses_reserve_soc(self) -> None:
"""SELL: plánovaný výdej baterie alesvěň tak velký jako plánovaný export (|bat| ≥ |grid|)."""
sp = ControlSetpoints(
battery_w=-600,
grid_export_limit=5000,
battery_w=-8000,
grid_export_limit=8000,
ev1_current_a=0,
ev2_current_a=0,
heat_pump_enable=False,
grid_setpoint_w=-500,
grid_setpoint_w=-8000,
ev1_power_w=0,
ev2_power_w=0,
target_soc_pct=50,
@@ -78,6 +79,36 @@ class DeyeTouParamsTests(unittest.TestCase):
self.assertFalse(g)
self.assertEqual(s, 20)
def test_pv_led_export_with_small_battery_is_passive(self) -> None:
"""Regrese site 25A 17:30: |bat| < |grid| → PASSIVE (FVE přetok, ne „vylít baterku“)."""
sp = ControlSetpoints(
battery_w=-733,
grid_export_limit=1294,
ev1_current_a=0,
ev2_current_a=0,
heat_pump_enable=False,
grid_setpoint_w=-1294,
ev1_power_w=0,
ev2_power_w=0,
target_soc_pct=50,
)
self.assertEqual(get_deye_mode(sp), "PASSIVE")
def test_large_export_small_battery_is_passive(self) -> None:
"""Export v plánu větší než výdej z baterie → PASSIVE."""
sp = ControlSetpoints(
battery_w=-1500,
grid_export_limit=8000,
ev1_current_a=0,
ev2_current_a=0,
heat_pump_enable=False,
grid_setpoint_w=-8000,
ev1_power_w=0,
ev2_power_w=0,
target_soc_pct=50,
)
self.assertEqual(get_deye_mode(sp), "PASSIVE")
def test_passive_uses_min_soc(self) -> None:
sp = ControlSetpoints(
battery_w=0,