1 """Support for Kaiterra Temperature ahn Humidity Sensors."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
10 SensorEntityDescription,
18 from .const
import DISPATCHER_KAITERRA, DOMAIN
21 @dataclass(frozen=True, kw_only=True)
23 """Class describing Renault sensor entities."""
32 device_class=SensorDeviceClass.TEMPERATURE,
37 device_class=SensorDeviceClass.HUMIDITY,
45 async_add_entities: AddEntitiesCallback,
46 discovery_info: DiscoveryInfoType |
None =
None,
48 """Set up the kaiterra temperature and humidity sensor."""
49 if discovery_info
is None:
52 api = hass.data[DOMAIN]
53 name = discovery_info[CONF_NAME]
54 device_id = discovery_info[CONF_DEVICE_ID]
57 [
KaiterraSensor(api, name, device_id, description)
for description
in SENSORS]
62 """Implementation of a Kaittera sensor."""
64 _attr_should_poll =
False
67 self, api, name, device_id, description: KaiterraSensorEntityDescription
69 """Initialize the sensor."""
73 self.
_attr_name_attr_name = f
"{name} {description.suffix}"
78 """Return the sensor data."""
85 """Return the availability of the sensor."""
86 return self.
_api_api.data.get(self.
_device_id_device_id)
is not None
90 """Return the state."""
95 """Return the unit the value is expressed in."""
99 value = self.
_sensor_sensor[
"units"].value
102 return UnitOfTemperature.FAHRENHEIT
104 return UnitOfTemperature.CELSIUS
108 """Register callback."""
None __init__(self, api, name, device_id, KaiterraSensorEntityDescription description)
def native_unit_of_measurement(self)
None async_added_to_hass(self)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
web.Response get(self, web.Request request, str config_key)
None async_setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)