Skip to content

Commit 3dba7e5

Browse files
authored
Send intent progress events to ESPHome (home-assistant#146966)
1 parent 8d8ff01 commit 3dba7e5

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

homeassistant/components/esphome/assist_satellite.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
VoiceAssistantEventType.VOICE_ASSISTANT_STT_START: PipelineEventType.STT_START,
6161
VoiceAssistantEventType.VOICE_ASSISTANT_STT_END: PipelineEventType.STT_END,
6262
VoiceAssistantEventType.VOICE_ASSISTANT_INTENT_START: PipelineEventType.INTENT_START,
63+
VoiceAssistantEventType.VOICE_ASSISTANT_INTENT_PROGRESS: PipelineEventType.INTENT_PROGRESS,
6364
VoiceAssistantEventType.VOICE_ASSISTANT_INTENT_END: PipelineEventType.INTENT_END,
6465
VoiceAssistantEventType.VOICE_ASSISTANT_TTS_START: PipelineEventType.TTS_START,
6566
VoiceAssistantEventType.VOICE_ASSISTANT_TTS_END: PipelineEventType.TTS_END,
@@ -282,6 +283,12 @@ def on_pipeline_event(self, event: PipelineEvent) -> None:
282283
elif event_type == VoiceAssistantEventType.VOICE_ASSISTANT_STT_END:
283284
assert event.data is not None
284285
data_to_send = {"text": event.data["stt_output"]["text"]}
286+
elif event_type == VoiceAssistantEventType.VOICE_ASSISTANT_INTENT_PROGRESS:
287+
data_to_send = {
288+
"tts_start_streaming": bool(
289+
event.data and event.data.get("tts_start_streaming")
290+
),
291+
}
285292
elif event_type == VoiceAssistantEventType.VOICE_ASSISTANT_INTENT_END:
286293
assert event.data is not None
287294
data_to_send = {

tests/components/esphome/test_assist_satellite.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,17 @@ async def async_pipeline_from_audio_stream(*args, device_id, **kwargs):
240240
)
241241
assert satellite.state == AssistSatelliteState.PROCESSING
242242

243+
event_callback(
244+
PipelineEvent(
245+
type=PipelineEventType.INTENT_PROGRESS,
246+
data={"tts_start_streaming": True},
247+
)
248+
)
249+
assert mock_client.send_voice_assistant_event.call_args_list[-1].args == (
250+
VoiceAssistantEventType.VOICE_ASSISTANT_INTENT_PROGRESS,
251+
{"tts_start_streaming": True},
252+
)
253+
243254
event_callback(
244255
PipelineEvent(
245256
type=PipelineEventType.INTENT_END,

0 commit comments

Comments
 (0)