<reponame>jgindin/core
"""Home Assistant component for accessing the Wallbox Portal API. The sensor component creates multiple sensors regarding wallbox performance."""
from homeassistant.components.sensor import SensorEntity
from homeassistant.helpers.update_coordinator import CoordinatorEntity

from .const import (
    CONF_CONNECTIONS,
    DOMAIN,
    SENSOR_TYPES,
    WallboxSensorEntityDescription,
)

CONF_STATION = "station"
UPDATE_INTERVAL = 30


async def async_setup_entry(hass, config, async_add_entities):
    """Create wallbox sensor entities in HASS."""
    coordinator = hass.data[DOMAIN][CONF_CONNECTIONS][config.entry_id]

    async_add_entities(
        [
            WallboxSensor(coordinator, config, description)
            for ent in coordinator.data
            if (description := SENSOR_TYPES[ent])
        ]
    )


class WallboxSensor(CoordinatorEntity, SensorEntity):
    """Representation of the Wallbox portal."""

    entity_description: WallboxSensorEntityDescription

    def __init__(
        self, coordinator, config, description: WallboxSensorEntityDescription
    ):
        """Initialize a Wallbox sensor."""
        super().__init__(coordinator)
        self.entity_description = description
        self._attr_name = f"{config.title} {description.name}"

    @property
    def native_value(self):
        """Return the state of the sensor."""
        return self.coordinator.data[self.entity_description.key]

"""Home Assistant component for accessing the Wallbox Portal API. The sensor component creates multiple sensors regarding wallbox performance."""
from homeassistant.components.sensor import SensorEntity
from homeassistant.helpers.update_coordinator import CoordinatorEntity

from .const import (
    CONF_CONNECTIONS,
    DOMAIN,
    SENSOR_TYPES,
    WallboxSensorEntityDescription,
)

CONF_STATION = "station"
UPDATE_INTERVAL = 30


async def async_setup_entry(hass, config, async_add_entities):
    """Create wallbox sensor entities in HASS."""
    coordinator = hass.data[DOMAIN][CONF_CONNECTIONS][config.entry_id]

    async_add_entities(
        [
            WallboxSensor(coordinator, config, description)
            for ent in coordinator.data
            if (description := SENSOR_TYPES[ent])
        ]
    )


class WallboxSensor(CoordinatorEntity, SensorEntity):
    """Representation of the Wallbox portal."""

    entity_description: WallboxSensorEntityDescription

    def __init__(
        self, coordinator, config, description: WallboxSensorEntityDescription
    ):
        """Initialize a Wallbox sensor."""
        super().__init__(coordinator)
        self.entity_description = description
        self._attr_name = f"{config.title} {description.name}"

    @property
    def native_value(self):
        """Return the state of the sensor."""
        return self.coordinator.data[self.entity_description.key]
Home Assistant component for accessing the Wallbox Portal API. The sensor component creates multiple sensors regarding wallbox performance. Create wallbox sensor entities in HASS. Representation of the Wallbox portal. Initialize a Wallbox sensor. Return the state of the sensor.