1 """Platform for Schlage lock integration."""
3 from __future__
import annotations
12 from .const
import DOMAIN
13 from .coordinator
import LockData, SchlageDataUpdateCoordinator
14 from .entity
import SchlageEntity
19 config_entry: ConfigEntry,
20 async_add_entities: AddEntitiesCallback,
22 """Set up Schlage WiFi locks based on a config entry."""
23 coordinator: SchlageDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
28 for device_id
in locks
32 coordinator.new_locks_callbacks.append(_add_new_locks)
36 """Schlage lock entity."""
41 self, coordinator: SchlageDataUpdateCoordinator, device_id: str
43 """Initialize a Schlage Lock."""
44 super().
__init__(coordinator=coordinator, device_id=device_id)
49 """Handle updated data from the coordinator."""
50 if self.
device_iddevice_id
in self.coordinator.data.locks:
55 """Update our internal state attributes."""
61 """Lock the device."""
62 await self.
hasshasshass.async_add_executor_job(self.
_lock_lock.lock)
66 """Unlock the device."""
67 await self.
hasshasshass.async_add_executor_job(self.
_lock_lock.unlock)
None async_lock(self, **Any kwargs)
None async_unlock(self, **Any kwargs)
None __init__(self, SchlageDataUpdateCoordinator coordinator, str device_id)
None _handle_coordinator_update(self)
None async_request_refresh(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
None _add_new_locks(dict[str, LockData] locks)