1 """Device tracker platform for Teslemetry integration."""
3 from __future__
import annotations
10 from .
import TeslemetryConfigEntry
11 from .entity
import TeslemetryVehicleEntity
12 from .models
import TeslemetryVehicleData
19 entry: TeslemetryConfigEntry,
20 async_add_entities: AddEntitiesCallback,
22 """Set up the Teslemetry device tracker platform from a config entry."""
27 TeslemetryDeviceTrackerLocationEntity,
28 TeslemetryDeviceTrackerRouteEntity,
30 for vehicle
in entry.runtime_data.vehicles
35 """Base class for Teslemetry tracker entities."""
42 vehicle: TeslemetryVehicleData,
44 """Initialize the device tracker."""
48 """Update the attributes of the device tracker."""
51 self.
getget(self.lat_key,
False)
is not None
52 and self.
getget(self.lon_key,
False)
is not None
57 """Return latitude value of the device."""
58 return self.
getget(self.lat_key)
62 """Return longitude value of the device."""
63 return self.
getget(self.lon_key)
67 """Vehicle location device tracker class."""
70 lat_key =
"drive_state_latitude"
71 lon_key =
"drive_state_longitude"
75 """Vehicle navigation device tracker class."""
78 lat_key =
"drive_state_active_route_latitude"
79 lon_key =
"drive_state_active_route_longitude"
83 """Return a location name for the current location of the device."""
84 location = self.
getget(
"drive_state_active_route_destination")
85 if location ==
"Home":
None _async_update_attrs(self)
None __init__(self, TeslemetryVehicleData vehicle)
float|None longitude(self)
float|None latitude(self)
str|None location_name(self)
Any|None get(self, str key, Any|None default=None)
None async_setup_entry(HomeAssistant hass, TeslemetryConfigEntry entry, AddEntitiesCallback async_add_entities)