diff --git a/homeassistant/components/portainer/binary_sensor.py b/homeassistant/components/portainer/binary_sensor.py index 188e99f647a..0e190a3e776 100644 --- a/homeassistant/components/portainer/binary_sensor.py +++ b/homeassistant/components/portainer/binary_sensor.py @@ -16,7 +16,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from . import PortainerConfigEntry from .const import CONTAINER_STATE_RUNNING, STACK_STATUS_ACTIVE -from .coordinator import PortainerContainerData, PortainerCoordinator +from .coordinator import PortainerContainerData from .entity import ( PortainerContainerEntity, PortainerCoordinatorData, @@ -165,18 +165,6 @@ class PortainerEndpointSensor(PortainerEndpointEntity, BinarySensorEntity): entity_description: PortainerEndpointBinarySensorEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerEndpointBinarySensorEntityDescription, - device_info: PortainerCoordinatorData, - ) -> None: - """Initialize Portainer endpoint binary sensor entity.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.id}_{entity_description.key}" - @property def is_on(self) -> bool | None: """Return true if the binary sensor is on.""" @@ -188,19 +176,6 @@ class PortainerContainerSensor(PortainerContainerEntity, BinarySensorEntity): entity_description: PortainerContainerBinarySensorEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerContainerBinarySensorEntityDescription, - device_info: PortainerContainerData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer container sensor.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{self.device_name}_{entity_description.key}" - @property def is_on(self) -> bool | None: """Return true if the binary sensor is on.""" @@ -212,19 +187,6 @@ class PortainerStackSensor(PortainerStackEntity, BinarySensorEntity): entity_description: PortainerStackBinarySensorEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerStackBinarySensorEntityDescription, - device_info: PortainerStackData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer stack sensor.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.stack.id}_{entity_description.key}" - @property def is_on(self) -> bool | None: """Return true if the binary sensor is on.""" diff --git a/homeassistant/components/portainer/button.py b/homeassistant/components/portainer/button.py index 9b9e59e311d..b6963c26d09 100644 --- a/homeassistant/components/portainer/button.py +++ b/homeassistant/components/portainer/button.py @@ -167,18 +167,6 @@ class PortainerEndpointButton(PortainerEndpointEntity, PortainerBaseButton): entity_description: PortainerButtonDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerButtonDescription, - device_info: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer endpoint button entity.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.id}_{entity_description.key}" - async def _async_press_call(self) -> None: """Call the endpoint button press action.""" await self.entity_description.press_action( @@ -191,19 +179,6 @@ class PortainerContainerButton(PortainerContainerEntity, PortainerBaseButton): entity_description: PortainerButtonDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerButtonDescription, - device_info: PortainerContainerData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer button entity.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{self.device_name}_{entity_description.key}" - async def _async_press_call(self) -> None: """Call the container button press action.""" await self.entity_description.press_action( diff --git a/homeassistant/components/portainer/entity.py b/homeassistant/components/portainer/entity.py index e0bc7ea12ea..9fb87248e63 100644 --- a/homeassistant/components/portainer/entity.py +++ b/homeassistant/components/portainer/entity.py @@ -4,6 +4,7 @@ from yarl import URL from homeassistant.const import CONF_URL from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo +from homeassistant.helpers.entity import EntityDescription from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import DEFAULT_NAME, DOMAIN @@ -26,11 +27,13 @@ class PortainerEndpointEntity(PortainerCoordinatorEntity): def __init__( self, - device_info: PortainerCoordinatorData, coordinator: PortainerCoordinator, + entity_description: EntityDescription, + device_info: PortainerCoordinatorData, ) -> None: """Initialize a Portainer endpoint.""" super().__init__(coordinator) + self.entity_description = entity_description self._device_info = device_info self.device_id = device_info.endpoint.id self._attr_device_info = DeviceInfo( @@ -45,6 +48,7 @@ class PortainerEndpointEntity(PortainerCoordinatorEntity): name=device_info.endpoint.name, entry_type=DeviceEntryType.SERVICE, ) + self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.id}_{entity_description.key}" @property def available(self) -> bool: @@ -57,12 +61,14 @@ class PortainerContainerEntity(PortainerCoordinatorEntity): def __init__( self, - device_info: PortainerContainerData, coordinator: PortainerCoordinator, + entity_description: EntityDescription, + device_info: PortainerContainerData, via_device: PortainerCoordinatorData, ) -> None: """Initialize a Portainer container.""" super().__init__(coordinator) + self.entity_description = entity_description self._device_info = device_info self.device_id = self._device_info.container.id self.endpoint_id = via_device.endpoint.id @@ -98,6 +104,7 @@ class PortainerContainerEntity(PortainerCoordinatorEntity): translation_key=None if self.device_name else "unknown_container", entry_type=DeviceEntryType.SERVICE, ) + self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{self.device_name}_{entity_description.key}" @property def available(self) -> bool: @@ -119,12 +126,14 @@ class PortainerStackEntity(PortainerCoordinatorEntity): def __init__( self, - device_info: PortainerStackData, coordinator: PortainerCoordinator, + entity_description: EntityDescription, + device_info: PortainerStackData, via_device: PortainerCoordinatorData, ) -> None: """Initialize a Portainer stack.""" super().__init__(coordinator) + self.entity_description = entity_description self._device_info = device_info self.stack_id = device_info.stack.id self.device_name = device_info.stack.name @@ -149,6 +158,7 @@ class PortainerStackEntity(PortainerCoordinatorEntity): f"{coordinator.config_entry.entry_id}_{self.endpoint_id}", ), ) + self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{self.stack_id}_{entity_description.key}" @property def available(self) -> bool: diff --git a/homeassistant/components/portainer/sensor.py b/homeassistant/components/portainer/sensor.py index 81f80b5b7b7..be23d58a4f3 100644 --- a/homeassistant/components/portainer/sensor.py +++ b/homeassistant/components/portainer/sensor.py @@ -21,7 +21,6 @@ from .const import STACK_TYPE_COMPOSE, STACK_TYPE_KUBERNETES, STACK_TYPE_SWARM from .coordinator import ( PortainerConfigEntry, PortainerContainerData, - PortainerCoordinator, PortainerStackData, ) from .entity import ( @@ -398,19 +397,6 @@ class PortainerContainerSensor(PortainerContainerEntity, SensorEntity): entity_description: PortainerContainerSensorEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerContainerSensorEntityDescription, - device_info: PortainerContainerData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer container sensor.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{self.device_name}_{entity_description.key}" - @property def native_value(self) -> StateType: """Return the state of the sensor.""" @@ -422,18 +408,6 @@ class PortainerEndpointSensor(PortainerEndpointEntity, SensorEntity): entity_description: PortainerEndpointSensorEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerEndpointSensorEntityDescription, - device_info: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer endpoint sensor.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.id}_{entity_description.key}" - @property def native_value(self) -> StateType: """Return the state of the sensor.""" @@ -446,19 +420,6 @@ class PortainerStackSensor(PortainerStackEntity, SensorEntity): entity_description: PortainerStackSensorEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerStackSensorEntityDescription, - device_info: PortainerStackData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer stack sensor.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.stack.id}_{entity_description.key}" - @property def native_value(self) -> StateType: """Return the state of the sensor.""" diff --git a/homeassistant/components/portainer/switch.py b/homeassistant/components/portainer/switch.py index 429b4fee469..32b70508302 100644 --- a/homeassistant/components/portainer/switch.py +++ b/homeassistant/components/portainer/switch.py @@ -167,19 +167,6 @@ class PortainerContainerSwitch(PortainerContainerEntity, SwitchEntity): entity_description: PortainerSwitchEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerSwitchEntityDescription, - device_info: PortainerContainerData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer container switch.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{self.device_name}_{entity_description.key}" - @property def is_on(self) -> bool | None: """Return the state of the device.""" @@ -209,19 +196,6 @@ class PortainerStackSwitch(PortainerStackEntity, SwitchEntity): entity_description: PortainerStackSwitchEntityDescription - def __init__( - self, - coordinator: PortainerCoordinator, - entity_description: PortainerStackSwitchEntityDescription, - device_info: PortainerStackData, - via_device: PortainerCoordinatorData, - ) -> None: - """Initialize the Portainer stack switch.""" - self.entity_description = entity_description - super().__init__(device_info, coordinator, via_device) - - self._attr_unique_id = f"{coordinator.config_entry.entry_id}_{device_info.stack.id}_{entity_description.key}" - @property def is_on(self) -> bool | None: """Return the state of the device."""