jonathanud Posted November 26, 2013 Posted November 26, 2013 All of what I assembled here came from other forum posts and the posted sonos.zip network resources. It took me a while to get it all together, but I was very pleased with the results. The ISY is one of the best appliances I have ever owned. I purchased it exclusively to drive my lighting, which it does masterfully: timers and adjustments matched to sunset, sunrise, and my routine. I love what it does, but I never expected it to bridge additional systems as it is now doing with Sonos. Had I known I could do this, I would have invested in Sonos sooner. Thanks to you forum contributors for teaching me how to leverage it, and thank you, UD Sales for giving me a discount on the Network Module in exchange for my contribution to the community. That kind of partnership is really nice to see. Objective: Living room Insteon controls for Sonos Play/Pause button Volume Up/Down button Previous track button Next track button Equipment ISY-994i with Network Module Insteon 2486D 6 Button Control Sonos ZP100 Variable sonos_lr_play - Sonos doesn't have a play/pause toggle function, so we cheat with a variable. Buttons PLAY/PAUSE - toggle on only VOLUME - toggle on/off to use fade up and fade down controls PREVIOUS - toggle on only NEXT - toggle on only PLAY/PAUSE can also be used as toggle on/off, and the indicator light while match whether music is playing. As long as you use no other Sonos controls (ios app, computer, etc.), this works, but the indicator cannot be guaranteed to match the play mode when other controls are used. I opted just to have a permantently lit toggle and let my ears determine the status. PROGRAMS Sonos LR Next If Control NEXT is switched On Then Resource 'sonos.lr.next' Sonos LR Pause button1 and button2 pause the music as part of other scenes; PLAY/PAUSE is the in-room toggle button If Control button1 is switched On Or Control button2 is switched On Or (Control PLAY/PAUSE is switched On And $sonos_lr_play = 1) Then Resource 'sonos.lr.pause' $sonos_lr_play = 0 Sonos LR Play If Control PLAY/PAUSE is switched On And $sonos_lr_play = 0 Then Resource 'sonos.lr.play' $sonos_lr_play = 1 Sonos LR Previous If Control PREVIOUS is switched On Then Resource 'sonos.lr.previous' Sonos LR VolumeDown Button is held, volDown repeats until button is released. If Control VOLUME is switched Fade Down And Control VOLUME is not switched Fade Stop Then Repeat 25 times Resource 'sonos.lr.volDown' Sonos LR VolumeUp Button is held again, volUp repeats until button is released. If Control VOLUME is switched Fade Up And Control VOLUME is not switched Fade Stop Then Repeat 25 times Resource 'sonos.lr.volUp' NETWORK RESOURCES sonos.lr.next POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 265 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Next" 0 sonos.lr.pause POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 267 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Pause" 0 sonos.lr.play POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 285 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play" 0 1 sonos.lr.previous POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 273 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Previous" 0 sonos.lr.volumeDown I played with the adjustments a bit to find a good speed, found that I preferred the volume decrease a little quicker than increase. Volume must change sufficiently before the Insteon button enters pairing mode. POST /MediaRenderer/RenderingControl/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 356 SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetRelativeVolume" 0 Master -7 sonos.lr.volumeUp POST /MediaRenderer/RenderingControl/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 355 SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetRelativeVolume" 0 Master 6 Attachments isy994i network resources sonos.zip 3 1
Michel Kohanim Posted November 27, 2013 Posted November 27, 2013 Hi jonathanud, This is great. With your permission (email), I have added your contribution to our Wiki. Thanks SO very much! With kind regards, Michel 1
gatchel Posted November 28, 2013 Posted November 28, 2013 Having just added a 7th zone to our Sonos setup, I may have to purchase the networking module and give this a try. Excellent write up!
accd Posted December 11, 2013 Posted December 11, 2013 Thanks so much for the post and resources, it was a snap to set up. My wife loves going to sleep (well sleep in general) to the sound of thunder and lightening. Additionally she likes to read in bed, my loss. Her overhead bed reading can/spotlight is controlled next to her bed via switch linc. When she uses a double fast off, first all the lights in the house are turned off, then her reading spot dims to off and Sonos now loads up her thunder and lightening ambient sounds for sleeping. When I described it to her initially she thought I needed to "get a life". When she used it the first time, BIG SMILE... Again, I appreciate all the hard work and ground that has been plowed prior to me joining the forum. Regards ACD
NNilsen Posted December 30, 2013 Posted December 30, 2013 I too would like to thank dstanley, jonathanud, and everyone for the great work on this. As a non-programmer I want to add a few simple steps for those that do not understand how to use the network resources module to make this Sonos integration a snap. 1- find the IP address of any Sonos zone player. 2- download either or both of the two zip files 3- import one or both zip files into the network resource manager START SIMPLE 4- open the URL of the imported resource sonos.lr.pause or bedroom.pause 5- change the host IP address 6- save the change 7- press save at the bottom of the network resource screen 8- open ISY programs 9- create a sonos.pause program with Then resource sonos.lr.pause or bedroom.pause 10- save the program 11- open the Sonos app on any device and play any selection 12- select the ISY sonos.pause program 13- run then (right mouse click) 14- observe that you paused the player NOW EXPAND 15- change and save the IP address of other resource URL's 16- re-read the discussion notes from the authors and tailor to your needs 17- create more resources and programs with if statements to fit your application 3 1
Pgendreau Posted February 11, 2014 Posted February 11, 2014 A million thanks! Great way to integrate these two great pieces if technology! (ordering a couple extra keypads tomorrow !
leith Posted February 17, 2014 Posted February 17, 2014 Zip file is empty when I download......is there another link I'm missing something? Another link? Just came across this and would love to integrate my outdoor sonos speakers.
Michel Kohanim Posted February 17, 2014 Posted February 17, 2014 Hi leith, Zip file is NOT empty. If you are using Windows' decompression utility, it will have a hard time opening the file. If you really need to see what's in there, try another zip utility such as AllZip. With kind regards, Michel
Mark H Posted February 17, 2014 Posted February 17, 2014 Michel et al... The ZIP file isn't empty, but it is slightly corrupted. Using both WinZIP and WinRAR to open it after download, produces these errors: Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/RES.CFG". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/1.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/2.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/3.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/6.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/7.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/8.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/9.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/16.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/17.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/4.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/5.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/10.RES". Warning: the Zip file is read-only. A file name in the archive is invalid and had to be fixed: "/CONF/NET/11.RES". Continuing past that does allow the ZIP file to open, and the files within it to be opened, which do look ok. (I opened one with Notepad++ and it appeared to be fine.) Just an FYI.
Michel Kohanim Posted February 18, 2014 Posted February 18, 2014 Hello TheSidewinder, Thank you. But the same zip file can be imported to ISY without errors! With kind regards, Michel 1
Mark H Posted February 18, 2014 Posted February 18, 2014 Oh, I wasn't suggesting that it couldn't be, only that downloading and opening it with WinZIP or WinRAR produced the error I noted. Once opened, and that error ignored, the files seemed fine.
shannong Posted February 25, 2014 Posted February 25, 2014 Thanks to all that contributed to this. I love my Sonos setup and this makes it and the ISY a bit more useful. I don't actually want to control my Sonos via ISY per se but rather just pause the music when leaving rooms and/or all systems when Away scene is activated leaving the house. This one feature alone was enough to get me to purchase the Network Module today.
rana Posted July 14, 2014 Posted July 14, 2014 Thank you for all of you hard work its working and im enjoying it
raymondh Posted July 15, 2014 Posted July 15, 2014 Is there a way to have the ISY switch the Sonos to line-in and then back to the original source to begin playing music again? Ow about group all the speakers together?
Jason Miller Posted July 18, 2014 Posted July 18, 2014 I am trying to setup Sonos on my ISY. I want to create a program that starts up and plays a pandora channel. Another that cuts sonos off. I read another thread and got some items working, but looking for some guidance/support. Anyone willing to help?
Michel Kohanim Posted July 18, 2014 Posted July 18, 2014 Hi jam583, Have you looked at: http://wiki.universal-devices.com/index.php?title=ISY-99i_Series_INSTEON:Networking:Network_Resources#Sonos_by_jonathanud .... you can simply import the network resources and then just change the ip/port. With kind regards,Michel 1
Jason Miller Posted July 21, 2014 Posted July 21, 2014 Hi jam583, Have you looked at: http://wiki.universal-devices.com/index.php?title=ISY-99i_Series_INSTEON:Networking:Network_Resources#Sonos_by_jonathanud .... you can simply import the network resources and then just change the ip/port. With kind regards, Michel Yes, but I can't find any documentation on how to import. When I attempt, via the ISY, network resources, import, it says, "cannot retrieve file"
Michel Kohanim Posted July 21, 2014 Posted July 21, 2014 Hi jam583, Please do NOT unzip. The import requires the zip file. With kind regards, Michel
jsmith6dc Posted August 27, 2014 Posted August 27, 2014 All of what I assembled here came from other forum posts and the posted sonos.zip network resources. It took me a while to get it all together, but I was very pleased with the results. The ISY is one of the best appliances I have ever owned. I purchased it exclusively to drive my lighting, which it does masterfully: timers and adjustments matched to sunset, sunrise, and my routine. I love what it does, but I never expected it to bridge additional systems as it is now doing with Sonos. Had I known I could do this, I would have invested in Sonos sooner. Thanks to you forum contributors for teaching me how to leverage it, and thank you, UD Sales for giving me a discount on the Network Module in exchange for my contribution to the community. That kind of partnership is really nice to see. Objective: Living room Insteon controls for Sonos Play/Pause button Volume Up/Down button Previous track button Next track button Equipment ISY-994i with Network Module Insteon 2486D 6 Button Control Sonos ZP100 Variable sonos_lr_play - Sonos doesn't have a play/pause toggle function, so we cheat with a variable. Buttons PLAY/PAUSE - toggle on only VOLUME - toggle on/off to use fade up and fade down controls PREVIOUS - toggle on only NEXT - toggle on only PLAY/PAUSE can also be used as toggle on/off, and the indicator light while match whether music is playing. As long as you use no other Sonos controls (ios app, computer, etc.), this works, but the indicator cannot be guaranteed to match the play mode when other controls are used. I opted just to have a permantently lit toggle and let my ears determine the status. PROGRAMS Sonos LR Next If Control NEXT is switched On Then Resource 'sonos.lr.next' Sonos LR Pausebutton1 and button2 pause the music as part of other scenes; PLAY/PAUSE is the in-room toggle button If Control button1 is switched On Or Control button2 is switched On Or (Control PLAY/PAUSE is switched On And $sonos_lr_play = 1) Then Resource 'sonos.lr.pause' $sonos_lr_play = 0 Sonos LR Play If Control PLAY/PAUSE is switched On And $sonos_lr_play = 0 Then Resource 'sonos.lr.play' $sonos_lr_play = 1 Sonos LR Previous If Control PREVIOUS is switched On Then Resource 'sonos.lr.previous' Sonos LR VolumeDownButton is held, volDown repeats until button is released. If Control VOLUME is switched Fade Down And Control VOLUME is not switched Fade Stop Then Repeat 25 times Resource 'sonos.lr.volDown' Sonos LR VolumeUpButton is held again, volUp repeats until button is released. If Control VOLUME is switched Fade Up And Control VOLUME is not switched Fade Stop Then Repeat 25 times Resource 'sonos.lr.volUp' NETWORK RESOURCES sonos.lr.next POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 265 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Next" <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:Next xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <InstanceID>0</InstanceID> </u:Next> </s:Body> </s:Envelope> sonos.lr.pause POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 267 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Pause" <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:Pause xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <InstanceID>0</InstanceID> </u:Pause> </s:Body> </s:Envelope> sonos.lr.play POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 285 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> sonos.lr.previous POST /MediaRenderer/AVTransport/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 273 SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Previous" <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:Previous xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <InstanceID>0</InstanceID> </u:Previous> </s:Body> </s:Envelope> sonos.lr.volumeDownI played with the adjustments a bit to find a good speed, found that I preferred the volume decrease a little quicker than increase. Volume must change sufficiently before the Insteon button enters pairing mode. POST /MediaRenderer/RenderingControl/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 356 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>-7</Adjustment> </u:SetRelativeVolume> </s:Body> </s:Envelope> sonos.lr.volumeUp POST /MediaRenderer/RenderingControl/Control HTTP/1.1 Host: 192.168.3.134:1400 Connection: Close Content-Type: text/xml; charset="utf-8" Content-Length: 355 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>6</Adjustment> </u:SetRelativeVolume> </s:Body> </s:Envelope> Attachmentsisy994i network resources sonos.zip Jonathanud: thank you very much for doing this. It is a very nice solution. Quick question: how difficult is it do those button labels? Did you print your own, or buy them? If printing, where did you get the transparent buttons? Best, James
jsmith6dc Posted August 27, 2014 Posted August 27, 2014 I too would like to thank dstanley, jonathanud, and everyone for the great work on this. As a non-programmer I want to add a few simple steps for those that do not understand how to use the network resources module to make this Sonos integration a snap. 1- find the IP address of any Sonos zone player. 2- download either or both of the two zip files 3- import one or both zip files into the network resource manager START SIMPLE 4- open the URL of the imported resource sonos.lr.pause or bedroom.pause 5- change the host IP address 6- save the change 7- press save at the bottom of the network resource screen 8- open ISY programs 9- create a sonos.pause program with Then resource sonos.lr.pause or bedroom.pause 10- save the program 11- open the Sonos app on any device and play any selection 12- select the ISY sonos.pause program 13- run then (right mouse click) 14- observe that you paused the player NOW EXPAND 15- change and save the IP address of other resource URL's 16- re-read the discussion notes from the authors and tailor to your needs 17- create more resources and programs with if statements to fit your application Question: are you using static IP addresses for your Sonos devices, or is there a program to figure out each IP address?
dstanley Posted August 27, 2014 Posted August 27, 2014 Question: are you using static IP addresses for your Sonos devices, or is there a program to figure out each IP address? If you launch the SONOS Controller program on your PC and go to HELP - ABOUT MY SONOS SYSTEM - you will get a listing of all your equipment with it's MAC addresses and ip addresses. This is the easiest way to get the info you need! Dwight
jsmith6dc Posted August 27, 2014 Posted August 27, 2014 If you launch the SONOS Controller program on your PC and go to HELP - ABOUT MY SONOS SYSTEM - you will get a listing of all your equipment with it's MAC addresses and ip addresses. This is the easiest way to get the info you need! Dwight dstanley, thanks much for your reply. I did get that far, and I've got the program working. I used a togglelinc dimmer. Love it: pause and play, and volume up and down, all in one little switch. My question was what happens when you the DHCP router assigns new IP addresses to the Sonos players? Then the code would no longer work. I figured out that I need to reserve the IP address for each player (using the MAC address) in the router administration tool. Is that they way you're doing it?
dstanley Posted August 28, 2014 Posted August 28, 2014 When a device hooks up to a DHCP server (router) it will request an address that it is already using or it will ask to have an address assigned. Most modern routers will remember the MAC address of a device and IP address that it requested or is granted. The Sonos will always ask for the same address over again for each device when needed. I have not had an address change in years. That said, there are some routers that will assign different addresses - in that case then a router reserved address is best to use.
ccclapp Posted December 17, 2014 Posted December 17, 2014 Hi Thanks for doing this! I have read this thread, but not yet tried to install. Would you tell me if this can be used to select "favorites"? Will it also do other Sonos controls not mentioned above? If so, I assume one substitutes another sonos command in the script you provided. Is that conceptually correct? THanks 1
PaulMichaels Posted November 6, 2015 Posted November 6, 2015 I've imported these (which worked fine, so thank you) but they don't seem to be working. I've adjusted the IP on the pause to the IP of my playbar. In my error log I'm seeing this: Fri 2015/11/06 01:54:01 PM System -140008 Net Module Rule: 8:500 Fri 2015/11/06 01:54:58 PM System -140008 Net Module Rule: 8:500 Fri 2015/11/06 01:55:34 PM System -140008 Net Module Rule: 8:500 Fri 2015/11/06 01:59:14 PM System -140008 Net Module Rule: 8:500 any ideas?
Recommended Posts