diff --git a/homeassistant/components/starlink/const.py b/homeassistant/components/starlink/const.py index e2f88c5e442..c1a7b1cfd2c 100644 --- a/homeassistant/components/starlink/const.py +++ b/homeassistant/components/starlink/const.py @@ -1,3 +1,5 @@ """Constants for the Starlink integration.""" DOMAIN = "starlink" + +ATTR_ALTITUDE = "altitude" diff --git a/homeassistant/components/starlink/device_tracker.py b/homeassistant/components/starlink/device_tracker.py index 84c0a4cac24..34769d687ff 100644 --- a/homeassistant/components/starlink/device_tracker.py +++ b/homeassistant/components/starlink/device_tracker.py @@ -2,6 +2,7 @@ from collections.abc import Callable from dataclasses import dataclass +from typing import Any from homeassistant.components.device_tracker import SourceType, TrackerEntity from homeassistant.config_entries import ConfigEntry @@ -9,7 +10,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import EntityDescription from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .const import DOMAIN +from .const import ATTR_ALTITUDE, DOMAIN from .coordinator import StarlinkData from .entity import StarlinkEntity @@ -32,6 +33,7 @@ class StarlinkDeviceTrackerEntityDescription(EntityDescription): latitude_fn: Callable[[StarlinkData], float] longitude_fn: Callable[[StarlinkData], float] + altitude_fn: Callable[[StarlinkData], float] DEVICE_TRACKERS = [ @@ -41,6 +43,7 @@ DEVICE_TRACKERS = [ entity_registry_enabled_default=False, latitude_fn=lambda data: data.location["latitude"], longitude_fn=lambda data: data.location["longitude"], + altitude_fn=lambda data: data.location["altitude"], ), ] @@ -64,3 +67,10 @@ class StarlinkDeviceTrackerEntity(StarlinkEntity, TrackerEntity): def longitude(self) -> float | None: """Return longitude value of the device.""" return self.entity_description.longitude_fn(self.coordinator.data) + + @property + def extra_state_attributes(self) -> dict[str, Any]: + """Return device specific attributes.""" + return { + ATTR_ALTITUDE: self.entity_description.altitude_fn(self.coordinator.data) + }