1 """Home Assistant component for accessing the Wallbox Portal API. The lock component creates a lock entity."""
3 from __future__
import annotations
15 CHARGER_LOCKED_UNLOCKED_KEY,
16 CHARGER_SERIAL_NUMBER_KEY,
19 from .coordinator
import InvalidAuth, WallboxCoordinator
20 from .entity
import WallboxEntity
22 LOCK_TYPES: dict[str, LockEntityDescription] = {
24 key=CHARGER_LOCKED_UNLOCKED_KEY,
25 translation_key=
"lock",
31 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
33 """Create wallbox lock entities in HASS."""
34 coordinator: WallboxCoordinator = hass.data[DOMAIN][entry.entry_id]
37 await coordinator.async_set_lock_unlock(
38 coordinator.data[CHARGER_LOCKED_UNLOCKED_KEY]
42 except ConnectionError
as exc:
43 raise PlatformNotReady
from exc
47 for ent
in coordinator.data
48 if (description := LOCK_TYPES.get(ent))
53 """Representation of a wallbox lock."""
57 coordinator: WallboxCoordinator,
58 description: LockEntityDescription,
60 """Initialize a Wallbox lock."""
64 self.
_attr_unique_id_attr_unique_id = f
"{description.key}-{coordinator.data[CHARGER_DATA_KEY][CHARGER_SERIAL_NUMBER_KEY]}"
68 """Return the status of the lock."""
69 return self.coordinator.data[CHARGER_LOCKED_UNLOCKED_KEY]
None async_set_lock_unlock(self, bool lock)
None async_lock(self, **Any kwargs)
None __init__(self, WallboxCoordinator coordinator, LockEntityDescription description)
None async_unlock(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)