TTS not working on Voice Assistant PE after sentence trigger

I have a very simple automation that doesn’t work on Voice Assistant PE and I don’t understand why. If I run this automation via the browser or run the TTS action directly it correctly speaks the text in the TTS action, however if I use the sentence trigger it either does nothing or just says “Done”. The trace shows it running and calling the TTS action and doesn’t list any errors that I can find

I want to use the TTS action instead of a conversation response so I can have it use a custom voice via ElevenLabs. Any ideas why this isn’t running when I use the sentence trigger and how to fix it?

alias: Test sentence
description: ""
triggers:
  - trigger: conversation
    command: What does the fox say
conditions: []
actions:
  - action: tts.speak
    metadata: {}
    data:
      cache: false
      media_player_entity_id: media_player.home_assistant_voice_091b0c_media_player
      message: Ring a ding ding
      options:
        voice: ttLooivY93OUNiBcvW5R
    target:
      entity_id:
        - tts.elevenlabs
mode: single

I’ve tried using the “tts.home_assistant_cloud” entity and see the same behavior, so it’s not isolated to ElevenLab’s implementation

I’ve also tried other triggers, like time pattern, and it correctly speaks the TTS text when using those, so this seems isolated to the combination of Sentence trigger and TTS action

Have you tried setting the message to “Hatee-hatee-hatee-ho!” …?

But seriously, you might want to try adding a short delay before the TTS action so you don’t get service collisions. You could also try squashing the “Done” by using set_conversation_response:

alias: Test sentence
description: ""
triggers:
  - trigger: conversation
    command: What does the fox say
conditions: []
actions:
  - set_conversation_response: ""
  - delay: 1
  - action: tts.speak
    metadata: {}
    data:
      cache: false
      media_player_entity_id: media_player.home_assistant_voice_091b0c_media_player
      message: Ring a ding ding
      options:
        voice: ttLooivY93OUNiBcvW5R
    target:
      entity_id:
        - tts.elevenlabs
mode: single
1 Like

Thanks, that was super helpful (and yeah, that’s a much better message)! The delay didn’t work, my real scripts already have one built in, but setting the conversation response to “” both suppressed the “Done” and allowed the TTS to run. I think your service collisions idea was spot on, and blanking the conversation prevents it

1 Like