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:
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user