Announcement

Collapse
No announcement yet.

Sonos Developer Program

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sonos Developer Program

    I'm surprised the Sonos Developer Program news hasn't hit the forums yet. They released the information and opened it for signups to get API keys and developers guides.

    I may have to beg for a Sonos player now.

  • #2
    Someone posted about it last week. I really like Sonos, you may as well. It is a very good audio ecosystem. The phone applications are very good and the music synchronization across many clients is flawless. I use mostly CONNECT:AMPS and a handful of Play 1 speakers. A total of 12 devices. The Play 1s are actually quite good for their size, the Play 5s are really good. You are dealing with streaming audio, so the quality depends on the source. I had a pair of Play 5 speakers that sounded amazing on an uncompressed stream like Tidal or from my own flac rips of CDs. The CONNECT:AMP provides a pair of 50 watt digital amplifiers and can connect to any speakers. For our application, the amplifiers made more sense than individual speaker clients.

    The Sonos system is used for all of our HS announcements, through Dirk's plug-in.

    We have very nice Yamaha/JBL 5-channel systems in the living room and bedroom and a more potent 7-channel system in the basement theater. In all three of those rooms we also have a CONNECT:AMP. I have Arduino controlled relays that handle the switching. If we are watching TV or movies and an announcement comes on, it is switched to the surround speakers. If we are not watching TV, the sound is out of the front speakers and sub woofer in each room. We rarely use the Yamahas for music any longer. My wife loves the Sonos app where she can play music in any or all rooms.
    Randy Prade
    Aurora, CO
    Prades.net

    PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

    Comment


    • #3
      It wasn't open and accessible last week. I got an email today with info about getting the API credentials so I went to the site and it was updated with a lot of new info.

      Comment


      • #4
        It may not have been open, but HaPe made a post on August 30 with a link to an article in The Verge about the new developer program.

        https://www.theverge.com/circuitbrea...per-program-ai
        Randy Prade
        Aurora, CO
        Prades.net

        PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

        Comment


        • #5
          Originally posted by rprade View Post
          ...
          The Sonos system is used for all of our HS announcements, through Dirk's plug-in.....
          How is this done? Thanks, Elliott

          Comment


          • #6
            The Sonos plug-in completely controls the clients just as the phone app does. In addition, it lets you build “linkgroups” of clients for TTS announcements. You can build a linkgroup out of any number of clients and you can build multiple linkgroups to determine where the announcement goes. When you send an announcement to the linkgroup the plug-in automatically:
            1. Stores the current operating state of all clients
            2. Stops playback of linkgroup clients
            3. Ungroups any current grouped clients
            4. Sends the announcement
            5. Regroups clients the way they were before the announcement
            6. Restores playback of all affected clients to where they were before the announcement
            There is a unique naming convention for Sonos linkgroups and an event speak action or scripting call can address them specifically. The plug-ins proxy can be configured to intercept TTS calls and/or forward them to other proxies.

            It works quite well. The only downside and it is a small one is there could be a bit of time needed for ungrouping, regrouping and sending the announcement. Our system has 12 clients. If music is playing on 6 of them and an announcement is queued to 8 of them, it can be 2-5 seconds before the announcement is heard and another couple of seconds to return them to music. The process is complicated but very reliable and you don’t need to even be aware it is happening because the plug-in deals with it automatically.
            Last edited by rprade; September 7th, 2018, 10:19 AM.
            Randy Prade
            Aurora, CO
            Prades.net

            PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

            Comment


            • #7
              Originally posted by rprade View Post
              The Sonos plug-in completely controls the clients just as the phone app does. ...
              Thank you!

              Comment


              • #8
                Originally posted by Richel View Post

                Thank you!
                You're welcome. I will add that I have an announcement script that builds linkgroups and adjusts volume for each announcement on the fly. It really works well.

                Randy Prade
                Aurora, CO
                Prades.net

                PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

                Comment


                • #9
                  Originally posted by rprade View Post
                  You're welcome. I will add that I have an announcement script that builds linkgroups and adjusts volume for each announcement on the fly. It really works well.
                  So, I figured out the "linkgroups" part, but I need further instructions on how to send an announcement to the linked speakers. I tried setting up an event (e.g., when the phone rings via HSPhone), but the "Sonos Actions" available to me do not show to speak something. Am I missing something else?

                  Thanks. Elliott

                  Comment


                  • #10
                    Originally posted by Richel View Post

                    So, I figured out the "linkgroups" part, but I need further instructions on how to send an announcement to the linked speakers. I tried setting up an event (e.g., when the phone rings via HSPhone), but the "Sonos Actions" available to me do not show to speak something. Am I missing something else?

                    Thanks. Elliott
                    It is in the help under Speaker Proxy functions. The help file goes into detail on how to send TTS and or audio files.

                    It is not a Sonos plug-in specific action. You use standard Speak actions in an event or hs.speak in a script. Then you direct the speak actions to a linkgroup. If you have an “Announce” linkgroup, you would use $SONOS$ANNOUNCE$ as the client, if the linkgroup is “All” you would use $SONOS$ALL$, etc. The Sonos proxy can be enabled/disabled and can be set to forward all, forward none or forward non matching clients. You do not play audio files, you combine their path with TTS in a single action using the | delimiter.
                    Randy Prade
                    Aurora, CO
                    Prades.net

                    PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

                    Comment


                    • #11
                      Originally posted by rprade View Post
                      It is in the help under Speaker Proxy functions. The help file goes into detail on how to send TTS and or audio files.

                      It is not a Sonos plug-in specific action. You use standard Speak actions in an event or hs.speak in a script. Then you direct the speak actions to a linkgroup. If you have an “Announce” linkgroup, you would use $SONOS$ANNOUNCE$ as the client, if the linkgroup is “All” you would use $SONOS$ALL$, etc. The Sonos proxy can be enabled/disabled and can be set to forward all, forward none or forward non matching clients. You do not play audio files, you combine their path with TTS in a single action using the | delimiter.
                      Got it! Thanks, again. Elliott

                      Comment


                      • #12
                        Originally posted by rprade View Post
                        It is in the help under Speaker Proxy functions. The help file goes into detail on how to send TTS and or audio files.

                        It is not a Sonos plug-in specific action. You use standard Speak actions in an event or hs.speak in a script. Then you direct the speak actions to a linkgroup. If you have an “Announce” linkgroup, you would use $SONOS$ANNOUNCE$ as the client, if the linkgroup is “All” you would use $SONOS$ALL$, etc. The Sonos proxy can be enabled/disabled and can be set to forward all, forward none or forward non matching clients. You do not play audio files, you combine their path with TTS in a single action using the | delimiter.
                        So, I'm plodding may way through to get my Sonos speakers to speak something. When I run the test event (as in the Help file), I get the following:
                        Sep-16 15:52:13 Sonos Error ERROR in PlayURI for zoneplayer = Living Room with UPNP Error = Read only tag / Transport is locked / Access denied. URI=x-rincon-queue:RINCON_7828CAACD9F801400#0 and isObjectID = False, MetaData=, Error =MyUPnPService.InvokeAction for ServiceID = http://192.168.0.38:1400/xml/AVTransport1.xml while sending Action = SetAVTransportURI for URI = http://192.168.0.38:1400/MediaRender...nsport/Control and Request = 0 x-rincon-queue:RINCON_7828CAACD9F801400#0 UPNP Error = faultcode = s:Client, faultstring = UPnPError, detail = 1023 with error = The remote server returned an error: (500) Internal Server Error.
                        Any thoughts?
                        Thanks, Elliott

                        Comment


                        • #13
                          Originally posted by Richel View Post

                          So, I'm plodding may way through to get my Sonos speakers to speak something. When I run the test event (as in the Help file), I get the following:
                          Sep-16 15:52:13 Sonos Error ERROR in PlayURI for zoneplayer = Living Room with UPNP Error = Read only tag / Transport is locked / Access denied. URI=x-rincon-queue:RINCON_7828CAACD9F801400#0 and isObjectID = False, MetaData=, Error =MyUPnPService.InvokeAction for ServiceID = http://192.168.0.38:1400/xml/AVTransport1.xml while sending Action = SetAVTransportURI for URI = http://192.168.0.38:1400/MediaRender...nsport/Control and Request = 0 x-rincon-queue:RINCON_7828CAACD9F801400#0 UPNP Error = faultcode = s:Client, faultstring = UPnPError, detail = 1023 with error = The remote server returned an error: (500) Internal Server Error.
                          Any thoughts?
                          Thanks, Elliott
                          Can you post your linkgroup table (screenshot), player table, event ...
                          Which kind of player did you pick as a source player in your linkgroup? Is this a player perhaps paired with another player?
                          Should have asked, is the TTS working? Maybe you should turn the debug flag on and take full trace and post. If this is an error after a successful announcement, it might just be benign

                          Comment


                          • #14
                            Thanks. So, it was my selection of the Source Speaker, which was paired to another speaker. When I selected another Source Speaker, which was not paired, it worked as it should. Elliott

                            Comment


                            • #15
                              Originally posted by rprade View Post
                              The Sonos plug-in completely controls the clients just as the phone app does. ....
                              So, yet another question: I got the Sonos system to announce a text message. However, I cannot get HSPhone to announce through Sonos. How is this done? Thanks, again. Elliott

                              Comment

                              Working...
                              X