Sonos TTS Turns volume to 0 plays TTS message then returns volume level

I have been running one of my SONOS units as my audiosink for my TTS announcements. A few days ago I noticed that the announcements were not playing as they should. I looked in the log and saw the TTS announcements firing off, yet I could not hear them.

I then fired off some manual SAY commands through the CLI, and by the way the CLI updated it looked like they were playing as they should yet I could not hear anything. To continue my investigation, I changed my audiosink to another SONOS unit and the announcements played fine. I then switched back to my primary SONOS unit for announcements and I still could not hear them. To make sure there was nothing wrong with the SONOS unit I opened the SONOS software, selected my primary SONOS unit I used for announcements and played a music file…it played just fine…
I then went back to the CLI and issued a SAY command to that SONOS unit. In watching the SONOS application I could see that the mp3 of the TTS file loaded as it should then the VOLUME went to 0 the announcement played and then the volume returned to it’s normal level.

Further investigation in the logs confirms this…volume is at 63, gets turned to 0, announcement plays, volume is returned to 63!

I have no volume commands in my rules and certainly nothing in the CLI command that I enter. This was working fine…and other SONOS units play the command fine.

Any suggestions on how I should look for a solution?


That is easy.
Your Sonos devices use the "Volume"channel for the playing of music etc. In order to play a Say-command the “Notification Sound Volume”-channel needs to be set to something bigger then 0!
Look into PaperUI, you will find this additional channel under “Show more”.

I understand that but why would every other SONOS zone or unit play fine, yet the one I want it to play from is set at O??

Everything was playing fine and then all of sudden my announcements were gone. Could something else have set the announcement level?



I think! that can happen after a restart of OH or Sonos. I’m using a rule to set all my Sonos to the desired volume after OH restart, haven’t had any problems since then.

I looked into my rules and found:

val Number NotificationVolume = 20

rule "SagEtwas"

  Item SayCommand received update
  var string AudioSink
  switch AudioSink {
    case Lautsprecher.state.toString=="Küche" : AudioSink="sonos:PLAY1:RINCON_Bxx"
    case Lautsprecher.state.toString=="Wohnzimmer" : AudioSink="sonos:PLAY1:RINCON_Byy"
    case Lautsprecher.state.toString=="Gästezimmer" : AudioSink= "sonos:PLAY1:RINCON_Bzz"
  gPlayer_NotificationVolume.allMembers.filter(s | s.state!=NotificationVolume ).forEach [item | item.sendCommand(NotificationVolume)]
  logInfo("SayCommand","Es ist alles gesagt!")

rule "IntialNotificationVolumeSetting"
//notwendig, damit NotificationVolume von Anfang an den korrekten Wert hat!
  System started
   gPlayer_NotificationVolume.allMembers.forEach [item | item.sendCommand(NotificationVolume)]
   logInfo("IntialNotificationVolumeSetting","NotificationVolume set!") 

So, I do have a rule at system start that sets all Sonos devices to the desired Notification Sound Volume. But I do have something in my “Sag etwas” rule that makes sure the used Box has the correct volume as well.
All Sonos Players are in the Group “gPlayer”!