1 """Support for StarLine lock."""
3 from __future__
import annotations
12 from .account
import StarlineAccount, StarlineDevice
13 from .const
import DOMAIN
14 from .entity
import StarlineEntity
18 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
20 """Set up the StarLine lock."""
21 account: StarlineAccount = hass.data[DOMAIN][entry.entry_id]
23 for device
in account.api.devices.values():
24 if device.support_state:
26 if lock.is_locked
is not None:
32 """Representation of a StarLine lock."""
34 _attr_translation_key =
"security"
36 def __init__(self, account: StarlineAccount, device: StarlineDevice) ->
None:
37 """Initialize the lock."""
38 super().
__init__(account, device,
"lock")
42 """Return True if entity is available."""
43 return super().available
and self.
_device_device.online
47 """Return the state attributes of the lock.
49 Possible dictionary keys:
50 add_h - Additional sensor alarm status (high level)
51 add_l - Additional channel alarm status (low level)
52 door - Doors alarm status
53 hbrake - Hand brake alarm status
54 hijack - Hijack mode status
55 hood - Hood alarm status
56 ign - Ignition alarm status
57 pbrake - Brake pedal alarm status
58 shock_h - Shock sensor alarm status (high level)
59 shock_l - Shock sensor alarm status (low level)
60 tilt - Tilt sensor alarm status
61 trunk - Trunk alarm status
62 Documentation: https://developer.starline.ru/#api-Device-DeviceState
64 return self.
_device_device.alarm_state
68 """Return true if lock is locked."""
69 return self.
_device_device.car_state.get(
"arm")
71 def lock(self, **kwargs: Any) ->
None:
73 self.
_account_account.api.set_car_state(self.
_device_device.device_id,
"arm",
True)
75 def unlock(self, **kwargs: Any) ->
None:
77 self.
_account_account.api.set_car_state(self.
_device_device.device_id,
"arm",
False)
None lock(self, **Any kwargs)
bool|None is_locked(self)
None __init__(self, StarlineAccount account, StarlineDevice device)
None unlock(self, **Any kwargs)
dict[str, bool] extra_state_attributes(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)