mirror of
https://github.com/home-assistant/core.git
synced 2025-12-20 02:48:57 +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.
|
||||
appropriate-polling: done
|
||||
brands: done
|
||||
common-modules:
|
||||
status: todo
|
||||
comment: |
|
||||
The entity.py file is not used in this integration.
|
||||
common-modules: done
|
||||
config-flow-test-coverage: done
|
||||
config-flow: done
|
||||
dependency-transparency: done
|
||||
|
||||
@@ -204,13 +204,25 @@ async def async_setup_entry(
|
||||
async_add_entities(entities)
|
||||
|
||||
|
||||
class AutarcoBatterySensorEntity(
|
||||
CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity
|
||||
):
|
||||
class AutarcoSensorBase(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."""
|
||||
|
||||
entity_description: AutarcoBatterySensorEntityDescription
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -218,10 +230,8 @@ class AutarcoBatterySensorEntity(
|
||||
coordinator: AutarcoDataUpdateCoordinator,
|
||||
description: AutarcoBatterySensorEntityDescription,
|
||||
) -> None:
|
||||
"""Initialize Autarco sensor."""
|
||||
super().__init__(coordinator)
|
||||
|
||||
self.entity_description = description
|
||||
"""Initialize Autarco battery sensor."""
|
||||
super().__init__(coordinator, description)
|
||||
self._attr_unique_id = (
|
||||
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)
|
||||
|
||||
|
||||
class AutarcoSolarSensorEntity(
|
||||
CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity
|
||||
):
|
||||
class AutarcoSolarSensorEntity(AutarcoSensorBase):
|
||||
"""Defines an Autarco solar sensor."""
|
||||
|
||||
entity_description: AutarcoSolarSensorEntityDescription
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -253,10 +260,8 @@ class AutarcoSolarSensorEntity(
|
||||
coordinator: AutarcoDataUpdateCoordinator,
|
||||
description: AutarcoSolarSensorEntityDescription,
|
||||
) -> None:
|
||||
"""Initialize Autarco sensor."""
|
||||
super().__init__(coordinator)
|
||||
|
||||
self.entity_description = description
|
||||
"""Initialize Autarco solar sensor."""
|
||||
super().__init__(coordinator, description)
|
||||
self._attr_unique_id = (
|
||||
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)
|
||||
|
||||
|
||||
class AutarcoInverterSensorEntity(
|
||||
CoordinatorEntity[AutarcoDataUpdateCoordinator], SensorEntity
|
||||
):
|
||||
class AutarcoInverterSensorEntity(AutarcoSensorBase):
|
||||
"""Defines an Autarco inverter sensor."""
|
||||
|
||||
entity_description: AutarcoInverterSensorEntityDescription
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -288,10 +290,8 @@ class AutarcoInverterSensorEntity(
|
||||
description: AutarcoInverterSensorEntityDescription,
|
||||
serial_number: str,
|
||||
) -> None:
|
||||
"""Initialize Autarco sensor."""
|
||||
super().__init__(coordinator)
|
||||
|
||||
self.entity_description = description
|
||||
"""Initialize Autarco inverter sensor."""
|
||||
super().__init__(coordinator, description)
|
||||
self._serial_number = serial_number
|
||||
self._attr_unique_id = f"{serial_number}_{description.key}"
|
||||
self._attr_device_info = DeviceInfo(
|
||||
|
||||
Reference in New Issue
Block a user