1 """Platform for Schlage sensor integration."""
3 from __future__
import annotations
8 SensorEntityDescription,
16 from .const
import DOMAIN
17 from .coordinator
import LockData, SchlageDataUpdateCoordinator
18 from .entity
import SchlageEntity
20 _SENSOR_DESCRIPTIONS: list[SensorEntityDescription] = [
23 device_class=SensorDeviceClass.BATTERY,
24 entity_category=EntityCategory.DIAGNOSTIC,
25 native_unit_of_measurement=PERCENTAGE,
26 state_class=SensorStateClass.MEASUREMENT,
33 config_entry: ConfigEntry,
34 async_add_entities: AddEntitiesCallback,
36 """Set up sensors based on a config entry."""
37 coordinator: SchlageDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
42 coordinator=coordinator,
43 description=description,
46 for description
in _SENSOR_DESCRIPTIONS
47 for device_id
in locks
51 coordinator.new_locks_callbacks.append(_add_new_locks)
55 """Schlage battery sensor entity."""
59 coordinator: SchlageDataUpdateCoordinator,
60 description: SensorEntityDescription,
63 """Initialize a Schlage battery sensor."""
64 super().
__init__(coordinator=coordinator, device_id=device_id)
71 """Handle updated data from the coordinator."""
72 if self.
device_iddevice_id
in self.coordinator.data.locks:
None _handle_coordinator_update(self)
None __init__(self, SchlageDataUpdateCoordinator coordinator, SensorEntityDescription description, str device_id)
None _add_new_locks(dict[str, LockData] locks)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)