1 """Support for Renault device trackers."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
7 from renault_api.kamereon.models
import KamereonVehicleLocationData
11 TrackerEntityDescription,
16 from .
import RenaultConfigEntry
17 from .entity
import RenaultDataEntity, RenaultDataEntityDescription
20 @dataclass(frozen=True, kw_only=True)
22 TrackerEntityDescription, RenaultDataEntityDescription
24 """Class describing Renault tracker entities."""
29 config_entry: RenaultConfigEntry,
30 async_add_entities: AddEntitiesCallback,
32 """Set up the Renault entities from config entry."""
33 entities: list[RenaultDeviceTracker] = [
35 for vehicle
in config_entry.runtime_data.vehicles.values()
36 for description
in DEVICE_TRACKER_TYPES
37 if description.coordinator
in vehicle.coordinators
43 RenaultDataEntity[KamereonVehicleLocationData], TrackerEntity
45 """Mixin for device tracker specific attributes."""
47 entity_description: RenaultTrackerEntityDescription
51 """Return latitude value of the device."""
56 """Return longitude value of the device."""
60 DEVICE_TRACKER_TYPES: tuple[RenaultTrackerEntityDescription, ...] = (
63 coordinator=
"location",
64 translation_key=
"location",
float|None longitude(self)
float|None latitude(self)
None async_setup_entry(HomeAssistant hass, RenaultConfigEntry config_entry, AddEntitiesCallback async_add_entities)