Rotating tts broadcast on button push?

I have a hue button, and currently I have it set to trigger an automation to broadcast a single tts message when released. This is working fine

On release the following happens

  • Mute all speakers
  • set volume .8
  • unmute all speakers
  • broadcast tts message

My question to the community is - is there a way to instead of just having one tts message, have a list of separate messages, and each time I release the button, it loops through all above actions and rotates through the next message in sequence? I’m assuming I’ll need to switch to one or more scripts and have the automation call it/them?

Press button once ==> announce message 1
Press button again ==> announce message 2
Press button 3rd time ==> announce message 3

And once all messages are exhausted loop through the messages again from the top?

All help will be appreciated.


You could do that with an input_select. Set all the options you like and every time you push the button you could call the message content with a template

  message: "{{states('input_select.your_input')}}"

and then select next option with input_select.select_next. It does rotate.

You could also set a random message if you wanted among a bunch of options.