Play feedback sound with minimal delay

  • 20 March 2023
  • 4 replies
  • 92 views

Badge +1

I have a few home automations that start to play music on my Sonos devices.

The problem is that between the start of the automation and Sonos starting to play to content (for sure when radio) there are a few seconds of delay.

Start automation → communication to Sonos to start playing Radio A → few seconds → Sonos starts playing

I would like, when the automation is triggered, give immediate feedback that the automation is triggered by for example sending a ping or a chime sound from the Sonos player. So the user knows that automation has successfully started. 

Start automation → communication to play (local) ping sound -> Sonos plays ping sound -> communication to Sonos to start playing Radio A → few seconds → Sonos starts playing

Is this somehow possible via the API? Are there a few local Sonos sounds that can be used for this? 


4 replies

Userlevel 7
Badge +20

The delay is because Sonos is buffering the audio to ensure a smooth play back across multiple devices.  The same would probably occur when sending a ping. 

A few questions:

Do you have any other device, like Alexa or Google Assistant?

What is the Home Automation product that you are using?

 

Badge +1

The delay is because Sonos is buffering the audio to ensure a smooth play back across multiple devices.  The same would probably occur when sending a ping. 

Yes I already thought so that was the cause. That is why it would be ideal if I could play an embedded sound that is on the Sonos hardware itself.

My main use case is with an IKEA Shortcut button

Shortcut button -> IKEA Dirigera (Zigbee) -> HomeKit -> Shortcut -> Ping + Play Radio A on Sonos B

 

Userlevel 7
Badge +20

I use Hubitat rather than HomeKit and appear to be able to bi-pass the buffer with the Hubitat built in Text-to-Speech function.

As far as I know there is no ‘built in’ ping sound but you may want to experiment with HomeKit more (Sorry, I know nothing about HomeKit)

The delay is because Sonos is buffering the audio to ensure a smooth play back across multiple devices.  The same would probably occur when sending a ping. 

Yes I already thought so that was the cause. That is why it would be ideal if I could play an embedded sound that is on the Sonos hardware itself.

My main use case is with an IKEA Shortcut button

Shortcut button -> IKEA Dirigera (Zigbee) -> HomeKit -> Shortcut -> Ping + Play Radio A on Sonos B

 

 

Not much to add as I have never looked into this level of automation. However, thought it might be useful to point out that the ping Sonos speakers currently play are only on speakers with built in mics, and triggered when the speaker hears the wake word.  I seriously doubt it would be available for use in in automations for that reason. Indeed, I don’t think the speakers without mics even have the capability of playing any sounds stored on the device at all.

That said, I don’t recall whether the Alexa announcement feature works on Sonos speakers without mics.  I wan’t to say it doesn’t but haven’t used it awhile.  If so, then perhaps something can be done via that Alexa feature.

 

It might be nice if Sonos came up with an API specifically for Sonos Voice Control (SVC) so that you could pass ‘verbal’  text commands to a SVC enabled speaker rather than spoken commands.  Yes, it wouldn’t be able to do anything the existing API does, but it would give you a response that the command is received and should be much more easier to use than the existing API?

 

Reply