1
0
mirror of https://github.com/home-assistant/core.git synced 2026-07-17 11:33:49 +01:00

Use state attribute enums in Teslemetry (#175970)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
epenet
2026-07-12 21:37:25 +02:00
committed by GitHub
parent ce40932508
commit b4665cc0eb
3 changed files with 45 additions and 15 deletions
@@ -13,6 +13,7 @@ from homeassistant.components.device_tracker import (
TrackerEntity,
TrackerEntityDescription,
)
from homeassistant.const import EntityStateAttribute
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.restore_state import RestoreEntity
@@ -147,8 +148,8 @@ class TeslemetryStreamingDeviceTrackerEntity(
"""Handle entity which will be added."""
await super().async_added_to_hass()
if (state := await self.async_get_last_state()) is not None:
self._attr_latitude = state.attributes.get("latitude")
self._attr_longitude = state.attributes.get("longitude")
self._attr_latitude = state.attributes.get(EntityStateAttribute.LATITUDE)
self._attr_longitude = state.attributes.get(EntityStateAttribute.LONGITUDE)
self.async_on_remove(
self.entity_description.value_listener(
self.vehicle.stream_vehicle, self._location_callback
@@ -10,6 +10,7 @@ from homeassistant.components.media_player import (
MediaPlayerDeviceClass,
MediaPlayerEntity,
MediaPlayerEntityFeature,
MediaPlayerEntityStateAttribute,
MediaPlayerState,
)
from homeassistant.core import HomeAssistant
@@ -201,14 +202,30 @@ class TeslemetryStreamingMediaEntity(
self._attr_state = MediaPlayerState(state.state)
except ValueError:
self._attr_state = None
self._attr_volume_level = state.attributes.get("volume_level")
self._attr_media_title = state.attributes.get("media_title")
self._attr_media_artist = state.attributes.get("media_artist")
self._attr_media_album_name = state.attributes.get("media_album_name")
self._attr_media_playlist = state.attributes.get("media_playlist")
self._attr_media_duration = state.attributes.get("media_duration")
self._attr_media_position = state.attributes.get("media_position")
self._attr_source = state.attributes.get("source")
self._attr_volume_level = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_VOLUME_LEVEL
)
self._attr_media_title = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_TITLE
)
self._attr_media_artist = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_ARTIST
)
self._attr_media_album_name = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_ALBUM_NAME
)
self._attr_media_playlist = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_PLAYLIST
)
self._attr_media_duration = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_DURATION
)
self._attr_media_position = state.attributes.get(
MediaPlayerEntityStateAttribute.MEDIA_POSITION
)
self._attr_source = state.attributes.get(
MediaPlayerEntityStateAttribute.INPUT_SOURCE
)
self.async_write_ha_state()
+17 -5
View File
@@ -6,7 +6,11 @@ from tesla_fleet_api import firmware_at_least
from tesla_fleet_api.const import Scope
from tesla_fleet_api.teslemetry import Vehicle
from homeassistant.components.update import UpdateEntity, UpdateEntityFeature
from homeassistant.components.update import (
UpdateEntity,
UpdateEntityFeature,
UpdateEntityStateAttribute,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.restore_state import RestoreEntity
@@ -154,10 +158,18 @@ class TeslemetryStreamingUpdateEntity(
"""Handle entity which will be added."""
await super().async_added_to_hass()
if (state := await self.async_get_last_state()) is not None:
self._attr_in_progress = state.attributes.get("in_progress", False)
self._attr_update_percentage = state.attributes.get("update_percentage")
self._attr_installed_version = state.attributes.get("installed_version")
self._attr_latest_version = state.attributes.get("latest_version")
self._attr_in_progress = state.attributes.get(
UpdateEntityStateAttribute.IN_PROGRESS, False
)
self._attr_update_percentage = state.attributes.get(
UpdateEntityStateAttribute.UPDATE_PERCENTAGE
)
self._attr_installed_version = state.attributes.get(
UpdateEntityStateAttribute.INSTALLED_VERSION
)
self._attr_latest_version = state.attributes.get(
UpdateEntityStateAttribute.LATEST_VERSION
)
self._attr_supported_features = UpdateEntityFeature(
state.attributes.get(
"supported_features", self._attr_supported_features