Home Assistant Unofficial Reference 2024.12.1
models.py
Go to the documentation of this file.
1 """The Teslemetry integration models."""
2 
3 from __future__ import annotations
4 
5 import asyncio
6 from collections.abc import Callable
7 from dataclasses import dataclass
8 
9 from tesla_fleet_api import EnergySpecific, VehicleSpecific
10 from tesla_fleet_api.const import Scope
11 from teslemetry_stream import TeslemetryStream
12 
13 from homeassistant.helpers.device_registry import DeviceInfo
14 
15 from .coordinator import (
16  TeslemetryEnergyHistoryCoordinator,
17  TeslemetryEnergySiteInfoCoordinator,
18  TeslemetryEnergySiteLiveCoordinator,
19  TeslemetryVehicleDataCoordinator,
20 )
21 
22 
23 @dataclass
25  """Data for the Teslemetry integration."""
26 
27  vehicles: list[TeslemetryVehicleData]
28  energysites: list[TeslemetryEnergyData]
29  scopes: list[Scope]
30 
31 
32 @dataclass
34  """Data for a vehicle in the Teslemetry integration."""
35 
36  api: VehicleSpecific
37  coordinator: TeslemetryVehicleDataCoordinator
38  stream: TeslemetryStream
39  vin: str
40  wakelock = asyncio.Lock()
41  device: DeviceInfo
42  remove_listener: Callable
43 
44 
45 @dataclass
47  """Data for a vehicle in the Teslemetry integration."""
48 
49  api: EnergySpecific
50  live_coordinator: TeslemetryEnergySiteLiveCoordinator
51  info_coordinator: TeslemetryEnergySiteInfoCoordinator
52  history_coordinator: TeslemetryEnergyHistoryCoordinator | None
53  id: int
54  device: DeviceInfo