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
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
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.
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.
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.