diff --git a/homeassistant/components/assist_pipeline/pipeline.py b/homeassistant/components/assist_pipeline/pipeline.py index 4a811b25f1f..891fc639fee 100644 --- a/homeassistant/components/assist_pipeline/pipeline.py +++ b/homeassistant/components/assist_pipeline/pipeline.py @@ -737,17 +737,30 @@ class PipelineInput: ) start_stage_index = PIPELINE_STAGE_ORDER.index(self.run.start_stage) + end_stage_index = PIPELINE_STAGE_ORDER.index(self.run.end_stage) prepare_tasks = [] - if start_stage_index <= PIPELINE_STAGE_ORDER.index(PipelineStage.STT): + if ( + start_stage_index + <= PIPELINE_STAGE_ORDER.index(PipelineStage.STT) + <= end_stage_index + ): # self.stt_metadata can't be None or we'd raise above prepare_tasks.append(self.run.prepare_speech_to_text(self.stt_metadata)) # type: ignore[arg-type] - if start_stage_index <= PIPELINE_STAGE_ORDER.index(PipelineStage.INTENT): + if ( + start_stage_index + <= PIPELINE_STAGE_ORDER.index(PipelineStage.INTENT) + <= end_stage_index + ): prepare_tasks.append(self.run.prepare_recognize_intent()) - if start_stage_index <= PIPELINE_STAGE_ORDER.index(PipelineStage.TTS): + if ( + start_stage_index + <= PIPELINE_STAGE_ORDER.index(PipelineStage.TTS) + <= end_stage_index + ): prepare_tasks.append(self.run.prepare_text_to_speech()) if prepare_tasks: