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