Sonos is arguably one of the most advanced streaming music players on the market. Its dynamic native app’s ease of use and simple setup made it the No. 1 multiroom wireless audio system on the market. The company's “Endorsed Partner Program” includes Control4, Crestron, iPort, Lutron and Savant as recommended home automation companies for controlling Sonos players using third-party devices for functions like favorite stations, volume, source, transport control, “like” and “dislike” seamless … not to mention detailed feedback regarding the station, album, artist, song and album artwork — along with player-specific information which allows the homeowner to create a highly customized, less time-to-music control interface.
So exactly what is entailed to integrate Sonos with a third-party home automation system like RTI? And which function is actually better using third-party control vs. the native Sonos app?
Here is a step-by-step methodology for Sonos/RTI integration, including driver installation, device feedback, basic control options and advanced multiroom features.
Sonos Driver Installation and Setup
Whether you’re starting a new project or updating an existing one, it’s always a good idea to see if there are updated drivers for the devices in your installation. New features and bug fixes are added all the time.
Log in to the RTI dealer website and go to the “Driver Store.” Locate the Sonos driver in the alphabetical list of drivers and save it to the “Control Drivers” folder on your PC (RTI programming is not Mac compatible).
It’s a “Zipped” file, so you’ll need to extract it. Once you extract the files you’ll find two files:
Sonos.rti — This file is a sample RTI file with several well-designed sample templates including tablet, touchpanel and handheld remote samples. You can directly import these files into your project, cut and paste only the parts you want, or just use the samples to learn how the driver provides the link between the Sonos system and the RTI processor.
If you didn’t already know, most devices can be converted to a different device by selecting “Device – Convert To.”
A great use of this feature is converting a touchpanel into a “Virtual Panel” to test out your project on a PC without the need of having to wait until the devices are actually installed on location.
Sonos.rtidriver — This is the actual driver file … the one you need to install using the Integration Designer software. To do so, in Integration Designer, select the “Drivers” tab on the processor, then select “Add” and locate the driver file to install it.
Once installed, the first thing I always recommend doing is to go to the “Get Info” tab and read over the notes. Here you’ll find detailed info on the revisions, as well as helpful hints on how to make the most of the driver.
You’ll also see a few options you’ll need to select and set up to get communication going:
Number of Players — This is fairly obvious, but once you enter the number of players on this line, options for each player will appear on the next lines.
Player Name — This can match what the players are named during the setup process on the Sonos app, or you can do custom names in the RTI programming. In previous versions of the driver, the name was used to identify the player.
Player Serial Number — This feature was added recently. Since the player’s serial number (which is also its MAC address) never changes, the end user can freely change the name of their players without affecting the installation. And since it’s not IP-specific, you can stick to DHCP if you want.
Other driver options include “system settings” where you can run this driver instance on a different processor (Slave/Master install) and how the “Favorites” information is displayed.
Sonos Device Feedback
After the driver has been installed, you’ll have a new option under the “Drivers” tab in the Library Browser panel on the right side of the screen. Selecting the Sonos option gives you a list of “Variables” which are an incredibly versatile set of feedback variables.
Feedback variables let you receive and display information about the various states, functions and values of the device. Variables also let you automatically perform tasks, actions or functions based on the state of a variable in the device.
For instance, the RTI processor can detect whenever a Z-Wave lock was unlocked, and also check the time of day. So let’s say you come home at 5:30 p.m., you can automatically turn on music and lighting to a preset station and level, open the blinds, and set the thermostat.
Variable feedback comes in many different forms:
Button Text — This is actual text that the device sends back to the RTI processor. Button Text feedback lets you dynamically change the text on a button or label. For instance, you can toggle a button from “Power On” to “Power Off” based on whether a Sonos device is on/off. Or you could use it to display the current input, favorite name or volume level of any Sonos player.
Reversed State — Many graphic images including buttons can have a secondary or “reversed” image that can be displayed using this variable. Most commonly it’s used to make a button look like its pressed… like selecting a favorite and then keeping that button “pressed” to show it’s the one selected.
Visible State — Similar to Reversed State, this variable lets you make any information, button or graphic on the display appear or disappear based on this variable. A good example would be making a mute graphic appear only when a Sonos player is muted.
Inactive State — This variable lets you make a button “Inactive” meaning it won’t respond to touch. This is useful for times when you don’t want a button to do anything until you’re ready. Like when you bring up a list of favorites — you don’t want any other buttons to function until a favorite is selected.
Graph Data Source — This variable controls objects like sliders, which are commonly used for volume control. The system can show the volume level based on the feedback from this variable. It can be used for lots of other variables including tone, input, track, lists, etc.
Toggle Button Data Source — Most commonly used for power/on/off or mute functions, the Toggle Button Data Source will make a toggle graphic flip back and forth between its two states or conditions.
Image List Data Source — This lets you display an image from a special graphic that includes multiple images. An example of this would be a default image weather icon which changes automatically based on the weather driver feedback.
Item List Data Source — Item Lists are used to display a list of things like artists, favorites, or stations.
Dynamic Image — Dynamic images are images that come directly from the device itself. The most common example of a dynamic image is album artwork, and favorite images from a Sonos player, but there several types such as a video feed from a camera, still images, or channel icons.
RTI Control Options
Just below the “Variables” section, there is an extensive list of “Driver Commands.” Driver Commands allow a user to directly control the functions of the Sonos system using the RTI interface. Among the key control options are:
Volume/Mute — The volume commands allow you adjust the volume level up or down at a custom interval, mute on/off/toggle, or set the volume to a specific level instantly. You have similar settings for Bass and Treble, and the “Loudness” toggle turns on/off the player’s ability to have a more distinct sound when played at lower volume levels.
Transport Functions — These functions include Play, Pause, Next, Previous, Stop, Repeat and Shuffle. The functions pretty much mimic the same functions in the Sonos app.
Favorites — These functions are a very powerful tool which gives you the ability to select, set and change the Sonos favorite channels or stations (up to 32) using the control device. If you’re using a color display, a custom icon can be displayed showing album, or artist information right on the display.
Grouping — The Grouping functions make it easy to combine players so they can play the same source in multiple zones. In my opinion this is one area that works even better than the Sonos app. Using these driver functions along with the “Group Audio Functions,” an integrator can seamlessly combine zones, provide control and feedback, and simplify the customer’s Sonos experience.
Selected Player — When you issue commands for transport, or volume, you can either address the player directly, or use the “Selected Player.” Selected player functions are incredibly versatile for creating a single interface that seamlessly controls the entire system. You can directly set a player, or step through the players forwards or backwards in the list as you entered them in the driver.
External Inputs — The Sonos Connect, Connect Amp, and the Playbar all have an external input that can be shared with any/all devices in the system.
In the case of the Playbar, this would be used to play whatever is on the TV in any other zone (with little to no lag). For the Connect devices, the external input can be used to add an external music source, or add a pair of Sonos speakers as surround sound speakers by connecting the preamp output of a surround receiver.
The driver functions for the external inputs let you use your RTI controller to simplify this process. Setting up a system in this manner using the Sonos app takes multiple steps and a good understanding of the system design. Using RTI, this can all be done simply by selecting a “Watch Movie” button that completes all the steps needed in a macro.
Some examples of simple automation functions include:
Alarm Clock — Sonos includes a the ability to turn on devices at a set time, but with RTI, you can add additional automation functions like the ability to turn on the TV, ramp up lights, and my favorite: Turn off the ceiling fan – forcing you to get out of bed on time.
Good Bye — Using RTI it’s simple to add Sonos to an “All Off” or “Good Bye” macro to make sure all players are turned off with the press of a button, or an “Alexa – Turn the whole house off” command.
Advanced Multi-Room Control Ideas
Probably one of the best reasons to consider an RTI/Sonos integration would be RTI’s ability to create a dynamic, simple and versatile multisource, multizone distributed audio system. With RTI and Sonos, you have complete customized control over as much or as little of the functionality of the Sonos system as you want to provide. This gives you the ability to give your customer a control system specifically designed for their needs.
Some specific examples of the flexibility of the RTI control system when it’s combined with the Sonos drivers are:
Master Control Interfaces — Typically the homeowner will want at least one iPad that can control every function of the system. Using all of the driver functions you can set up a main control iPad to give access to every source, every zone, and every function of every Sonos player in the system. You can give them the ability to create groups of players, set favorites, and control volume, bass and treble levels of any device from anywhere in the home.
Zone Control Interfaces — A single-gang RTI keypad like the KX1, RK1+ and RKM1+ make great zone control interfaces. From simple to detailed, each zone can be controlled independently by simply walking into a room, pressing a button on a keypad and enjoying audio in that zone.
Kid Friendly Control — Similar to a Guest control, RTI makes it easy for you to configure a simple kid friendly control. Ranging from a simple two-button-on/off keypad to an access limited large-format touch-panel or iPad, you can give the user as little or as much access to the system as you want.
Guest or Limited Access Control Interfaces — If the home will have any guest areas, or you don’t want every zone accessible (baby’s room), your customer will probably want the ability to limit their guests to have control over only one or two zones in the system. And the guests probably won’t have access to inputs from other zones. With
RTI, this is a fairly simple process using keypads, touchpanels or a tablet. Limiting guest access is not a current feature available in the Sonos app. With the Sonos app, giving a guest access would mean they would have complete control over the entire system.
Author Mike Pote is an Integration Specialist at 21st Century Distributing.
If you enjoyed this article and want to receive more valuable industry content like this, click here to sign up for our digital newsletters!