diff --git a/homeassistant/components/apsystems/coordinator.py b/homeassistant/components/apsystems/coordinator.py index 96956bafc3e..6ba4f01dbc8 100644 --- a/homeassistant/components/apsystems/coordinator.py +++ b/homeassistant/components/apsystems/coordinator.py @@ -8,7 +8,7 @@ from datetime import timedelta from APsystemsEZ1 import APsystemsEZ1M, ReturnAlarmInfo, ReturnOutputData from homeassistant.core import HomeAssistant -from homeassistant.helpers.update_coordinator import DataUpdateCoordinator +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from .const import LOGGER @@ -34,6 +34,13 @@ class ApSystemsDataCoordinator(DataUpdateCoordinator[ApSystemsSensorData]): ) self.api = api + async def _async_setup(self) -> None: + try: + max_power = (await self.api.get_device_info()).maxPower + except (ConnectionError, TimeoutError): + raise UpdateFailed from None + self.api.max_power = max_power + async def _async_update_data(self) -> ApSystemsSensorData: output_data = await self.api.get_output_data() alarm_info = await self.api.get_alarm_info() diff --git a/homeassistant/components/apsystems/number.py b/homeassistant/components/apsystems/number.py index f9b535d7d6a..51e7130587f 100644 --- a/homeassistant/components/apsystems/number.py +++ b/homeassistant/components/apsystems/number.py @@ -26,7 +26,6 @@ async def async_setup_entry( class ApSystemsMaxOutputNumber(ApSystemsEntity, NumberEntity): """Base sensor to be used with description.""" - _attr_native_max_value = 800 _attr_native_min_value = 30 _attr_native_step = 1 _attr_device_class = NumberDeviceClass.POWER @@ -42,6 +41,7 @@ class ApSystemsMaxOutputNumber(ApSystemsEntity, NumberEntity): super().__init__(data) self._api = data.coordinator.api self._attr_unique_id = f"{data.device_id}_output_limit" + self._attr_native_max_value = data.coordinator.api.max_power async def async_update(self) -> None: """Set the state with the value fetched from the inverter."""