Hotfixes for Sonos 2.0

Hotfixes are minimal fixes to released versions to correct important, but very specific, problems discovered after release.

The hotfixes covered in this post are for version 2.0. Do not apply these files to any other version.

I generally recommend that you do not apply these hotfixes unless you are experiencing one of the problems listed below.


CURRENT HOTFIXES

  • 20314-01: Add received data to log message for one failure case where it had been missed; easier diag on TTS auths.
  • 20282-01: Workaround very long bearer tokens (longer than allowed command line length) for curl requests in Azure TTS.
  • 20273-01: Upgrade TTS module to 20273.
  • 20229-01: Some recent UK (and EU?) firmware apparently has a different XML response form for zone group topology.
  • 20149-02: UI not displaying all favorites, saved queues, etc. (always one off, last dropped).
  • 20149-01: Still playback of some streaming sources/radio stations not work (some do).
  • 20147-01: Playback of radio stations or other streaming service-based resources not working (from device control panel or as action).

INSTALLATION INSTRUCTIONS

To apply hotfixes to your current released version (do not apply to any other version/branch):

  1. Download the current hotfix package: Sonos-hotfix-20314.1625.zip (71.6 KB)
  2. Unzip the downloaded file;
  3. In the Vera UI, go to Apps > Develop apps > Luup files;
  4. Open the hotfix source folder that you just unzipped;
  5. Group-select the updated plugin files in the folder and drag them as a group to the “Upload” button in the UI;
  6. When the reload completes, hard-refresh your browser.
3 Likes

Hi Rigpapa,

Well, after months of having the Sonos plugin work flawlessly, it stopped a few weeks ago (dynamic announcements). I found some time to investigate this morning and found your hotfix (20282). Once I followed the instructions and loaded it up, I am now getting “Sonos: invalid installation” and of course, now all my Sonos devices are showing “Can’t Detect Device”. So I am dead in the water and not sure what to do at this point other than loading up a working backup. Any suggestions?

Were you running the released Sonos 2.0 or an earlier version? If not 2.0, these hotfixes would not apply. One of my pre-releases/betas?

There is likely more detail logged in your LuaUPnP log. Reload Luup, and after it settles, go look at the log file (search for “Sonos”) and look at the messages. I’d like to see what it thinks is going on. That specific message means the UPnP module is not the correct version, but it has not changed since 2.0 was released. You might check to see if you have both encrypted (lzo) and non-encrypted versions of any plugin files, and resolve that if you do. If you followed the procedure (using the Luup uploader), you should only have lzo files for the major plugin files (D_, L_, J_, I_).

Thanks! I was running v. 20081.1005 when I uploaded the hotfix with the identified files. In an attempt to get back to a running status, I reloaded the same files that I had from v. 20081 and it appears to be working again…minus the dynamic announcements. I do have to run some more tests over the weekend however to confirm but right now, I am not get that same error message. Will advise further.

OK. You need to update to the App Marketplace (released) version before installing the hotfixes.

Update complete and now showing:

Sonos Plugin version 2.0-hotfix20282.1145; JSUI 2.0-hotfix20282.1145

…but still no joy on the dynamic message even though the assigned scene appears to run fine when manually activated. All other static voice messages/scenes are fine. I did read that another individual was having the same problem but his Azure app had expired. I just checked my account and there are no issues. The keys provided are the same as what I had originally loaded. Will keep investigating.

Looks at your LuaUPnP for error messages. What firmware are you on?

Firmware: 1.7.4903
And yes, when I run the scene, it’s throwing a error:

10/10/20 16:04:17.711 luup_log:367: Sonos: Say action on device 370 text “Good Afternoon Jagger Family! . It is now 04:04. Here is your daily weather report. It is currently 16.1 degrees outside and Overcast. It is forecasted to be Partly cloudy throughout the day. with a high temperature of 20.5 and a low of 5.6. Tomorrow’s forecast is Clear throughout the day… Todays events are VISIT NANNY from 08:00 to 12:00 . . Have a wonderful day” <0x772eb320>
02 10/10/20 16:04:19.106 luup_log:367: Sonos: AzureTTSEngine:say() conversion request failed, 500 <0x772eb320>
02 10/10/20 16:04:19.107 luup_log:367: Sonos: (tts) engine Azure Speech Service error: request failed 500 <0x772eb320>
02 10/10/20 16:04:19.109 luup_log:367: Sonos: (tts) Engine “Azure Speech Service” produced no audio <0x772eb320>
04 10/10/20 16:04:19.111 <0x772eb320>

OK. Please turn on TTS debug and run another request, capture and post the log.

Turned on debug and ran dynamic scene:

10/10/20 16:32:24.806	luup_log:367: Sonos: AzureTTSEngine:say() conversion request failed, 500 <0x772eb320>

02 10/10/20 16:32:24.807 luup_log:367: Sonos: (tts) engine Azure Speech Service error: request failed 500 <0x772eb320>
02 10/10/20 16:32:24.808 luup_log:367: Sonos: (tts) Engine “Azure Speech Service” produced no audio <0x772eb320>
04 10/10/20 16:32:24.809 <0x772eb320>
50 10/10/20 16:32:26.101 luup_log:367: Sonos: [debug] sonosTick(“7”) <0x718c3520>
50 10/10/20 16:32:26.102 luup_log:367: Sonos: [debug] Task:runReadyTasks() ready “master” 1602361946(10/10/20.16:32:26) <0x718c3520>
50 10/10/20 16:32:26.102 luup_log:367: Sonos: [debug] Task:runReadyTasks() running “master” <0x718c3520>
50 10/10/20 16:32:26.103 luup_log:367: Sonos: [debug] runMasterTick({ name=“367”, args={ 1=367 }, when=0, owner=367, func=function: 0x2f67f38, id=“master” }) <0x718c3520>
50 10/10/20 16:32:26.131 luup_log:367: Sonos: [debug] runMasterTick() “/etc/cmh-ludl/” has 48556K free at 5%% <0x718c3520>
50 10/10/20 16:32:26.159 luup_log:367: Sonos: [debug] runMasterTick() /www/sonos has 9152K free at 16%% <0x718c3520>
50 10/10/20 16:32:26.160 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update373” 0 <0x718c3520>
50 10/10/20 16:32:26.160 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update372” 0 <0x718c3520>
50 10/10/20 16:32:26.160 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update369” 0 <0x718c3520>
50 10/10/20 16:32:26.161 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update384” 0 <0x718c3520>
50 10/10/20 16:32:26.161 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update370” 0 <0x718c3520>
50 10/10/20 16:32:26.162 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “__sched” 0 <0x718c3520>
50 10/10/20 16:32:26.162 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “master” 1602362846(10/10/20.16:47:26) <0x718c3520>
50 10/10/20 16:32:26.163 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update368” 0 <0x718c3520>
50 10/10/20 16:32:26.163 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “TTSCacheCleaner” 1602445403(10/11/20.15:43:23) <0x718c3520>
50 10/10/20 16:32:26.164 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “checkProxy” 1602362184(10/10/20.16:36:24) <0x718c3520>
50 10/10/20 16:32:26.164 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update385” 0 <0x718c3520>
50 10/10/20 16:32:26.165 luup_log:367: Sonos: [debug] Task:runReadyTasks() waiting “update371” 0 <0x718c3520>
50 10/10/20 16:32:26.165 luup_log:367: Sonos: [debug] Task:runReadyTasks() next in 238 <0x718c3520>

Sorry, I guess I wasn’t very specific. Need to turn on TTS debug. Plugin debug can stay off.

And I need to see everything from the Say action invocation to the last output of any errors.

just because it’s been a very long week from a work perspective and I am not sure if I thinking correctly (and you are being incredibly helpful), to be clear, as I don’t see TTS debug specifically, which one would you like me to check…or am I in the completely wrong screen (master device…settings)?

Plugin
UPnP
TTS Engines

Sorry, I’m multitasking today and wasn’t thinking through everything I needed to tell you. My bad for sure. The “TTS Engines” is the one you want. Just that one for this purpose will be fine; leave the others off.

In the log, look for the “Say” action being invoked. Make sure you find the last one, of course, as the logs may have several at this point. A good clue that you’re in the right spot will be a message shortly after saying “AzureTTSEngine:say()…” with some stuff after. I need that Say action and everything after.

OK. Could be a TLS error. Just for lulz, go into the Sonos master device, and change the TTS “Requestor” setting to Curl. Save changes, then reload Luup and try again.

No joy…she is still silent. :frowning:

OK, if it’s not working either way, I’m thinking Azure error, or there’s just a problem with the configuration you’ve provided that isn’t standing out. It’s working fine for me in the zone that I’m in (eastus). Lets let it go 24 hours and try again tomorrow. To go any deeper, I’ll need to make one-off versions of the TTS engine for you and we’ll need some bandwidth between us for the exchange of log files and scripts.

Sounds like a plan. Thanks for your help today.

A post was split to a new topic: Playback doesn’t resume after Alert

OK. So I’ve updated the hotfix ZIP file in the head post of this topic to include a TTS engine with a bit more debug. I’m starting to see more rumbles of this, and one user you may have seen posted a notice from Microsoft about them changing certificate authorities on their servers, and this may have something to do with it, but the nature of the beast is such that multiple issues can all cause similar symptoms, so each case needs to be examined individually.

For anyone having Azure issues, I’d like you to install the hotfix package in the head post here, and then please post the log from the invocation of a (failed) Say action to the final message. This version in particular will log messages of note in yellow in the log file, but all surrounding log entries are necessary for context, so please don’t over-redact.

Also, please do not post in this thread. Use this topic for further discussion of current Azure issues: Sonos TTS via Azure has stopped working - Sonos - Ezlo Community

Remember to hash out your API key if the log snippet you are posting contains it