diff --git a/homeassistant/components/assist_satellite/entity.py b/homeassistant/components/assist_satellite/entity.py index 8be136653ba..e9a5d22c0d0 100644 --- a/homeassistant/components/assist_satellite/entity.py +++ b/homeassistant/components/assist_satellite/entity.py @@ -96,7 +96,11 @@ class AssistSatelliteAnnouncement: media_id: str """Media ID to be played.""" + original_media_id: str + """The raw media ID before processing.""" + media_id_source: Literal["url", "media_id", "tts"] + """Source of the media ID.""" class AssistSatelliteEntity(entity.Entity): @@ -396,7 +400,10 @@ class AssistSatelliteEntity(entity.Entity): """Resolve the media ID.""" media_id_source: Literal["url", "media_id", "tts"] | None = None - if not media_id: + if media_id: + original_media_id = media_id + + else: media_id_source = "tts" # Synthesize audio and get URL pipeline_id = self._resolve_pipeline() @@ -416,6 +423,7 @@ class AssistSatelliteEntity(entity.Entity): language=pipeline.tts_language, options=tts_options, ) + original_media_id = media_id if media_source.is_media_source_id(media_id): if not media_id_source: @@ -433,4 +441,6 @@ class AssistSatelliteEntity(entity.Entity): # Resolve to full URL media_id = async_process_play_media_url(self.hass, media_id) - return AssistSatelliteAnnouncement(message, media_id, media_id_source) + return AssistSatelliteAnnouncement( + message, media_id, original_media_id, media_id_source + ) diff --git a/tests/components/assist_satellite/test_entity.py b/tests/components/assist_satellite/test_entity.py index 0961c7dfbca..c3464beac97 100644 --- a/tests/components/assist_satellite/test_entity.py +++ b/tests/components/assist_satellite/test_entity.py @@ -163,21 +163,32 @@ async def test_new_pipeline_cancels_pipeline( ( {"message": "Hello"}, AssistSatelliteAnnouncement( - "Hello", "https://www.home-assistant.io/resolved.mp3", "tts" + message="Hello", + media_id="https://www.home-assistant.io/resolved.mp3", + original_media_id="media-source://bla", + media_id_source="tts", ), ), ( { "message": "Hello", - "media_id": "media-source://bla", + "media_id": "media-source://given", }, AssistSatelliteAnnouncement( - "Hello", "https://www.home-assistant.io/resolved.mp3", "media_id" + message="Hello", + media_id="https://www.home-assistant.io/resolved.mp3", + original_media_id="media-source://given", + media_id_source="media_id", ), ), ( {"media_id": "http://example.com/bla.mp3"}, - AssistSatelliteAnnouncement("", "http://example.com/bla.mp3", "url"), + AssistSatelliteAnnouncement( + message="", + media_id="http://example.com/bla.mp3", + original_media_id="http://example.com/bla.mp3", + media_id_source="url", + ), ), ], )