1 """Support for Verisure sensors."""
3 from __future__
import annotations
18 from .const
import CONF_GIID, DEVICE_TYPE_NAME, DOMAIN
19 from .coordinator
import VerisureDataUpdateCoordinator
25 async_add_entities: AddEntitiesCallback,
27 """Set up Verisure sensors based on a config entry."""
28 coordinator: VerisureDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
30 sensors: list[Entity] = [
32 for serial_number, values
in coordinator.data[
"climate"].items()
33 if "temperatureValue" in values
38 for serial_number, values
in coordinator.data[
"climate"].items()
39 if values.get(
"humidityEnabled")
46 CoordinatorEntity[VerisureDataUpdateCoordinator], SensorEntity
48 """Representation of a Verisure thermometer."""
50 _attr_device_class = SensorDeviceClass.TEMPERATURE
51 _attr_has_entity_name =
True
52 _attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
53 _attr_state_class = SensorStateClass.MEASUREMENT
56 self, coordinator: VerisureDataUpdateCoordinator, serial_number: str
58 """Initialize the sensor."""
65 """Return device information about this entity."""
66 device_type = self.coordinator.data[
"climate"][self.
serial_numberserial_number][
"device"][
69 area = self.coordinator.data[
"climate"][self.
serial_numberserial_number][
"device"][
"area"]
72 manufacturer=
"Verisure",
73 model=DEVICE_TYPE_NAME.get(device_type, device_type),
75 via_device=(DOMAIN, self.coordinator.entry.data[CONF_GIID]),
76 configuration_url=
"https://mypages.verisure.com",
81 """Return the state of the entity."""
82 return self.coordinator.data[
"climate"][self.
serial_numberserial_number][
"temperatureValue"]
86 """Return True if entity is available."""
89 and self.
serial_numberserial_number
in self.coordinator.data[
"climate"]
90 and "temperatureValue"
91 in self.coordinator.data[
"climate"][self.
serial_numberserial_number]
96 CoordinatorEntity[VerisureDataUpdateCoordinator], SensorEntity
98 """Representation of a Verisure hygrometer."""
100 _attr_device_class = SensorDeviceClass.HUMIDITY
101 _attr_has_entity_name =
True
102 _attr_native_unit_of_measurement = PERCENTAGE
103 _attr_state_class = SensorStateClass.MEASUREMENT
106 self, coordinator: VerisureDataUpdateCoordinator, serial_number: str
108 """Initialize the sensor."""
115 """Return device information about this entity."""
116 device_type = self.coordinator.data[
"climate"][self.
serial_numberserial_number][
"device"][
119 area = self.coordinator.data[
"climate"][self.
serial_numberserial_number][
"device"][
"area"]
122 manufacturer=
"Verisure",
123 model=DEVICE_TYPE_NAME.get(device_type, device_type),
125 via_device=(DOMAIN, self.coordinator.entry.data[CONF_GIID]),
126 configuration_url=
"https://mypages.verisure.com",
131 """Return the state of the entity."""
132 return self.coordinator.data[
"climate"][self.
serial_numberserial_number][
"humidityValue"]
136 """Return True if entity is available."""
139 and self.
serial_numberserial_number
in self.coordinator.data[
"climate"]
140 and "humidityValue" in self.coordinator.data[
"climate"][self.
serial_numberserial_number]
str|None native_value(self)
None __init__(self, VerisureDataUpdateCoordinator coordinator, str serial_number)
DeviceInfo device_info(self)
str|None native_value(self)
DeviceInfo device_info(self)
None __init__(self, VerisureDataUpdateCoordinator coordinator, str serial_number)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)