mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Handle announcement finished for ESPHome TTS response (#125625)
* Handle announcement finished for TTS response * Adjust test
This commit is contained in:
@@ -19,6 +19,7 @@ from aioesphomeapi import (
|
||||
HomeassistantServiceCall,
|
||||
ReconnectLogic,
|
||||
UserService,
|
||||
VoiceAssistantAnnounceFinished,
|
||||
VoiceAssistantAudioSettings,
|
||||
VoiceAssistantFeature,
|
||||
)
|
||||
@@ -214,6 +215,13 @@ class MockESPHomeDevice:
|
||||
]
|
||||
| None
|
||||
)
|
||||
self.voice_assistant_handle_announcement_finished_callback: (
|
||||
Callable[
|
||||
[VoiceAssistantAnnounceFinished],
|
||||
Coroutine[Any, Any, None],
|
||||
]
|
||||
| None
|
||||
)
|
||||
self.device_info = device_info
|
||||
|
||||
def set_state_callback(self, state_callback: Callable[[EntityState], None]) -> None:
|
||||
@@ -295,11 +303,21 @@ class MockESPHomeDevice:
|
||||
]
|
||||
| None
|
||||
) = None,
|
||||
handle_announcement_finished: (
|
||||
Callable[
|
||||
[VoiceAssistantAnnounceFinished],
|
||||
Coroutine[Any, Any, None],
|
||||
]
|
||||
| None
|
||||
) = None,
|
||||
) -> None:
|
||||
"""Set the voice assistant subscription callbacks."""
|
||||
self.voice_assistant_handle_start_callback = handle_start
|
||||
self.voice_assistant_handle_stop_callback = handle_stop
|
||||
self.voice_assistant_handle_audio_callback = handle_audio
|
||||
self.voice_assistant_handle_announcement_finished_callback = (
|
||||
handle_announcement_finished
|
||||
)
|
||||
|
||||
async def mock_voice_assistant_handle_start(
|
||||
self,
|
||||
@@ -322,6 +340,13 @@ class MockESPHomeDevice:
|
||||
assert self.voice_assistant_handle_audio_callback is not None
|
||||
await self.voice_assistant_handle_audio_callback(audio)
|
||||
|
||||
async def mock_voice_assistant_handle_announcement_finished(
|
||||
self, finished: VoiceAssistantAnnounceFinished
|
||||
) -> None:
|
||||
"""Mock voice assistant handle announcement finished."""
|
||||
assert self.voice_assistant_handle_announcement_finished_callback is not None
|
||||
await self.voice_assistant_handle_announcement_finished_callback(finished)
|
||||
|
||||
|
||||
async def _mock_generic_device_entry(
|
||||
hass: HomeAssistant,
|
||||
@@ -402,10 +427,17 @@ async def _mock_generic_device_entry(
|
||||
]
|
||||
| None
|
||||
) = None,
|
||||
handle_announcement_finished: (
|
||||
Callable[
|
||||
[VoiceAssistantAnnounceFinished],
|
||||
Coroutine[Any, Any, None],
|
||||
]
|
||||
| None
|
||||
) = None,
|
||||
) -> Callable[[], None]:
|
||||
"""Subscribe to voice assistant."""
|
||||
mock_device.set_subscribe_voice_assistant_callbacks(
|
||||
handle_start, handle_stop, handle_audio
|
||||
handle_start, handle_stop, handle_audio, handle_announcement_finished
|
||||
)
|
||||
|
||||
def unsub():
|
||||
|
||||
Reference in New Issue
Block a user