New Sonos integration


#1

Smartthings today announced new integration for Sonos. This appears to fundamentally change the way the device works, which results in features like “Speak Text” going away in WebCore. A SmartThings employee posted that the device does support audio notifications now, so something appears to be amiss with the new APIs.

https://community.smartthings.com/t/update-required-new-sonos-integration/173197/7


#2

I don’t believe webCoRE or ActionTiles has access to the new SmartThings API at this point only to the old API used by the Classic app. So same as there is no access to STHM in the new app using the new API, you will not have access to devices that are using the new API. :frowning:


#3

The Sonos appear to continue to work in the Classic App after changing to the new handler, though?


#4

Yes but through the new API. There is a thread on ST forum about new API devices and apps work on the Classic app.

Perhaps I am wrong so hopefully one of the minions can provide you with the answer.


#5

Confirmed, TTS is gone. I came on the board to advise, but see I’m slow to the game.

I only had one piston using this function. All other announcements I have are handled through the jishi sonos http api via a web request. I also use it and webcore to build metrics on what music is played (for no other reason than, I can).

The only reason I used it over Webcore TTS was more variety with AWS Polly (which requires a AWS account).


#6

I’d be very interested in learning more about what you’re doing. Would love to create a personal last.fm type database.


#7

Sure. It’s not very fancy. Quick and Dirty is a better description.

I started with a custom device handler and influxDB. The device handler wasn’t handling the sonos JSON it was getting very well so I decided to call the Sonos API I mentioned earlier, parsing that and placing it in Influx.

Because Influx is a time series DB and not relational, I wasn’t getting some of the information I wanted so I also direct the INSERT statements to a MySQL instance I have on my Mac. I just use node and javascript to create a listener and then use a WebCore Web request to post the data to it.


#8

Just discovered that the old trigger (TrackDescription Changes) is no longer working with the new Device Handler.


#9

I was able to get it working again by “tickling” (refresh) each device in through the SmartThings app on my phone.

TrackDescription Changes trigger works again.


#10

Following along. Hopefully Webcore gets permissions to the new api soon.


#11

Hi everyone, is this the right thread to get updates on webcore and the new smartthings APIs for Sonos?

In the smartthings forum, it was said that permissions were given to the new apis but I am unsure on how this would get updated on the webcore side.


#12

There is no change to be made on the webCoRE side as webCoRE only works with the data and capabilities provided by each device’s Device Type Handler. You can manually update your Sonos speakers to the new integration by going into the IDE and changing the DTH for each of your Sonos devices to “LAN Sonos Player WebSockets.” SmartThings reportedly will force this change themselves on or about October 17.

When you make this change, some if not all of your existing pistons that include any Sonos devices will no longer work properly. You’ll have to revise each piston individually to utilize the new device handler’s properties. This is true even if you have imported the example pistons available on this site, as those will have to be updated as well.


#13

Unfortunately that doesn’t work. Webcore isn’t seeing the new device handlers capabilities, specifically TTS. From what I understand TTS was moved to a different section and has a different api which I though I read that webcore doesn’t have access to.

I’m probably completely wrong. When I edit my existing pistons that include Sonos TTS, there is no longer any option for speak text and restore.
On the smartthings app the option for TTS is still there so I suspect some code needs updating somewhere.


#14

Of course, you’re correct that the Device Handler doesn’t expose the TTS capability to webCoRE directly. I wasn’t considering this particular capability as I use a node.js server for my TTS (and much more) for Sonos as it has always given me greater flexibility and control.

Perhaps @ipaterson can jump in with some direction as to how the new capabilities can be integrated into webCoRE.


#15

I have a raspberry pi laying around with node.js running. Maybe I can explore options along that front.


#16

#17

No idea but pull requests are welcome.


#18

Thanks bud. I’ll look into it.


#19

Above my pay grade. Hopefully someone with the proper skills can jump in.


#20

If it’s a case on ‘simply’ revising has anyone crafted a action before to now reference so people know what to change things to?