1 """Lock support for switch entities."""
3 from __future__
import annotations
21 from .const
import CONF_INVERT
22 from .entity
import BaseInvertableEntity
27 config_entry: ConfigEntry,
28 async_add_entities: AddEntitiesCallback,
30 """Initialize Lock Switch config entry."""
31 registry = er.async_get(hass)
32 entity_id = er.async_validate_entity_id(
33 registry, config_entry.options[CONF_ENTITY_ID]
42 config_entry.options[CONF_INVERT],
44 config_entry.entry_id,
51 """Represents a Switch as a Lock."""
55 await self.
hasshass.services.async_call(
57 SERVICE_TURN_ON
if self.
_invert_state_invert_state
else SERVICE_TURN_OFF,
63 async
def async_unlock(self, **kwargs: Any) ->
None:
64 """Unlock the lock."""
65 await self.
hasshass.services.async_call(
67 SERVICE_TURN_OFF
if self.
_invert_state_invert_state
else SERVICE_TURN_ON,
75 self, event: Event[EventStateChangedData] |
None =
None
77 """Handle child updates."""
None async_state_changed_listener(self, Event[EventStateChangedData]|None event=None)
None async_lock(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)