diff --git a/homeassistant/components/zinvolt/entity.py b/homeassistant/components/zinvolt/entity.py new file mode 100644 index 00000000000..32238868e8e --- /dev/null +++ b/homeassistant/components/zinvolt/entity.py @@ -0,0 +1,23 @@ +"""Base entity for Zinvolt integration.""" + +from homeassistant.helpers.device_registry import DeviceInfo +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from .const import DOMAIN +from .coordinator import ZinvoltDeviceCoordinator + + +class ZinvoltEntity(CoordinatorEntity[ZinvoltDeviceCoordinator]): + """Base entity for Zinvolt integration.""" + + _attr_has_entity_name = True + + def __init__(self, coordinator: ZinvoltDeviceCoordinator) -> None: + """Initialize the entity.""" + super().__init__(coordinator) + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, coordinator.data.serial_number)}, + manufacturer="Zinvolt", + name=coordinator.data.name, + serial_number=coordinator.data.serial_number, + ) diff --git a/homeassistant/components/zinvolt/sensor.py b/homeassistant/components/zinvolt/sensor.py index 3084783be6b..796d241ad5e 100644 --- a/homeassistant/components/zinvolt/sensor.py +++ b/homeassistant/components/zinvolt/sensor.py @@ -12,12 +12,10 @@ from homeassistant.components.sensor import ( ) from homeassistant.const import PERCENTAGE, EntityCategory from homeassistant.core import HomeAssistant -from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from homeassistant.helpers.update_coordinator import CoordinatorEntity -from .const import DOMAIN from .coordinator import ZinvoltConfigEntry, ZinvoltDeviceCoordinator +from .entity import ZinvoltEntity @dataclass(kw_only=True, frozen=True) @@ -52,12 +50,9 @@ async def async_setup_entry( ) -class ZinvoltBatteryStateSensor( - CoordinatorEntity[ZinvoltDeviceCoordinator], SensorEntity -): +class ZinvoltBatteryStateSensor(ZinvoltEntity, SensorEntity): """Zinvolt battery state sensor.""" - _attr_has_entity_name = True entity_description: ZinvoltBatteryStateDescription def __init__( @@ -69,12 +64,6 @@ class ZinvoltBatteryStateSensor( super().__init__(coordinator) self.entity_description = description self._attr_unique_id = f"{coordinator.data.serial_number}.{description.key}" - self._attr_device_info = DeviceInfo( - identifiers={(DOMAIN, coordinator.data.serial_number)}, - manufacturer="Zinvolt", - name=coordinator.data.name, - serial_number=coordinator.data.serial_number, - ) @property def native_value(self) -> float: