hass-core/homeassistant/components/tessie/lock.py
Brett Adams 1170e72913
Add lock platform to Tessie (#106216)
* Add lock platform

* Update tests

* fix test docstring
2023-12-22 10:11:48 +01:00

52 lines
1.5 KiB
Python

"""Lock platform for Tessie integration."""
from __future__ import annotations
from typing import Any
from tessie_api import lock, unlock
from homeassistant.components.lock import LockEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN
from .coordinator import TessieDataUpdateCoordinator
from .entity import TessieEntity
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Set up the Tessie sensor platform from a config entry."""
coordinators = hass.data[DOMAIN][entry.entry_id]
async_add_entities(TessieLockEntity(coordinator) for coordinator in coordinators)
class TessieLockEntity(TessieEntity, LockEntity):
"""Lock entity for current charge."""
_attr_name = None
def __init__(
self,
coordinator: TessieDataUpdateCoordinator,
) -> None:
"""Initialize the sensor."""
super().__init__(coordinator, "vehicle_state_locked")
@property
def is_locked(self) -> bool | None:
"""Return the state of the Lock."""
return self._value
async def async_lock(self, **kwargs: Any) -> None:
"""Set new value."""
await self.run(lock)
self.set((self.key, True))
async def async_unlock(self, **kwargs: Any) -> None:
"""Set new value."""
await self.run(unlock)
self.set((self.key, False))