From c7f934a4ab1c6bc0492b86fc86c82a5c3ffb1a31 Mon Sep 17 00:00:00 2001 From: mletenay Date: Sun, 14 Apr 2024 23:18:54 +0200 Subject: [PATCH] Set max export limit from the inverter --- custom_components/goodwe/number.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/custom_components/goodwe/number.py b/custom_components/goodwe/number.py index ac6efa3..43fc742 100644 --- a/custom_components/goodwe/number.py +++ b/custom_components/goodwe/number.py @@ -50,7 +50,6 @@ def _get_setting_unit(inverter: Inverter, setting: str) -> str: native_unit_of_measurement=UnitOfPower.WATT, native_step=100, native_min_value=0, - native_max_value=10000, getter=lambda inv: inv.get_grid_export_limit(), mapper=lambda v: v, setter=lambda inv, val: inv.set_grid_export_limit(val), @@ -64,7 +63,7 @@ def _get_setting_unit(inverter: Inverter, setting: str) -> str: native_unit_of_measurement=PERCENTAGE, native_step=1, native_min_value=0, - native_max_value=100, + native_max_value=200, getter=lambda inv: inv.get_grid_export_limit(), mapper=lambda v: v, setter=lambda inv, val: inv.set_grid_export_limit(val), @@ -131,9 +130,15 @@ async def async_setup_entry( _LOGGER.debug("Could not read inverter setting %s", description.key) continue - entities.append( - InverterNumberEntity(device_info, description, inverter, current_value) - ) + entity = InverterNumberEntity(device_info, description, inverter, current_value) + # Adjust the max value according to actual inverter power (if provided) + if ( + inverter.rated_power + and description.key == "grid_export_limit" + and description.native_unit_of_measurement == UnitOfPower.WATT + ): + entity.native_max_value = inverter.rated_power + entities.append(entity) async_add_entities(entities)