1 """Support for Steamist sensors."""
3 from __future__
import annotations
5 from collections.abc
import Callable
6 from dataclasses
import dataclass
8 from aiosteamist
import SteamistStatus
13 SensorEntityDescription,
21 from .const
import DOMAIN
22 from .coordinator
import SteamistDataUpdateCoordinator
23 from .entity
import SteamistEntity
25 _KEY_MINUTES_REMAIN =
"minutes_remain"
29 "C": UnitOfTemperature.CELSIUS,
30 "F": UnitOfTemperature.FAHRENHEIT,
34 @dataclass(frozen=True, kw_only=True)
36 """Describes a Steamist sensor entity."""
38 value_fn: Callable[[SteamistStatus], int |
None]
41 SENSORS: tuple[SteamistSensorEntityDescription, ...] = (
43 key=_KEY_MINUTES_REMAIN,
44 translation_key=
"steam_minutes_remain",
45 native_unit_of_measurement=UnitOfTime.MINUTES,
46 value_fn=
lambda status: status.minutes_remain,
50 translation_key=
"steam_temperature",
51 device_class=SensorDeviceClass.TEMPERATURE,
52 state_class=SensorStateClass.MEASUREMENT,
53 value_fn=
lambda status: status.temp,
60 config_entry: ConfigEntry,
61 async_add_entities: AddEntitiesCallback,
64 coordinator: SteamistDataUpdateCoordinator = hass.data[DOMAIN][
70 for description
in SENSORS
76 """Representation of a Steamist steam switch."""
78 entity_description: SteamistSensorEntityDescription
82 coordinator: SteamistDataUpdateCoordinator,
84 description: SteamistSensorEntityDescription,
86 """Initialize the sensor entity."""
87 super().
__init__(coordinator, entry, description)
88 if description.key == _KEY_TEMP:
95 """Return the native value of the sensor."""
SteamistStatus _status(self)
None __init__(self, SteamistDataUpdateCoordinator coordinator, ConfigEntry entry, SteamistSensorEntityDescription description)
int|None native_value(self)
_attr_native_unit_of_measurement
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)