Voice assistant events?

Hi everybody,

I am currently using the assist_in_progress status to toggle a light. There is a WLED underneath the microphone/speaker. This status will change when I say the trigger word, and the WLED will turn on; then, after the status switches back to off, the WLED will first change color, then turn off.

This works. However, since text recognition takes a while (~8 seconds?), I would like to add another state, which I cannot find via this sensor.

So the states would be

  • off (assist not listening / processing) :white_check_mark:
  • triggered / listening :white_check_mark:
  • processing (listening finished) :x:
  • done (processing finished) :white_check_mark: (same as off, but can be determined when switching from on to off)

This :x: state cannot be determined, as far as I can tell. I tried listening to the * events, but wasn’t able to find anything related. There are multiple events per second, so it is kinda hard to find what one is looking for.

For example, I clicked “listen to events”, said the trigger word, said a sentence, waited for the voice assistant response, and stopped listening. There were like 600+ events within this time frame.

I searched for “assist” and “voice”, but didn’t find anything. Which is weird, because since there is the assist_in_progress state, there must be at least an event for that, right? But I didn’t see it.

My goal is (minimum)

  • say trigger word – light blue, effect breathe
  • assistant is processing speech input – light green, effect lighthouse
  • assist is done – light purple, effect sweep, then light off

ideal version

first two as above, but then

  • assist is done – successful – light purple, effect sweep, 3 seconds, then light off
  • assist is done – failure – light orange, effect blink, 3 seconds, then light off

At the moment, assistant works 6 or 7 out of 10 times. I often use it when exercising (stationary bicycle) in front of my PC. The speaker isn’t that loud (Anker PowerConf S330), so visual feedback is more important to me than audible feedback.

Now, while I am working out, I usually just control media things (play / pause / change source), so I have this feedback anyway; if it works, it works, if not, I clearly see that it doesn’t. But that’s not the point. I am sure there are other use cases for this, perhaps when there is no audible feedback at all, or when audio feedback simply doesn’t suffice (m5 atom echo).

I am using wyoming-satellite on a raspberry pi. So I thought that perhaps I might be able to address this the other way around: use the parameters (--mic-command, --snd-command) for this; so that the pi would send a webhook (or similar) to Home Assistant to report the current status.

But same thing here: if one were to use an m5 atom echo, this wouldn’t be possible, so I would like to find a solution that would work either way and can be adapted to whatever voice assistant device one might be using.

Thank you in advance for your help :slight_smile: