I've looked at the possibility of linking the two. Sonos uses standard web API's, but to connect the two you would need something to act as an intermediary to translate between the two systems. This is not too difficult to do to link simple actions, e.g to connect an Idratek button to the volume for a specific zone, but if you want to set up programmable connections it rapidly gets complicated. Sonos uses UPNP and SOAP. The SOAP commands can easily be sent programmatically, but to construct them in a robust manner you really need to do UPNP discovery, which is more complicated. The simpler interfaces between Home automation systems and Sonos cheat, by omitting the UPNP element and rely on the fact that Zoneplayer ID's don't change once a system has been setup and is stable. But you still have to determine what the Zoneplayer ID's are and what IP addresses they are using to omit the UPNP element.

The Sonos system could be used to send announcements from Cortex, but the complicated bit would be remembering the state of the system before the announcement and then restoring that state and resuming what was being played afterwards. All the functions exist in the Sonos API to do this, but programming it is not a trivial task.

Here are some examples of what has been done:

http://blog.travelmarx.com/2010/06/e...-via-upnp.html
http://blog.travelmarx.com/2010/06/s...plication.html
http://forums.sonos.com/showthread.php?t=27423&page=2
http://jpmens.net/2010/03/16/sonos-pause-switch/