After searching on this forum, the web and even asking chatgpt I still got no answer that allowed me to do the following.
I have 2 Voice PEs and 1 (of 3) Atom Echo’s up and running. I would like to catch an event as soon as a wake word has been detected and tell me which satellite has been woken up. E.g. I would like to be able to switch assist pipeline by voice.
Subscribing to following events in developer tools didn’t result in any events:
homeassistant_satellite_event
assist_pipeline_run
conversation.process
Hopefully someone can point me to the correct event. Thanks!
Yes, but to do that you have to explicitly listen to each and every satellite. I just want an event when any satellite has been woken up telling me which one it was that woke up.
What task do you need to accomplish?
Finding the last active device is accomplished by working with the domain. Changing the conversation agent for a device is solved by using the trigger data.
Well, that’s precisely what I want. But that automation needs a trigger right! I want one single trigger (wakeword spoken), with the device which was woken up with it as a value/parameter of the event.
That was just an example, changing the pipeline/conversation agent. I’m after the most simple and elegant solution to detect which satellite is being talked to.
Yes, I could do that. But it simply does not feel like a scalable approach, the more satellites I add the more of them I have to “monitor” individually to detect the state change to listening. It would have been much cleaner and more efficient when there was a single event that gave you the actual satellite as argument.
This will create a sensor ESPHome Assist in Progress and the state will have the Friendly Name of which Voice Satellite that is in use. If none are in use, the state is blank.