diff --git a/homeassistant/components/portainer/binary_sensor.py b/homeassistant/components/portainer/binary_sensor.py index ec356923e03c..13f05c89ddbf 100644 --- a/homeassistant/components/portainer/binary_sensor.py +++ b/homeassistant/components/portainer/binary_sensor.py @@ -15,6 +15,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from . import PortainerConfigEntry +from .const import CONTAINER_STATE_RUNNING from .coordinator import PortainerContainerData, PortainerCoordinator from .entity import ( PortainerContainerEntity, @@ -41,7 +42,7 @@ CONTAINER_SENSORS: tuple[PortainerContainerBinarySensorEntityDescription, ...] = PortainerContainerBinarySensorEntityDescription( key="status", translation_key="status", - state_fn=lambda data: data.container.state == "running", + state_fn=lambda data: data.container.state == CONTAINER_STATE_RUNNING, device_class=BinarySensorDeviceClass.RUNNING, entity_category=EntityCategory.DIAGNOSTIC, ), diff --git a/homeassistant/components/portainer/const.py b/homeassistant/components/portainer/const.py index c54bffcac5a3..f386f9d888b1 100644 --- a/homeassistant/components/portainer/const.py +++ b/homeassistant/components/portainer/const.py @@ -4,3 +4,5 @@ DOMAIN = "portainer" DEFAULT_NAME = "Portainer" ENDPOINT_STATUS_DOWN = 2 + +CONTAINER_STATE_RUNNING = "running" diff --git a/homeassistant/components/portainer/coordinator.py b/homeassistant/components/portainer/coordinator.py index e87d70c1f04e..9aff45f8afbb 100644 --- a/homeassistant/components/portainer/coordinator.py +++ b/homeassistant/components/portainer/coordinator.py @@ -24,7 +24,7 @@ from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed -from .const import DOMAIN, ENDPOINT_STATUS_DOWN +from .const import CONTAINER_STATE_RUNNING, DOMAIN, ENDPOINT_STATUS_DOWN type PortainerConfigEntry = ConfigEntry[PortainerCoordinator] @@ -158,10 +158,11 @@ class PortainerCoordinator(DataUpdateCoordinator[dict[int, PortainerCoordinatorD ), ) for container in containers + if container.state == CONTAINER_STATE_RUNNING ] container_stats_gather = await asyncio.gather( - *[task for _, task in container_stats_task], + *[task for _, task in container_stats_task] ) for (container, _), container_stats in zip( container_stats_task, container_stats_gather, strict=False