Issue: executing two assist_satellite.announce in a script fails

Hi,

I have an odd issue with the Voice PE executing two assist_satellite.announce.

I created a Voice intent which calls a script with two assist_satellite.announce in it.
When I trigger the voice intent, it only executes the first assist_satellite.announce.

However, if I execute the script from developer → action, it announces both messages in the assist_satellite.announce. I have tried this on multiple Voice PEs, same issue on all. In the script trace, it executes the first announce, but never makes it to the delay. There’s nothing logs in the logs.

 sequence:
   - action: assist_satellite.announce
     metadata: {}
     data:
       message: fsdfsfsfs
       preannounce: false
     target:
       entity_id: assist_satellite.den_ha_voice_pe_assist_satellite
   - delay:
       hours: 0
       minutes: 0
       seconds: 1
       milliseconds: 0
   - action: assist_satellite.announce
     metadata: {}
     data:
       message: Help Help help
       preannounce: false
     target:
       entity_id:
         - assist_satellite.garage_voice_pe_assist_satellite
 alias: test two announces
 description: ""
 mode: single

Wait for the satellite to be idle before starting the second action

Hi,

Thxs for the response. I don’t think that would matter in this case. However, I went ahead and put in a wait for the voice PE to start of idle. It didn’t make it to the wait.

sequence:
  - action: assist_satellite.announce
    metadata: {}
    data:
      message: ffffffffff
      preannounce: false
    target:
      entity_id: assist_satellite.den_ha_voice_pe_assist_satellite
    enabled: true
  - wait_for_trigger:
      - trigger: state
        entity_id:
          - assist_satellite.den_ha_voice_pe_assist_satellite
        to: idle
        enabled: true
    enabled: true
  - action: assist_satellite.announce
    metadata: {}
    data:
      message: Help Help help
      preannounce: false
    enabled: true
    target:
      entity_id: assist_satellite.den_ha_voice_pe_assist_satellite
alias: test two announces
description: ""
mode: single

I think I going to write a bug report for this.

If I disable everything in the script, then the speech in the intent is executed.
Otherwise the speech in the intent is never executed. The intent is below.

Also, if I execute the script in an automation, then it works. I hear both messages.

Below works:

alias: testtwoauto
description: ""
triggers: []
conditions: []
actions:
  - action: script.test_two_announces
    metadata: {}
    data: {}
mode: single

This does not work from the intent.

getKevinsLastTextMsgs:
  action:
    - service: script.test_two_announces
  speech:
    text: in the intent

The problem is that it is impossible to use assist_satellite.announce and set_conversation_response (or ‘speech’ in yaml) on one device together. It is also impossible to use set_conversation_response twice.
You will have to review the logic of your automation (custom sentences). If you are creating voice automation in the GUI, you can skip setting ‘set_conversation_response’, then you will be able to use any number of announce actions.
You can still get the ID of the active satellite (the naming must match) - 'media_player.'~device_attr(trigger.device_id, 'name')| lower, and use it as the target for the tts action.

Thxs for the response.

So, I had speech in the YAML just to see what happens. It never made to it.

Since the automation, which calls the script, which has two assist_satellite.announce does work. I went ahead and created helpers for the data needed by the script, saved off the data in the intent script, and created an input_boolean, I used that boolean to trigger the automation, which calls the script. The script gets the info it needs from the helper data. All works well now.

I think the issue reported above is still a bug. I should be able to execute the script directly from the intent script.