1 """Support for Google Nest SDM sensors."""
3 from __future__
import annotations
7 from google_nest_sdm.device
import Device
8 from google_nest_sdm.device_manager
import DeviceManager
9 from google_nest_sdm.device_traits
import HumidityTrait, TemperatureTrait
21 from .const
import DATA_DEVICE_MANAGER, DOMAIN
22 from .device_info
import NestDeviceInfo
24 _LOGGER = logging.getLogger(__name__)
28 "sdm.devices.types.CAMERA":
"Camera",
29 "sdm.devices.types.DISPLAY":
"Display",
30 "sdm.devices.types.DOORBELL":
"Doorbell",
31 "sdm.devices.types.THERMOSTAT":
"Thermostat",
36 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
38 """Set up the sensors."""
40 device_manager: DeviceManager = hass.data[DOMAIN][entry.entry_id][
43 entities: list[SensorEntity] = []
44 for device
in device_manager.devices.values():
45 if TemperatureTrait.NAME
in device.traits:
47 if HumidityTrait.NAME
in device.traits:
53 """Representation of a dynamically updated Sensor."""
55 _attr_should_poll =
False
56 _attr_state_class = SensorStateClass.MEASUREMENT
57 _attr_has_entity_name =
True
60 """Initialize the sensor."""
68 """Return the device availability."""
72 """Run when entity is added to register update signal handler."""
79 """Representation of a Temperature Sensor."""
81 _attr_device_class = SensorDeviceClass.TEMPERATURE
82 _attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
86 """Return the state of the sensor."""
87 trait: TemperatureTrait = self.
_device_device.traits[TemperatureTrait.NAME]
91 return float(round(trait.ambient_temperature_celsius, 1))
95 """Representation of a Humidity Sensor."""
97 _attr_device_class = SensorDeviceClass.HUMIDITY
98 _attr_native_unit_of_measurement = PERCENTAGE
102 """Return the state of the sensor."""
103 trait: HumidityTrait = self.
_device_device.traits[HumidityTrait.NAME]
105 return int(trait.ambient_humidity_percent)
None async_added_to_hass(self)
None __init__(self, Device device)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)