Home Assistant Unofficial Reference 2024.12.1
device_tracker.py
Go to the documentation of this file.
1 """Support for Traccar server device tracking."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.components.device_tracker import TrackerEntity
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 
12 from .const import ATTR_CATEGORY, ATTR_TRACCAR_ID, ATTR_TRACKER, DOMAIN
13 from .coordinator import TraccarServerCoordinator
14 from .entity import TraccarServerEntity
15 
16 
18  hass: HomeAssistant,
19  entry: ConfigEntry,
20  async_add_entities: AddEntitiesCallback,
21 ) -> None:
22  """Set up device tracker entities."""
23  coordinator: TraccarServerCoordinator = hass.data[DOMAIN][entry.entry_id]
25  TraccarServerDeviceTracker(coordinator, entry["device"])
26  for entry in coordinator.data.values()
27  )
28 
29 
31  """Represent a tracked device."""
32 
33  _attr_has_entity_name = True
34  _attr_name = None
35 
36  @property
37  def extra_state_attributes(self) -> dict[str, Any]:
38  """Return device specific attributes."""
39  return {
40  **self.traccar_attributestraccar_attributes,
41  ATTR_CATEGORY: self.traccar_devicetraccar_device["category"],
42  ATTR_TRACCAR_ID: self.traccar_devicetraccar_device["id"],
43  ATTR_TRACKER: DOMAIN,
44  }
45 
46  @property
47  def latitude(self) -> float:
48  """Return latitude value of the device."""
49  return self.traccar_positiontraccar_position["latitude"]
50 
51  @property
52  def longitude(self) -> float:
53  """Return longitude value of the device."""
54  return self.traccar_positiontraccar_position["longitude"]
55 
56  @property
57  def location_accuracy(self) -> int:
58  """Return the gps accuracy of the device."""
59  return self.traccar_positiontraccar_position["accuracy"]
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)