uprava PV omeznovani
This commit is contained in:
@@ -11,6 +11,7 @@ from services.control.exporter_monolith import (
|
||||
compute_pv_a_reg340_max_solar_w,
|
||||
deye_reg_triggers_self_sustain_after_verify_exhaust,
|
||||
)
|
||||
from services.control.setpoints import plan_skips_deye_reg340_write
|
||||
|
||||
|
||||
def _auto_mode() -> OperatingModeInfo:
|
||||
@@ -102,6 +103,72 @@ class BuildSetpointsReg340Tests(unittest.TestCase):
|
||||
assert sp is not None
|
||||
self.assertEqual(sp.pv_a_allowed_w, 0)
|
||||
|
||||
def test_skipped_when_no_export_no_charge_no_curtail(self) -> None:
|
||||
sp = _build_setpoints(
|
||||
_auto_mode(),
|
||||
_pi_base(
|
||||
grid_setpoint_w=0,
|
||||
battery_setpoint_w=0,
|
||||
export_mode="NONE",
|
||||
export_limit_w=0,
|
||||
pv_a_curtailed_w=0,
|
||||
),
|
||||
pv_a_cap_w=10_000,
|
||||
reg340_pv_a_control_enabled=True,
|
||||
)
|
||||
assert sp is not None
|
||||
self.assertIsNone(sp.pv_a_allowed_w)
|
||||
|
||||
def test_writes_reg340_when_curtail_planned(self) -> None:
|
||||
sp = _build_setpoints(
|
||||
_auto_mode(),
|
||||
_pi_base(
|
||||
grid_setpoint_w=0,
|
||||
battery_setpoint_w=0,
|
||||
export_mode="NONE",
|
||||
pv_a_curtailed_w=3000,
|
||||
),
|
||||
pv_a_cap_w=10_000,
|
||||
reg340_pv_a_control_enabled=True,
|
||||
)
|
||||
assert sp is not None
|
||||
self.assertEqual(sp.pv_a_allowed_w, 5000)
|
||||
|
||||
def test_writes_reg340_when_battery_charging_without_export(self) -> None:
|
||||
sp = _build_setpoints(
|
||||
_auto_mode(),
|
||||
_pi_base(
|
||||
grid_setpoint_w=0,
|
||||
battery_setpoint_w=5000,
|
||||
export_mode="NONE",
|
||||
pv_a_curtailed_w=0,
|
||||
),
|
||||
pv_a_cap_w=10_000,
|
||||
reg340_pv_a_control_enabled=True,
|
||||
)
|
||||
assert sp is not None
|
||||
self.assertEqual(sp.pv_a_allowed_w, 10_000)
|
||||
|
||||
def test_plan_skips_helper(self) -> None:
|
||||
self.assertTrue(
|
||||
plan_skips_deye_reg340_write(
|
||||
battery_setpoint_w=0,
|
||||
grid_setpoint_w=0,
|
||||
export_mode="NONE",
|
||||
export_limit_w=0,
|
||||
pv_a_curtailed_w=0,
|
||||
)
|
||||
)
|
||||
self.assertFalse(
|
||||
plan_skips_deye_reg340_write(
|
||||
battery_setpoint_w=0,
|
||||
grid_setpoint_w=-2000,
|
||||
export_mode="PV_SURPLUS",
|
||||
export_limit_w=2000,
|
||||
pv_a_curtailed_w=0,
|
||||
)
|
||||
)
|
||||
|
||||
def test_skipped_when_reg340_control_disabled(self) -> None:
|
||||
sp = _build_setpoints(
|
||||
_auto_mode(),
|
||||
|
||||
Reference in New Issue
Block a user