mirror of
https://github.com/home-assistant/core.git
synced 2025-12-20 10:59:24 +00:00
Add AutarcoSensorBase class for Autarco sensors (#158691)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
@@ -6,10 +6,7 @@ rules:
|
|||||||
This integration does not provide additional actions.
|
This integration does not provide additional actions.
|
||||||
appropriate-polling: done
|
appropriate-polling: done
|
||||||
brands: done
|
brands: done
|
||||||
common-modules:
|
common-modules: done
|
||||||
status: todo
|
|
||||||
comment: |
|
|
||||||
The entity.py file is not used in this integration.
|
|
||||||
config-flow-test-coverage: done
|
config-flow-test-coverage: done
|
||||||
config-flow: done
|
config-flow: done
|
||||||
dependency-transparency: done
|
dependency-transparency: done
|
||||||
|
|||||||
@@ -204,13 +204,25 @@ async def async_setup_entry(
|
|||||||
async_add_entities(entities)
|
async_add_entities(entities)
|
||||||
|
|
||||||
|
|
||||||
class AutarcoBatterySensorEntity(
|
class AutarcoSensorBase(CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity):
|
||||||
CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity
|
"""Base class for Autarco sensors."""
|
||||||
):
|
|
||||||
|
_attr_has_entity_name = True
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
coordinator: AutarcoDataUpdateCoordinator,
|
||||||
|
description: SensorEntityDescription,
|
||||||
|
) -> None:
|
||||||
|
"""Initialize Autarco sensor base."""
|
||||||
|
super().__init__(coordinator)
|
||||||
|
self.entity_description = description
|
||||||
|
|
||||||
|
|
||||||
|
class AutarcoBatterySensorEntity(AutarcoSensorBase):
|
||||||
"""Defines an Autarco battery sensor."""
|
"""Defines an Autarco battery sensor."""
|
||||||
|
|
||||||
entity_description: AutarcoBatterySensorEntityDescription
|
entity_description: AutarcoBatterySensorEntityDescription
|
||||||
_attr_has_entity_name = True
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -218,10 +230,8 @@ class AutarcoBatterySensorEntity(
|
|||||||
coordinator: AutarcoDataUpdateCoordinator,
|
coordinator: AutarcoDataUpdateCoordinator,
|
||||||
description: AutarcoBatterySensorEntityDescription,
|
description: AutarcoBatterySensorEntityDescription,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize Autarco sensor."""
|
"""Initialize Autarco battery sensor."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator, description)
|
||||||
|
|
||||||
self.entity_description = description
|
|
||||||
self._attr_unique_id = (
|
self._attr_unique_id = (
|
||||||
f"{coordinator.account_site.site_id}_battery_{description.key}"
|
f"{coordinator.account_site.site_id}_battery_{description.key}"
|
||||||
)
|
)
|
||||||
@@ -239,13 +249,10 @@ class AutarcoBatterySensorEntity(
|
|||||||
return self.entity_description.value_fn(self.coordinator.data.battery)
|
return self.entity_description.value_fn(self.coordinator.data.battery)
|
||||||
|
|
||||||
|
|
||||||
class AutarcoSolarSensorEntity(
|
class AutarcoSolarSensorEntity(AutarcoSensorBase):
|
||||||
CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity
|
|
||||||
):
|
|
||||||
"""Defines an Autarco solar sensor."""
|
"""Defines an Autarco solar sensor."""
|
||||||
|
|
||||||
entity_description: AutarcoSolarSensorEntityDescription
|
entity_description: AutarcoSolarSensorEntityDescription
|
||||||
_attr_has_entity_name = True
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -253,10 +260,8 @@ class AutarcoSolarSensorEntity(
|
|||||||
coordinator: AutarcoDataUpdateCoordinator,
|
coordinator: AutarcoDataUpdateCoordinator,
|
||||||
description: AutarcoSolarSensorEntityDescription,
|
description: AutarcoSolarSensorEntityDescription,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize Autarco sensor."""
|
"""Initialize Autarco solar sensor."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator, description)
|
||||||
|
|
||||||
self.entity_description = description
|
|
||||||
self._attr_unique_id = (
|
self._attr_unique_id = (
|
||||||
f"{coordinator.account_site.site_id}_solar_{description.key}"
|
f"{coordinator.account_site.site_id}_solar_{description.key}"
|
||||||
)
|
)
|
||||||
@@ -273,13 +278,10 @@ class AutarcoSolarSensorEntity(
|
|||||||
return self.entity_description.value_fn(self.coordinator.data.solar)
|
return self.entity_description.value_fn(self.coordinator.data.solar)
|
||||||
|
|
||||||
|
|
||||||
class AutarcoInverterSensorEntity(
|
class AutarcoInverterSensorEntity(AutarcoSensorBase):
|
||||||
CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity
|
|
||||||
):
|
|
||||||
"""Defines an Autarco inverter sensor."""
|
"""Defines an Autarco inverter sensor."""
|
||||||
|
|
||||||
entity_description: AutarcoInverterSensorEntityDescription
|
entity_description: AutarcoInverterSensorEntityDescription
|
||||||
_attr_has_entity_name = True
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -288,10 +290,8 @@ class AutarcoInverterSensorEntity(
|
|||||||
description: AutarcoInverterSensorEntityDescription,
|
description: AutarcoInverterSensorEntityDescription,
|
||||||
serial_number: str,
|
serial_number: str,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize Autarco sensor."""
|
"""Initialize Autarco inverter sensor."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator, description)
|
||||||
|
|
||||||
self.entity_description = description
|
|
||||||
self._serial_number = serial_number
|
self._serial_number = serial_number
|
||||||
self._attr_unique_id = f"{serial_number}_{description.key}"
|
self._attr_unique_id = f"{serial_number}_{description.key}"
|
||||||
self._attr_device_info = DeviceInfo(
|
self._attr_device_info = DeviceInfo(
|
||||||
|
|||||||
Reference in New Issue
Block a user