Russound

evasmolders edited this page Jan 14, 2017 · 4 revisions
Clone this wiki locally

##Introduction Russound has great audio systems to create (multi)room audio for the entire house. They provide equipment for the audio source, amplifiers, speakers and controllers. With a full system all users can listen to their favorite music in the room they are at the same time. You can use OpenRemote to create your own interface for your Russound system so you can completely adapt it to your wishes, or if you want to combine Russound with your other systems you might have such as lighting and/or climate and control them from the same interface.

##Hardware The Russound RNET protocol can be used to control Russound multiroom audio amplifiers which support the RNET protocol. The RNET protocol is the 'older' HEX based Russound protocol which is used via the RS232 port of the devices.

The newer devices (C3 and C5) also have an integrated ethernet port which supports the ASCII based RIO protocol.

OpenRemote only supports RNET at the moment.

Russound - table1

##Configuration of System OpenRemote can access the device either directly via RS232 or through a RS232<->Ethernet device. This has to be configured within the controller configuration.

In the moment you cannot do this via the designer which means you have to edit the file "config.properties" manually.

The file is located within the controller in the folder "webapps/controller/WEB-INF/classes".

You have to change the settings in this section:

#-----------------------------------------------------------------------
#
# RUSSOUND CONFIGURATION:
# 
# Configuration related to Russound amplifier

##
# IP-Address of the RS232 Serial gateway if used. The gateway has to support TCP mode
russound.ip=192.168.100.8

##
# Port of RS232 Serial gateway to use
russound.port=1234

##
# KeypadId IF NOT 0x70 (default). Specify as Hex without leading "0x" eg. "71"
# Supposedly the newer C-x models need 71 and the older CA-66 models need 70
russound.keypadId=71

##
# If the Russound is connected directly to a serial port of controller use device name here eg. /dev/ttyS0
# If a serial device is specified the IP settings are ignored
russound.serialDevice=

##
# If a pollingInterval is given, that means an extra thread is started which polls the device for the status
# valid values: 5000, 5s, 1m, 2h  (no letter=milliseconds, s=seconds, m=minute, h=hour)
russound.statusPollingInterval=

#
#------------------------------------------------ end of Russound ---------

After this is done restart the controller and design your remote.

##Importing devices in the Designer - Building Modeler

Now, let's create a remote in OpenRemote Designer.

Our task will be to create a switch to turn one zone on/off and which reflects the status.

####Create new Device In "Building Modeler", create new device (New->New Device)

Russound - 1

####Create commands

Still in "Building Modeler", select device that was created in step 1 and click on New->New Command. Specify a name and select "Russound RNET Protocol" as protocol. If you configure multiple zones you should mention the zone numer in the name, that makes it easier to assign UI elements or other objects later.

These are the settings for power-on. We use Zone1 from Controller1.

Russound - 2

Russound specific settings:

  • Controller - The controller to which this command is sent (Count starts with 1)
  • Zone - The zone to which this command is sent (Count starts with 1)
  • Russound command - The action this command should do

The following Russound commands are available:
ALL_ON
ALL_OFF
POWER_ON
POWER_OFF
VOL_UP
VOL_DOWN
SELECT_SOURCE1
SELECT_SOURCE2
SELECT_SOURCE3
SELECT_SOURCE4
SELECT_SOURCE5
SELECT_SOURCE6
SELECT_SOURCE7
SELECT_SOURCE8
SET_SOURCE
SET_VOLUME
SET_TURNON_VOLUME
SET_BASS_LEVEL
SET_TREBLE_LEVEL
SET_BALANCE_LEVEL
SET_LOUDNESS_ON
SET_LOUDNESS_OFF
SET_PARTYMODE_ON
SET_PARTYMODE_OFF
GET_VOLUME
GET_TURNON_VOLUME
GET_POWER_STATUS
GET_SOURCE
GET_BASS_LEVEL
GET_TREBLE_LEVEL
GET_BALANCE_LEVEL
GET_LOUDNESS_MODE
GET_PARTY_MODE
GET_SHARED_SOURCE
GET_SYSTEM_ON_STATE
GET_DO_NOT_DISTURB

Since we are going to configure a second and third command, click on "Submit and continue". This will store our current settings, but preserver filled-in values. We can then easily update settings without the need to re-enter all the values again.

These are the settings for power-off.

Russound - 3

And the last one. These are the settings for querying power status.

Russound - 4

Since we are not going to add any other command, click on "Submit".

####Create sensor

We also need a sensor which is later used by the "switch" object to query the status. Select the device and select (New->New Sensor). Define a name and select the status command from the previous step. The sensor will have the type "switch".

Russound - 5

If you want to create sensors which can be used for sliders (Volume, Bass, etc.), you have to create range sensors with the following ranges:

  • For volume and turnonVolume: 0 - 10
  • For bass, trebble, balance, -10 - 10
  • For source selection: 1 - 8 (or 1 - 6)

####Create switch

Now we can create the switch object which combines the on/off commands and the switch sensor. The switch object will be used later in the UI designer.

Select the device and select (New->New Switch). Define a name and select the sensor from the previous step. You also have to select the command for on and off.

Russound - 6

We are done in the Building modeler and have successfully configured our device, the commands, a sensor and the switch.

Russound - 7

####Russound Wizard Now that you understand the process of creating objects in the Building modeler, you probably realized that a lot of objects have to be created if you have multiple zones connected to your Russound device and you want to control all of them with OpenRemote. The wizard just helps to create the objects needed in the building modeler which means you still need to configure the controller as mentioned in the document above.

Instead of creating devices, commands, sensors, sliders and switches manually, all you need to do is to say how many controller and zones you have.

In "Building Modeler", from the menu select (New->New Russound Device). Give your device a name, select your Russound model and say how many controllers you have. Some controllers allow cascading which means the appropriate amount of zones will be created. Click "Finish" and you are done.

Russound - 10

The wizard will create one device for each zone and within each device all the needed objects (commands, sensors, siders and switches. You can find a video of this on our YouTube channel.

Russound - 9

##Specific Designer Remarks - UI Designer Now we switch to the UI Designer and create a panel which will be our remote. The panel will contain one switch UI element which will use our switch object from the previous step. If you don't select an image for on and off the button will just have a label "On" or "Off" depending on the status.

Russound - 8

##Reference Cases This video demonstrates OpenRemote integration with Russound multi-room audio system and KNX.

An OpenRemote touch interface is created with multi-room zone control. Volume, source, bass and treble controls are included in the custom interface. Similar user interfaces can be used with iPhone and iPad tablets, Android phones and tablets and from within your PC's web browser. This enables you to use your existing devices to control your audio setup without necessarily adding separate keypads for Russound control.

The video also demonstrates integration of Russound sound system with physical KNX switches. The audio can be controlled both from touch devices or physical switches with UI and state synchronization across separate systems.

With OpenRemote, it is possible to integrate existing automation installations and equipment into a single integrated solution. You can combine your KNX light control with your Russound audio controls into a single touch interface on your smart phone or tablet - or even to existing physical switches as is demonstrated in this video.

OpenRemote establishes a de-facto integration platform for control and automation in Open Source. We adopt Open Source to create an open, free-to-access, unencumbered platform for vendors to integrate their protocols and smart home devices to existing automation systems at lower cost. We enable installers to create solutions where all parts of the system are integrated, controlled and automated from a single panel interface. End-users benefit from having unified control panels which cover all their integrated devices instead of a chaos of unintegrated controls and applications that do not interoperate.

OpenRemote puts you in control - choose the most cost-effective components rather than paying over-inflated prices for a closed, proprietary solution. You can use off-the-shelf hardware and drastically reduce the cost of your installation.

####Technical details

For this to work you need a running KNX system which includes an IP gateway. Minimum hardware for this scenario is a KNX powersupply, a switch sensor and an IP gateway. It is also possible to use a USB or serial interface to KNX and use the EIBD software which can act as a link to the network.

Also you need a Russound amplifier which is connected to the network. You can use a TCP to serial bridge todo this.

####Used Rule

Here you can see the code for the rule which links the two protocols. The KNX switch sensor was named "Switch1" and the Russound command to turn on and off a zone are named "Zone1_On" and "Zone1_Off". If you have named your sensor and commands differently, you have to adjust the rule.

package org.openremote.controller.protocol
global org.openremote.controller.statuscache.CommandFacade execute;
global org.openremote.controller.statuscache.SwitchFacade switches;

rule "Turn Music on via KNX"
when
  $evt:Event(source == "Switch1", value == "on")
then
  execute.command("Zone1_On");
end

rule "Turn Music off via KNX"
when
  $evt:Event(source == "Switch1", value == "off")
then
  execute.command("Zone1_Off");
end

##Useful Links

  • Always check the OpenRemote forum for the latest developments.
  • Russound Website