From ad69a23fdad88422ccd382452dcf8ce0daa57cb2 Mon Sep 17 00:00:00 2001 From: Mischa Siekmann <45062894+gnumpi@users.noreply.github.com> Date: Wed, 22 May 2024 23:47:34 +0200 Subject: [PATCH] Send MEDIA_ANNOUNCE flag to ESPHome media_player (#116993) --- homeassistant/components/esphome/media_player.py | 6 ++++-- tests/components/esphome/test_media_player.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/esphome/media_player.py b/homeassistant/components/esphome/media_player.py index c2bfdc5850d..8caad0f939d 100644 --- a/homeassistant/components/esphome/media_player.py +++ b/homeassistant/components/esphome/media_player.py @@ -14,6 +14,7 @@ from aioesphomeapi import ( from homeassistant.components import media_source from homeassistant.components.media_player import ( + ATTR_MEDIA_ANNOUNCE, BrowseMedia, MediaPlayerDeviceClass, MediaPlayerEntity, @@ -77,6 +78,7 @@ class EsphomeMediaPlayer( | MediaPlayerEntityFeature.STOP | MediaPlayerEntityFeature.VOLUME_SET | MediaPlayerEntityFeature.VOLUME_MUTE + | MediaPlayerEntityFeature.MEDIA_ANNOUNCE ) if self._static_info.supports_pause: flags |= MediaPlayerEntityFeature.PAUSE | MediaPlayerEntityFeature.PLAY @@ -112,10 +114,10 @@ class EsphomeMediaPlayer( media_id = sourced_media.url media_id = async_process_play_media_url(self.hass, media_id) + announcement = kwargs.get(ATTR_MEDIA_ANNOUNCE) self._client.media_player_command( - self._key, - media_url=media_id, + self._key, media_url=media_id, announcement=announcement ) async def async_browse_media( diff --git a/tests/components/esphome/test_media_player.py b/tests/components/esphome/test_media_player.py index 8a3630b92a4..3879129ccb6 100644 --- a/tests/components/esphome/test_media_player.py +++ b/tests/components/esphome/test_media_player.py @@ -13,6 +13,7 @@ import pytest from homeassistant.components import media_source from homeassistant.components.media_player import ( + ATTR_MEDIA_ANNOUNCE, ATTR_MEDIA_CONTENT_ID, ATTR_MEDIA_CONTENT_TYPE, ATTR_MEDIA_VOLUME_LEVEL, @@ -247,7 +248,7 @@ async def test_media_player_entity_with_source( ) mock_client.media_player_command.assert_has_calls( - [call(1, media_url="http://www.example.com/xy.mp3")] + [call(1, media_url="http://www.example.com/xy.mp3", announcement=None)] ) client = await hass_ws_client() @@ -268,10 +269,11 @@ async def test_media_player_entity_with_source( ATTR_ENTITY_ID: "media_player.test_mymedia_player", ATTR_MEDIA_CONTENT_TYPE: MediaType.URL, ATTR_MEDIA_CONTENT_ID: "media-source://tts?message=hello", + ATTR_MEDIA_ANNOUNCE: True, }, blocking=True, ) mock_client.media_player_command.assert_has_calls( - [call(1, media_url="media-source://tts?message=hello")] + [call(1, media_url="media-source://tts?message=hello", announcement=True)] )