I have a very short automation that used to work perfectly, but now doesn’t do anything. It checks to see if the garage light was on for more than 20 minutes, then runs:
action: assist_satellite.start_conversation
metadata: {}
data:
start_message: The garage light is still on. Turn it off?
preannounce: true
target:
device_id: 162fe905d17260e04fea8936e6c4a931
This used to work totally by itself without any further logic or commands, but now doesn’t. It’s like it’s no longer getting the context of the original question and turning it into a command.
Not sure when it broke, since it only fires when needed. Do I have to turn all of these into more complicated logic now?
Start conversation is doing just that starting a conversation with the text you specified. If you want to guarantee a command you may want to try ask_question instead because it expects a response and action and I believe a supplemental prompt (as opposed to the message you were hijacking as a prompt) they even released a blueprint for it… Link to Blueprints: start import – My Home Assistant
The one you’re using is for announcement and the llm doesn’t really know what to expect.
I was doing something similar and changed it to a question when they released the feature.
I suspect they aren’t testing g the use case you’re doing with announce but are with ask_question which is more appropriate in the case anyway. You can set a default action for what it does if no one is there. And prevent the llm from having a conversation with itself with repeat questions.
The old method worked perfectly (for me), interpreting my response properly even if I answered “yep, do that” or “of course”, or “do it”.
assist_satellite.ask_question doesn’t seem to use an LLM to interpret my answer so now I have to guess how my family might possibly answer and it doesn’t actually do anything with my response but save it and make me use it in a later step…
So it’s really two steps backwards from what worked perfectly (for me).
Oh well, I was hoping I was just missing something. But it looks like they simply removed the functionality I was relying on. Not the first time, and won’t be the last.
The blueprint looks interesting, thanks for that! Maybe I’ll just use that instead since it can call actions directly. I didn’t know about it.
But it doesn’t have a trigger condition… how do you call a blueprint from a trigger?
Take control of it and call it from any automation trigger you want.
(also that pattern fits the rest of what I’m doing with my Friday assistant. I’m very quickly getting into a pattern of things to do - scripts - and what causes them - automations that are basically just trigger collections to fire scripts)
If you do that you could also end a conversation by using the announce action but now it’s ‘done the thing’
This action works as before. There are probably some hidden changes in the LLM you are working with.
To add stability, specify the extra_system_prompt parameter with additional instructions.
However, as you have already been advised, assist_satellite.ask_question is better suited for this task.
It simply didn’t hear my response because mute functionality changed! I used to software-mute (not the switch) my Voice PE because wake-word misfires multiple times per day…
What was nice was that in the earlier versions, when you ran Assist satellite 'Start Conversation', it would actually unmute the microphone for the response automatically to listen for the answer.
It no longer does that., so I guess I’ll have to do it in the automation.
Mystery solved!
I wonder if there’s another way to disable wake-word on a Voice PE completely? Or to improve the false-positives to where I’m allowed to use it?