October 2010

You are currently browsing the monthly archive for October 2010.

After some more work I came up with a better solution written on C# by using Open Software’s UPnP stacks. The advantage is that the whole solution is installable and works out of the box.

Every user is only responsible to edit the UniqueDeviceNames.ini file in a proper way. We assist this step too.

What you need

  1. A KNX installation and properly defined group addresses (see [commands list] section of the ini file). Also you need a KNX/IP interface to be able to transmit selected KNX telegrams via IP network. In particular, a Gira HomeServer can perform this function.
  2. A Sonos system. We will discover all online ZonePlayers and put them in a text file for your convenience. Do not mind anymore the complicated IDs, will use only friendly names as you see them in the original Sonos Controlles.
  3. A Windows box with Microsoft .NET Framework 2.0
  4. The Sonos KNX interface Setup v1.0.0 kit from here. PLEASE DO NOT INSTALL THIS VERSION ANYMORE! CHECK BELOW FOR UPDATES!

How to install

  1. Double click on setup.exe and follow the directions on the screen. Accept all security warnings (windows and firewall). Remember the installation folder location.
  2. Go to computer management, expand Services and look for SonosHS service. Start it (only once, the service is set to automatic startup for the future)
  3. in about 30 seconds a filename UniqueDevicesNames.txt will be written in the installation folder. Check this file to make sure you use the proper Zone Players friendly names in the next step
  4. edit the file UniqueDevicesNames.ini and make sure to use proper group addresses and zone player names in sections [map_to_zone] and [map_to_command]. For a list of available zones see UniqueDevicesNames.txt and for a list of available commands see the [commands list - this section is only informative] section. Also make sure you input proper IP and port addresses for the KNX IP interface.
  5. save the ini file. there is no need to restart the service, all should work from now on

How to debug

Stay tuned, I will post a Windows form application with identical functionality soon. Just look at the form and see if you can properly receive the KNX telegrams. The source code (VS2010 solution) is available upon request.

Known issues

  1. if you add a Zone Player after the service starts, this Zone Player will not be visible to the interface until the service SonosHS is restarted (or the computer is restarted)
  2. not all commands are implemented at this moment
  3. there is no feedback implemented from Sonos to the KNX
  4. the solution requires some CPU and memory optimization


UPDATE 22/10/2010

Here are the new setup kits for version 1.0.2. See below change log for more information

  1. Windows service setup kit
  2. Windows application setup kit



- compatible with 32 and 64 bits systems
- added: toggleMute 1bit command
- added: balance control via EIS6 command (0=max left, 50=balanced, 100=max right)
- added: play mode change via KNX 4 bit control with 0:NORMAL, 1:INTRO, 2:SHUFFLE, 3:RANDOM, 4:REPEAT_ONE, 5:REPEAT_ALL, 6-15:NORMAL
- got rid of UniqueDeviceNames.txt file, now we manage the [zone_list] section inside the UniqueDeviceNsmes.ini file directly
- more debug information in EventViewer, under Application logs, source SonosHS
- the service starts automatically, no need for user intervention (not nice solution but it works)

issues: Sonos ZonePlayers seem to respond inaccurately to Play Mode commands, perhaps the UPnP standard implementation does not match between Sonos and Open Software (Intel)

1.0.1 - initial version x86 compatible only
- supports transport commands: play, stop, pause, next, previous, mute, unmute
- supports volume commands: master volume via EIS 6 (0...100)


As a big surprise I discovered the UPnP plugins for Gira HomeServer QuadClient from the latest buid of Expert software in conjunction with QuadClient 1.2 as a client is able to control most of the functionality of the Sonos system.


  • There is still no access to music services such as internet radio, deezer or local audio plugs at the zone player. While every zone player is visible as a media server and all these services are listed, they come empty and there is no command to refresh their content.
  • There is no linking and unlinking commands for zone players.

How to install and configure

Just add UPnP Media Server plugin in Quadrant 3 and UPnP Media Renderer plugin in Quadrant 4 so both can be visible in the QuadClient at the same time.

Configure the UPnP Media Server plugin to hide all Sonos Zone Players since there is no much benefit to use them as servers. Let all other media servers visible (such as windows computers, nas media servers, etc)

How to operate

Display both media servers and media renderers quadrants at the same time. On the media renderer pane display your preffered Sonos Zone Player or local QC player (which integrates the computer’s media player). Access your desired media server and select your music. Click play and the music becomes live.

iPod, iPhone, iPad?

Sadly, the UPnP media plugins cannot be exported yet for the iOS apps clients.

Tags: , ,