Jump to content

Recommended Posts

Hello,

 

I would like to hear from those who own a Sonos player if this devices volume output can be manipulated via the ISY Series Controllers Network Resources.

 

If so can you offer the required Network Resource (NR) to accomplish the same.

 

I am in the midst of selecting a whole house PA system for my voice announcement system which you can see the details here: http://forum.universal-devices.com/topic/21106-brultech-green-eye-monitor-has-a-sexy-voice/

 

I was really hoping to find a hardwired speaker solution that offered tight integration with the ISY Series Controller and that which didn't exceed my modest budget. The project goals are to deploy several networked speakers such as the Sonos variety through out the home and property. The aim is to allow me to preset lower volume output for the sleeping hours for such things as when the refrigerator / freezer go into defrost mode.

 

Currently my test bench has a very modest USB speaker directly attached to the RPi which handles the reactive Julie U.S. voice announcements. Unfortunately, its cranked wide open to allow me and the family to hear the voice messages which isn't ideal during sleeping hours.

 

The girl friend was startled a few times when Julie U.S. started speaking in the wee hours. The ensuring result is she went into security mode and placed the entire home in lock down. Better safe than sorry for sure but it high lighted the fact people are not expecting to hear strange voices at 3:25 AM in the morning!

 

Any insight as to the Sonos volume question is greatly appreciated. Also, if others know of a comparable (cheaper) network speaker system that has been field proven to be integrated with the ISY Series Controller please do let me know. I have no preference over one or the other and simply went this route because it was common, well supported, and had mass adoption from the HA enthusiasts.

 

I must stress the network speaker must fall with in the Sonos price point or below along with having the ability to be connected in unison to send the same broadcast message.  

Link to comment

Yes, you can.  Here's a snip of the NR for volume up:

 

Port:1400

Timeout:500

Mode: Raw text

POST /MediaRenderer/RenderingControl/Control HTTP/1.1
Host: 192.168.0.29:1400
Connection: Close
Content-Type: text/xml; charset="utf-8"
Content-Length: 333
SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetRelativeVolume"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:SetRelativeVolume xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1">
<InstanceID>0</InstanceID>
<Channel>Master</Channel>
<Adjustment>15</Adjustment>
</u:SetRelativeVolume>
</s:Body>
</s:Envelope>

Just set the <Adjustment> value to a negative # for volume down: <Adjustment>-15</Adjustment>

post-7363-0-49703900-1486755517_thumb.png

Edited by Bumbershoot
Link to comment

Bumbershoot,

 

Excellent, please correct me if I am wrong since all of the speakers have an assigned IP address. I can assign what ever speaker(s) to play what ever WAV file along with setting its independent volume, correct?

 

The initial plan(s) are to define quiet hours for less important announcements with a lower volume so its broadcast-ed to all zones speakers. Any important voice announcements would be set to the volume of choice say fire, co, weather, etc.

Link to comment

Bumbershoot,

 

Excellent, please correct me if I am wrong since all of the speakers have an assigned IP address. I can assign what ever speaker(s) to play what ever WAV file along with setting its independent volume, correct?

 

The initial plan(s) are to define quiet hours for less important announcements with a lower volume so its broadcast-ed to all zones speakers. Any important voice announcements would be set to the volume of choice say fire, co, weather, etc.

 

Sonos can't store audio files but you can tell it to play a file that is located somewhere on your network.  I do that for my doorbell.  I wish it were more straight forward.  I have installed the polyglot for sonos but haven't tried delving into how I can get it to play an audio file.

Link to comment

Sonos can't store audio files but you can tell it to play a file that is located somewhere on your network.  I do that for my doorbell.  I wish it were more straight forward.  I have installed the polyglot for sonos but haven't tried delving into how I can get it to play an audio file.

 

Understood, I wasn't trying to store the audio files as so much as assigning zoned speakers to play specific files when required. The bulk of this conditional logic would of course be embedded into the ISY Series Controller and relies on me crafting the appropriate programs to meet this need.

 

I just wanted to make sure each speaker could be addressed individually or as a group when and where required. 

 

This will be the next step in my home automation system which seems to have taken years to accomplish. I rather ask all the relevant questions to those who know so I can do this right the first go round. Rather not waste time, money, and resources in something that won't meet my current and future needs.

 

As an aside there have been a few network PA speakers in the security field from Axis which initially caught my eye. If only they made this thing smaller and visually more pleasing it would have been my go to product. They also have a larger ceiling speaker that is POE and network enabled out of the box - but again it was too huge for my current project.

 

I may consider this option later down the line but it also requires a 24/7/365 PC to be running which totally counters my energy conservation goals.

Link to comment

Bumbershoot,

 

Excellent, please correct me if I am wrong since all of the speakers have an assigned IP address. I can assign what ever speaker(s) to play what ever WAV file along with setting its independent volume, correct?

 

The initial plan(s) are to define quiet hours for less important announcements with a lower volume so its broadcast-ed to all zones speakers. Any important voice announcements would be set to the volume of choice say fire, co, weather, etc.

You can have any speaker play with an independently set volume.  I haven't tried to play a specific file, but the following NR will allow you to play a Sonos Playlist:

POST /MediaRenderer/AVTransport/Control HTTP/1.1
Host: 192.168.0.29:1400
Connection: Close
Content-Type: text/xml; charset="utf-8"
Content-Length: 801
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#StartAutoplay"

<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <u:StartAutoplay xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
         <InstanceID>0</InstanceID>
         <ProgramURI>file:///jffs/settings/savedqueues.rsq#2</ProgramURI>
         <ProgramMetaData><DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upup="urn:schemas-upnp.org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><itemid="SD:2" parentID="SD"</ProgramMetaData>
         <Volume>8</Volume>
         <IncludeLinkedZones>0</IncludeLinkedZones>
         <ResetVolumeAfter>8</ResetVolumeAfter>
      </u:StartAutoplay>
   </s:Body>
</s:Envelope>

The magic is in this line:

 

<ProgramURI>file:///jffs/settings/savedqueues.rsq#2</ProgramURI>

 

If you edit "savedqueues.req#2" to request another queue: "savedqueues.req#3" could allow you, conceptually, to create playlists with one file in them, and create a distinct NR for each one.  I believe that Sonos sequentially creates a new savedqueues.req# for each playlist, though I haven't definitively discovered the relationship between these numbers and each playlist.  I don't believe that deleted playlist numbers are reused by Sonos, to if you've fooled with your playlists extensively, this may be become difficult.  There must be a better way, though I don't know what it is at the moment.

Link to comment

Bumbershoot,

 

Really appreciate the over view and detailed NR's for future use. I am quite sure this same information will help those who already have a Sonos player in place. Right now I am still on the fence about laying out all this expanse for multi-room speaker (PA) system. 

 

Just trying to justify the real world cost(s) of moving forward with this or any speaker solution. There are probably more pros' vs con's spinning around my little head right now and the only single one is just plain cost. I was really hoping after five years the market would have released something like the Sono's.

 

The major stumbling blocks I seem to run into is either no open network API, no zoning, grouping, to what I consider basic no need for a 24-7-365 PC!

 

I am sure once all of the relevant competitor products that I am reviewing are done. It will more than likely be the Sono's players given it meets all of the requirements and ease of access etc.

 

Thank You Sir!

Link to comment

Teken,

 

As already stated, you can increase/decrease volume or set a specific level of 0-100. You can also group or ungroup speakers. I have no experience with playing specific sound file from the network. If you use the speakers for other things such as music, they will interrupt play for your announcements and not resume. This was a deal breaker for me.

 

Another cheaper and more flexible option would be a RasPi with OpenElec, WiFi adapter and a cheap powered speaker. This is what I use for voice announcements and it works very well. I hid the whole setup in a decorative box in the corner of the living room. Should be less than $100 total. The only drawback would be no grouping.

 

Edit: On further thought, I think the ideal solution would be in ceiling speakers with a central amplifier. You could hook a Pi to each zone, but again, no grouping. I wonder if someone makes some type of network addressable audio switcher that could turn channels on/off as needed prior to each announcement. Maybe an IOLinc for each channel attached to a relay of some sort.

Edited by chrishick
Link to comment

Teken,

 

As already stated, you can increase/decrease volume or set a specific level of 0-100. You can also group or ungroup speakers. I have no experience with playing specific sound file from the network. If you use the speakers for other things such as music, they will interrupt play for your announcements and not resume. This was a deal breaker for me.

 

Another cheaper and more flexible option would be a RasPi with OpenElec, WiFi adapter and a cheap powered speaker. This is what I use for voice announcements and it works very well. I hid the whole setup in a decorative box in the corner of the living room. Should be less than $100 total. The only drawback would be no grouping.

 

Edit: On further thought, I think the ideal solution would be in ceiling speakers with a central amplifier. You could hook a Pi to each zone, but again, no grouping. I wonder if someone makes some type of network addressable audio switcher that could turn channels on/off as needed prior to each announcement. Maybe an IOLinc for each channel attached to a relay of some sort.

 

Can you offer a little more insight to the high lighted portion. Was the deal breaker a pro vs con for you? As I see great benefit in *Cutting In* when an alert message is present.

 

I have no problem using a smart application to resume audio . . .

 

RE: RPI, I have considered going the central amplifier route already and may entertain this if a viable and straight forward solution is present. I won't lie to anyone at this juncture trying to balance *Time Suck* projects with life is something that drives much of the projects I have undertaken.

 

I love to learn and take on new endeavors but sometimes the amount of time to learn, read, and accomplish the same just takes away the joy I'm after. I fully realize lots of this requires work, effort, and resources but right now my life is at that tipping point.

 

Like others have said before me - Sometimes you just have to throw money at it!

 

My problem is trying to accomplish that on a KD (Kraft Dinner) budget . . .

 

LOL . . .

Link to comment

For instance watching a great movie using my Sonos Playbar, an announcement comes through, the movie keeps playing but no sound. I've got to fumble around to find my phone, open the app and resume play. Too annoying for me but YMMV

 

 

Sent from my iPhone using Tapatalk

Link to comment

Tonight (when I get home), I'll find my .PHP script. I have built an API that calls the Google TTS service and references an mp3, saving the mp3 for future use. It then directs Sonos to play it. I'll see if it can be modified to be call specific mp3 files directly.

 

I do everything thru a single zone currently though. I gave not looked into multi-zone announcements (yet)

Link to comment

For instance watching a great movie using my Sonos Playbar, an announcement comes through, the movie keeps playing but no sound. I've got to fumble around to find my phone, open the app and resume play. Too annoying for me but YMMV

 

 

Sent from my iPhone using Tapatalk

 

Ah got it - Sadly, I won't be using the Sonos for such a use case so the *Cut In* will be more than fine in this application. For me its trying to find a network speaker that allows tight integration with the ISY Series Controller to alter the volume when and if required.

 

Bumbershoot has already offered this critical piece of information so unless someone can offer a comparable alternative system it may very well be the Sono's is the speaker of choice.

Link to comment

For instance watching a great movie using my Sonos Playbar, an announcement comes through, the movie keeps playing but no sound. I've got to fumble around to find my phone, open the app and resume play. Too annoying for me but YMMV

 

 

Sent from my iPhone using Tapatalk

True.

 

I use MythTV, and when MythTV is playing something I opt for network screen pop-ups instead. Much less distracting.

Link to comment

Tonight (when I get home), I'll find my .PHP script. I have built an API that calls the Google TTS service and references an mp3, saving the mp3 for future use. It then directs Sonos to play it. I'll see if it can be modified to be call specific mp3 files directly.

 

I do everything thru a single zone currently though. I gave not looked into multi-zone announcements (yet)

 

Michael,

 

Your contribution to this effort is also greatly appreciated - more the merrier I say! I should add the bulk of this deployment is *Local First* as I'm trying to reduce my reliance on other outside factors like a loss of Internet, 3rd party services, etc.

Edited by Teken
Link to comment

And the Pi was super simple if I remember right. I know nothing about Pi's but I loaded the OpenElec image to an sd card and plugged it into the Pi. It auto boots into OpenElec. I think I had to load driver for WiFi dongle and set fixed IP address. Load the audio files onto the sd card and you're done. Network call to play audio file or set volume.

 

 

Sent from my iPhone using Tapatalk

Link to comment

I have my sonos directly play a .mp3 stored on my NAS with this network resource:

POST /MediaRenderer/AVTransport/Control HTTP/1.1
Host: <ip.of.sonos>:1400
Connection: Close
Content-Type: text/xml; charset="utf-8"
Content-Length: 486
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <s:Body>
      <u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
         <InstanceID>0</InstanceID>
         <CurrentURI>x-file-cifs://<ip.of.nas>/announcements/alarm_set_to_arm_away_in_5_minutes.mp3</CurrentURI>
         <CurrentURIMetaData></CurrentURIMetaData>
      </u:SetAVTransportURI>
   </s:Body>
</s:Envelope>

Change <ip.of.sonos> to the IP of the sonos zone device, and <ip.of.nas> to the IP of the storage. The storage must have a share set to allow 'Everyone' read access (since the sonos will not authenticate). 

 

This way - you can define many network resources, each pointing at a separate .mp3.

 

The permissioning of the share on the nas was very finicky though....

  • Like 1
Link to comment

I have my sonos directly play a .mp3 stored on my NAS with this network resource:

POST /MediaRenderer/AVTransport/Control HTTP/1.1
Host: <ip.of.sonos>:1400
Connection: Close
Content-Type: text/xml; charset="utf-8"
Content-Length: 486
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <s:Body>
      <u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
         <InstanceID>0</InstanceID>
         <CurrentURI>x-file-cifs://<ip.of.nas>/announcements/alarm_set_to_arm_away_in_5_minutes.mp3</CurrentURI>
         <CurrentURIMetaData></CurrentURIMetaData>
      </u:SetAVTransportURI>
   </s:Body>
</s:Envelope>

Change <ip.of.sonos> to the IP of the sonos zone device, and <ip.of.nas> to the IP of the storage. The storage must have a share set to allow 'Everyone' read access (since the sonos will not authenticate). 

 

This way - you can define many network resources, each pointing at a separate .mp3.

 

The permissioning of the share on the nas was very finicky though....

 

I did manage to get this working and it was easier than I had thought.  No problems with permissions as I copied the file to the "Public" section on a WD My Book Live.

The only hiccup I had was that I had to tell Sonos to "Play" with another network resource after the file loaded into the queue.  I will test and experiment more with this later.

 

Thanks again for your help on this.

  • Like 1
Link to comment

 

 

I did manage to get this working and it was easier than I had thought. No problems with permissions as I copied the file to the "Public" section on a WD My Book Live.

The only hiccup I had was that I had to tell Sonos to "Play" with another network resource after the file loaded into the queue. I will test and experiment more with this later.

 

Thanks again for your help on this.

Ahhh, yes. Sorry. Forgot about the 'Play' resource. I have my ISY program queue the resource then send play. Sorry about that!

 

Play:

POST /MediaRenderer/AVTransport/Control HTTP/1.1
Host: <ip.of.sonos>:1400
Connection: Close
Content-Type: text/xml; charset="utf-8"
Content-Length: 266
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
<Speed>1</Speed>
</u:Play>
</s:Body>
</s:Envelope>
Edited by MWareman
Link to comment

Looking forward to using the Polyglot Node Server for such an integration. Is there a general ETA when the Beta release will be seen this year? In the provided link you offered there was talk about stream lining the whole (Polyglot) process. Has someone started on the path to create a RPi image where all a person needs to do is change a few network parameters?

 

I can't stress enough investing the time and resources to get such a thing done will surely increase and speed the adoption rate of such frame work.

 

After reading countless threads with some of the smartest people having basic to advanced issues just to get the system up and running.

 

Isn't something I would consider plug and play which ultimately affects public adoption for the average user.

Link to comment

I was hoping I could stash an audio file in the web space on my ISY and somehow cajole a NR and Sonos to play the file from there.  I haven't figured out how to configure an http resource to have Sonos grab the file, as Sonos always coughs up a "permission denied" response.  Maybe this can't be done, as I haven't found a shred of documentation on what that NR would look like.  I'd like to eliminate the NAS on my network, and just let the ISY web server serve up the audio file.  If anybody has an idea on how to make this work, I'd love to hear it!

 

 

Ahhh, yes. Sorry. Forgot about the 'Play' resource. I have my ISY program queue the resource then send play. Sorry about that!

 

Play:

POST /MediaRenderer/AVTransport/Control HTTP/1.1
Host: <ip.of.sonos>:1400
Connection: Close
Content-Type: text/xml; charset="utf-8"
Content-Length: 266
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
<Speed>1</Speed>
</u:Play>
</s:Body>
</s:Envelope

 

Hi all,

Has anyone tried our Polyglot version?
http://forum.universal-devices.com/topic/18643-polyglot-sonos-nodeserver/

With kind regards,
Michel

 

I'm waiting for this bug, noted in the 5.0.7 release notes to be resolved:

 

Cannot recreate reported problems:

0000314 – Node server disappears after restart

 

I've got Polyglot running anyway, and Sonos, Nest, Camera and Nodelink items all appear in my logs, but there's nothing in the ISY Admin Console that allows me access to the devices.  I loved it when it worked! 8)

 

                                                                                                                                                                                                                                                                                                                                                                                                                                                     

 

Link to comment
Guest
This topic is now closed to further replies.

×
×
  • Create New...