Sentence Conversation Trigger not matching

Problem: Some automations with sentence triggers work and some don’t, in spite of the STT being correct. Copied detected sentence directly from logs to the assist test within developer tools and it matches correctly. I can use the assist chat window with the exact phrase that the STT detected, and it works correctly. It’s ONLY when the STT is passed that it does not match or work.

I have plenty of other sentence conversation triggered automations that work fine.

Context: Using fully local voice pipeline with locally hosted AI. The automations are for announcing back to the voice satellite the location of the dogs. I have tags on their collars and beacon esp beacon towers providing the location back to home assistant.

  • LLM: Qwen3-8B running on Ollama, GPU accelerated
  • STT: faster-whisper, GPU accelerated
  • TTS: Piper, GPU accelerated

Sentence Trigger Configuration - image01

Detected sentence from Faster-Whisper - image02
Whisper Sentence

Debug Assistant info using voice - image03

This is so deja vu, but I cannot remember the specifics where I also had a similar problem.

My hunch: the ? at the end of the sentence is causing problems

So I don’t think that’s the case. After looking at the some of the raw logs of ones that WORK just fine, it shows a space in front of the sentence and punctuation?

stage: done
run:
  pipeline: 01k2x77z8swds9y8mvf80ps2jy
  language: en
  conversation_id: 01K8Y3TWN0BKDT74CNRGV0E4E9
  satellite_id: assist_satellite.nabupi1
  tts_output:
    token: Wllv2aJRxlNi5hLHDj9waw.wav
    url: /api/tts_proxy/Wllv2aJRxlNi5hLHDj9waw.wav
    mime_type: audio/x-wav
    stream_response: true
events:
  - type: run-start
    data:
      pipeline: 01k2x77z8swds9y8mvf80ps2jy
      language: en
      conversation_id: 01K8Y3TWN0BKDT74CNRGV0E4E9
      satellite_id: assist_satellite.nabupi1
      tts_output:
        token: Wllv2aJRxlNi5hLHDj9waw.wav
        url: /api/tts_proxy/Wllv2aJRxlNi5hLHDj9waw.wav
        mime_type: audio/x-wav
        stream_response: true
    timestamp: "2025-10-31T21:52:21.611404+00:00"
  - type: stt-start
    data:
      engine: stt.faster_whisper
      metadata:
        language: en
        format: wav
        codec: pcm
        bit_rate: 16
        sample_rate: 16000
        channel: 1
    timestamp: "2025-10-31T21:52:21.611498+00:00"
  - type: stt-vad-start
    data:
      timestamp: 1050
    timestamp: "2025-10-31T21:52:23.607737+00:00"
  - type: stt-vad-end
    data:
      timestamp: 2620
    timestamp: "2025-10-31T21:52:25.121310+00:00"
  - type: stt-end
    data:
      stt_output:
        text: " Where are the dogs?"
    timestamp: "2025-10-31T21:52:25.280693+00:00"
  - type: intent-start
    data:
      engine: conversation.ollama_conversation
      language: en
      intent_input: " Where are the dogs?"
      conversation_id: 01K8Y3TWN0BKDT74CNRGV0E4E9
      device_id: 95ee44ff3db0b85d3e6c418d62edc4e2
      satellite_id: assist_satellite.nabupi1
      prefer_local_intents: false
    timestamp: "2025-10-31T21:52:25.281282+00:00"
  - type: run-end
    data: null
    timestamp: "2025-10-31T21:52:25.299863+00:00"
stt:
  engine: stt.faster_whisper
  metadata:
    language: en
    format: wav
    codec: pcm
    bit_rate: 16
    sample_rate: 16000
    channel: 1
  done: true
  stt_output:
    text: " Where are the dogs?"
intent:
  engine: conversation.ollama_conversation
  language: en
  intent_input: " Where are the dogs?"
  conversation_id: 01K8Y3TWN0BKDT74CNRGV0E4E9
  device_id: 95ee44ff3db0b85d3e6c418d62edc4e2
  satellite_id: assist_satellite.nabupi1
  prefer_local_intents: false
  done: false

FYI I also switched to the home assistant whisper addon container and it’s behavior is exactly the same.

So I read that if you don’t have “Prefer handling commands locally” enabled within the Conversation Agent configuration it will skip sentence trigger matching entirely. After enabling this, it appears to match more readily, however the kicker is, sometimes, even without this enabled, it WOULD trigger the sentence based automations. I’m at a loss as to what to expect when.