Home Assistant Unofficial Reference 2024.12.1
lock.py
Go to the documentation of this file.
1 """Support for Homematic locks."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.components.lock import LockEntity, LockEntityFeature
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.entity_platform import AddEntitiesCallback
10 from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
11 
12 from .const import ATTR_DISCOVER_DEVICES
13 from .entity import HMDevice
14 
15 
17  hass: HomeAssistant,
18  config: ConfigType,
19  add_entities: AddEntitiesCallback,
20  discovery_info: DiscoveryInfoType | None = None,
21 ) -> None:
22  """Set up the Homematic lock platform."""
23  if discovery_info is None:
24  return
25 
26  add_entities((HMLock(conf) for conf in discovery_info[ATTR_DISCOVER_DEVICES]), True)
27 
28 
30  """Representation of a Homematic lock aka KeyMatic."""
31 
32  _attr_supported_features = LockEntityFeature.OPEN
33 
34  @property
35  def is_locked(self) -> bool:
36  """Return true if the lock is locked."""
37  return not bool(self._hm_get_state_hm_get_state())
38 
39  def lock(self, **kwargs: Any) -> None:
40  """Lock the lock."""
41  self._hmdevice_hmdevice.lock()
42 
43  def unlock(self, **kwargs: Any) -> None:
44  """Unlock the lock."""
45  self._hmdevice_hmdevice.unlock()
46 
47  def open(self, **kwargs: Any) -> None:
48  """Open the door latch."""
49  self._hmdevice_hmdevice.open()
50 
51  def _init_data_struct(self):
52  """Generate the data dictionary (self._data) from metadata."""
53  self._state_state_state = "STATE"
54  self._data.update({self._state_state_state: None})
None lock(self, **Any kwargs)
Definition: lock.py:39
None unlock(self, **Any kwargs)
Definition: lock.py:43
None open(self, **Any kwargs)
Definition: lock.py:47
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)
Definition: lock.py:21