1 """Lock platform for Teslemetry integration."""
3 from __future__
import annotations
7 from tesla_fleet_api.const
import Scope
14 from .
import TeslemetryConfigEntry
15 from .const
import DOMAIN
16 from .entity
import TeslemetryVehicleEntity
17 from .helpers
import handle_vehicle_command
18 from .models
import TeslemetryVehicleData
27 entry: TeslemetryConfigEntry,
28 async_add_entities: AddEntitiesCallback,
30 """Set up the Teslemetry lock platform from a config entry."""
33 klass(vehicle, Scope.VEHICLE_CMDS
in entry.runtime_data.scopes)
35 TeslemetryVehicleLockEntity,
36 TeslemetryCableLockEntity,
38 for vehicle
in entry.runtime_data.vehicles
43 """Lock entity for Teslemetry."""
45 def __init__(self, data: TeslemetryVehicleData, scoped: bool) ->
None:
46 """Initialize the lock."""
47 super().
__init__(data,
"vehicle_state_locked")
51 """Update entity attributes."""
63 """Unlock the doors."""
72 """Cable Lock entity for Teslemetry."""
76 data: TeslemetryVehicleData,
79 """Initialize the lock."""
80 super().
__init__(data,
"charge_state_charge_port_latch")
84 """Update entity attributes."""
90 """Charge cable Lock cannot be manually locked."""
92 "Insert cable to lock",
93 translation_domain=DOMAIN,
94 translation_key=
"no_cable",
98 """Unlock charge cable lock."""
def raise_for_scope(self, Scope scope)
None wake_up_if_asleep(self)
None __init__(self, TeslemetryVehicleData data, bool scoped)
None async_unlock(self, **Any kwargs)
None _async_update_attrs(self)
None async_lock(self, **Any kwargs)
None __init__(self, TeslemetryVehicleData data, bool scoped)
None _async_update_attrs(self)
None async_unlock(self, **Any kwargs)
None async_lock(self, **Any kwargs)
None async_write_ha_state(self)
bool handle_vehicle_command(Awaitable command)
None async_setup_entry(HomeAssistant hass, TeslemetryConfigEntry entry, AddEntitiesCallback async_add_entities)