implmemtace cuttoff genportu
This commit is contained in:
@@ -9,6 +9,7 @@ from services.control.exporter_monolith import (
|
||||
ControlSetpoints,
|
||||
InverterConfig,
|
||||
_deye_reg178_verify_with_double_read,
|
||||
_deye_reg179_verify_match,
|
||||
_deye_tou_params,
|
||||
_deye_tou_power_verify_match,
|
||||
_deye_zero_export_amps_for_passive,
|
||||
@@ -54,6 +55,11 @@ class ModbusVerifyPolicyTests(unittest.TestCase):
|
||||
self.assertTrue(ok)
|
||||
self.assertEqual(v, 48)
|
||||
|
||||
def test_reg179_verify_match_only_bits_0_1(self) -> None:
|
||||
# expected=3 (enable), actual can have other bits set but bits0-1 must match
|
||||
self.assertTrue(_deye_reg179_verify_match(3, 0xFFFB))
|
||||
self.assertFalse(_deye_reg179_verify_match(3, 0xFFFA)) # bits0-1=2
|
||||
|
||||
def test_reg178_not_critical_for_self_sustain(self) -> None:
|
||||
self.assertFalse(deye_reg_triggers_self_sustain_after_verify_exhaust(178))
|
||||
|
||||
@@ -95,6 +101,21 @@ class DeyeTouParamsTests(unittest.TestCase):
|
||||
)
|
||||
self.assertEqual(get_deye_mode(sp), "PASSIVE")
|
||||
|
||||
def test_export_ban_does_not_change_deye_mode(self) -> None:
|
||||
sp = ControlSetpoints(
|
||||
battery_w=0,
|
||||
grid_export_limit=0,
|
||||
ev1_current_a=0,
|
||||
ev2_current_a=0,
|
||||
heat_pump_enable=False,
|
||||
grid_setpoint_w=0,
|
||||
ev1_power_w=0,
|
||||
ev2_power_w=0,
|
||||
target_soc_pct=50,
|
||||
export_ban=True,
|
||||
)
|
||||
self.assertEqual(get_deye_mode(sp), "PASSIVE")
|
||||
|
||||
def test_pv_led_export_with_small_battery_is_sell(self) -> None:
|
||||
"""Obě záporné → SELL (bez porovnání |bat| vs |grid|)."""
|
||||
sp = ControlSetpoints(
|
||||
|
||||
Reference in New Issue
Block a user