Use generator expression in poolsense (#117582)
This commit is contained in:
parent
10dfa91e54
commit
c38539b368
4 changed files with 20 additions and 22 deletions
|
@ -7,7 +7,6 @@ from homeassistant.components.binary_sensor import (
|
||||||
BinarySensorEntity,
|
BinarySensorEntity,
|
||||||
BinarySensorEntityDescription,
|
BinarySensorEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.const import CONF_EMAIL
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
|
@ -36,12 +35,10 @@ async def async_setup_entry(
|
||||||
"""Defer sensor setup to the shared sensor module."""
|
"""Defer sensor setup to the shared sensor module."""
|
||||||
coordinator = config_entry.runtime_data
|
coordinator = config_entry.runtime_data
|
||||||
|
|
||||||
entities = [
|
async_add_entities(
|
||||||
PoolSenseBinarySensor(coordinator, config_entry.data[CONF_EMAIL], description)
|
PoolSenseBinarySensor(coordinator, description)
|
||||||
for description in BINARY_SENSOR_TYPES
|
for description in BINARY_SENSOR_TYPES
|
||||||
]
|
)
|
||||||
|
|
||||||
async_add_entities(entities, False)
|
|
||||||
|
|
||||||
|
|
||||||
class PoolSenseBinarySensor(PoolSenseEntity, BinarySensorEntity):
|
class PoolSenseBinarySensor(PoolSenseEntity, BinarySensorEntity):
|
||||||
|
|
|
@ -1,28 +1,38 @@
|
||||||
"""DataUpdateCoordinator for poolsense integration."""
|
"""DataUpdateCoordinator for poolsense integration."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
import logging
|
import logging
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from poolsense import PoolSense
|
from poolsense import PoolSense
|
||||||
from poolsense.exceptions import PoolSenseError
|
from poolsense.exceptions import PoolSenseError
|
||||||
|
|
||||||
|
from homeassistant.const import CONF_EMAIL
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||||
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from . import PoolSenseConfigEntry
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class PoolSenseDataUpdateCoordinator(DataUpdateCoordinator[dict[str, StateType]]):
|
class PoolSenseDataUpdateCoordinator(DataUpdateCoordinator[dict[str, StateType]]):
|
||||||
"""Define an object to hold PoolSense data."""
|
"""Define an object to hold PoolSense data."""
|
||||||
|
|
||||||
|
config_entry: PoolSenseConfigEntry
|
||||||
|
|
||||||
def __init__(self, hass: HomeAssistant, poolsense: PoolSense) -> None:
|
def __init__(self, hass: HomeAssistant, poolsense: PoolSense) -> None:
|
||||||
"""Initialize."""
|
"""Initialize."""
|
||||||
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=timedelta(hours=1))
|
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=timedelta(hours=1))
|
||||||
self.poolsense = poolsense
|
self.poolsense = poolsense
|
||||||
|
self.email = self.config_entry.data[CONF_EMAIL]
|
||||||
|
|
||||||
async def _async_update_data(self) -> dict[str, StateType]:
|
async def _async_update_data(self) -> dict[str, StateType]:
|
||||||
"""Update data via library."""
|
"""Update data via library."""
|
||||||
|
|
|
@ -17,14 +17,13 @@ class PoolSenseEntity(CoordinatorEntity[PoolSenseDataUpdateCoordinator]):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
coordinator: PoolSenseDataUpdateCoordinator,
|
coordinator: PoolSenseDataUpdateCoordinator,
|
||||||
email: str,
|
|
||||||
description: EntityDescription,
|
description: EntityDescription,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize poolsense sensor."""
|
"""Initialize poolsense entity."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator)
|
||||||
self.entity_description = description
|
self.entity_description = description
|
||||||
self._attr_unique_id = f"{email}-{description.key}"
|
self._attr_unique_id = f"{coordinator.email}-{description.key}"
|
||||||
self._attr_device_info = DeviceInfo(
|
self._attr_device_info = DeviceInfo(
|
||||||
identifiers={(DOMAIN, email)},
|
identifiers={(DOMAIN, coordinator.email)},
|
||||||
model="PoolSense",
|
model="PoolSense",
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,12 +7,7 @@ from homeassistant.components.sensor import (
|
||||||
SensorEntity,
|
SensorEntity,
|
||||||
SensorEntityDescription,
|
SensorEntityDescription,
|
||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import PERCENTAGE, UnitOfElectricPotential, UnitOfTemperature
|
||||||
CONF_EMAIL,
|
|
||||||
PERCENTAGE,
|
|
||||||
UnitOfElectricPotential,
|
|
||||||
UnitOfTemperature,
|
|
||||||
)
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
|
@ -75,12 +70,9 @@ async def async_setup_entry(
|
||||||
"""Defer sensor setup to the shared sensor module."""
|
"""Defer sensor setup to the shared sensor module."""
|
||||||
coordinator = config_entry.runtime_data
|
coordinator = config_entry.runtime_data
|
||||||
|
|
||||||
entities = [
|
async_add_entities(
|
||||||
PoolSenseSensor(coordinator, config_entry.data[CONF_EMAIL], description)
|
PoolSenseSensor(coordinator, description) for description in SENSOR_TYPES
|
||||||
for description in SENSOR_TYPES
|
)
|
||||||
]
|
|
||||||
|
|
||||||
async_add_entities(entities, False)
|
|
||||||
|
|
||||||
|
|
||||||
class PoolSenseSensor(PoolSenseEntity, SensorEntity):
|
class PoolSenseSensor(PoolSenseEntity, SensorEntity):
|
||||||
|
|
Loading…
Add table
Reference in a new issue