mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 17:27:10 +00:00
Add support for whole apsystems ez1 series (#123356)
* Add support for whole apsystems ez1 series by configuring the max_output at setup to match the value by the inverter * Check Max output for apsystems on startup, not setup * Move max output check into coordinator * Raise UpdateFailed on error in apsystems
This commit is contained in:
parent
f2d41bd99c
commit
e3ab30a2a5
@ -8,7 +8,7 @@ from datetime import timedelta
|
|||||||
from APsystemsEZ1 import APsystemsEZ1M, ReturnAlarmInfo, ReturnOutputData
|
from APsystemsEZ1 import APsystemsEZ1M, ReturnAlarmInfo, ReturnOutputData
|
||||||
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||||
|
|
||||||
from .const import LOGGER
|
from .const import LOGGER
|
||||||
|
|
||||||
@ -34,6 +34,13 @@ class ApSystemsDataCoordinator(DataUpdateCoordinator[ApSystemsSensorData]):
|
|||||||
)
|
)
|
||||||
self.api = api
|
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:
|
async def _async_update_data(self) -> ApSystemsSensorData:
|
||||||
output_data = await self.api.get_output_data()
|
output_data = await self.api.get_output_data()
|
||||||
alarm_info = await self.api.get_alarm_info()
|
alarm_info = await self.api.get_alarm_info()
|
||||||
|
@ -26,7 +26,6 @@ async def async_setup_entry(
|
|||||||
class ApSystemsMaxOutputNumber(ApSystemsEntity, NumberEntity):
|
class ApSystemsMaxOutputNumber(ApSystemsEntity, NumberEntity):
|
||||||
"""Base sensor to be used with description."""
|
"""Base sensor to be used with description."""
|
||||||
|
|
||||||
_attr_native_max_value = 800
|
|
||||||
_attr_native_min_value = 30
|
_attr_native_min_value = 30
|
||||||
_attr_native_step = 1
|
_attr_native_step = 1
|
||||||
_attr_device_class = NumberDeviceClass.POWER
|
_attr_device_class = NumberDeviceClass.POWER
|
||||||
@ -42,6 +41,7 @@ class ApSystemsMaxOutputNumber(ApSystemsEntity, NumberEntity):
|
|||||||
super().__init__(data)
|
super().__init__(data)
|
||||||
self._api = data.coordinator.api
|
self._api = data.coordinator.api
|
||||||
self._attr_unique_id = f"{data.device_id}_output_limit"
|
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:
|
async def async_update(self) -> None:
|
||||||
"""Set the state with the value fetched from the inverter."""
|
"""Set the state with the value fetched from the inverter."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user