1
0
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:
Klaas Schoute
2025-12-12 15:39:18 +01:00
committed by GitHub
parent 0a789f51b8
commit 715a484f7e
2 changed files with 25 additions and 28 deletions

View File

@@ -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

View File

@@ -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(