1 """Demo lock platform that implements locks."""
3 from __future__
import annotations
18 config_entry: ConfigEntry,
19 async_add_entities: AddEntitiesCallback,
21 """Set up the Demo config entry."""
24 DemoLock(
"Front Door", LockState.LOCKED),
25 DemoLock(
"Kitchen Door", LockState.UNLOCKED),
26 DemoLock(
"Poorly Installed Door", LockState.UNLOCKED,
False,
True),
27 DemoLock(
"Openable Lock", LockState.LOCKED,
True),
33 """Representation of a Demo lock."""
35 _attr_should_poll =
False
41 openable: bool =
False,
42 jam_on_operation: bool =
False,
44 """Initialize the lock."""
54 """Return true if lock is locking."""
55 return self.
_state_state == LockState.LOCKING
59 """Return true if lock is unlocking."""
60 return self.
_state_state == LockState.UNLOCKING
64 """Return true if lock is jammed."""
65 return self.
_state_state == LockState.JAMMED
69 """Return true if lock is locked."""
70 return self.
_state_state == LockState.LOCKED
74 """Return true if lock is open."""
75 return self.
_state_state == LockState.OPEN
79 """Return true if lock is opening."""
80 return self.
_state_state == LockState.OPENING
83 """Lock the device."""
84 self.
_state_state = LockState.LOCKING
86 await asyncio.sleep(LOCK_UNLOCK_DELAY)
88 self.
_state_state = LockState.JAMMED
90 self.
_state_state = LockState.LOCKED
94 """Unlock the device."""
95 self.
_state_state = LockState.UNLOCKING
97 await asyncio.sleep(LOCK_UNLOCK_DELAY)
98 self.
_state_state = LockState.UNLOCKED
102 """Open the door latch."""
103 self.
_state_state = LockState.OPENING
105 await asyncio.sleep(LOCK_UNLOCK_DELAY)
106 self.
_state_state = LockState.OPEN
None async_unlock(self, **Any kwargs)
None async_lock(self, **Any kwargs)
None __init__(self, str name, str state, bool openable=False, bool jam_on_operation=False)
None async_open(self, **Any kwargs)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)