From GrAF
Jump to: navigation, search

Various Russsound(R) Multiroom amplifiers can be controlled using a serial RS232C connector with a protocol called RNet(R).

russconnectd is a small, simple daemon to control these from EIB/KNX through eibd using a Linux-based system.


Communication-flow is like this: KNX <-> eibd <-> russconnectd <-> UDP <-> USB-serial+socat (or another serial device server) <-> RS232 <-> Russound


  • Directly control multiroom amps from KNX
  • Very low latency and resource usage, written in C with threads
  • Optimized KNX-wise for operation and status-display on i.e. hard switches as well as existing visualisation-solutions
  • Event and time-based polling, so local panels and other control mechanisms can be used simulataneous.
  • Simplified addressing scheme to avoid clicking together hundreds of them on sevral systems by hand.
  • Fully supports cascaded amps, up to 6 with 36/48 Zones (per daemon)
  • Supports turning off the amps with an actuator


  • Linux based system with standard libc, like WireGate ;) (Also tested successfully under OpenWRT, Makefile in SVN)
  • USB/Serial converter (optional)
  • At least one Russound, see supported devices
  • Some time


The group-address scheme used for KNX is kept very automatic so that only a start-address needs to be configured and the remainder can be calculated for 4-36 zones. given a start-address the next 256 GA are used per 6 Zones, currently pretty hardcoded It works like: Start-address given 10/1/0

0-9: System/controller-wide 10/1/1 W Power on/off all zones*1 10/1/2 WO Actuator powering the controllers (not yet)

10/1/10 W Zone 1 Power on/off 0/1 ...

See galist below for an example.


Tested devices:

  • CAA66
  • CAV66
  • CA4 (you must configure also SIX not four zones!)
  • C5
  • C3 (yet untested)


Newer models support Russound_RIO in addition to RNet which is completely different.


  • Implement direct actuator-control to switch on and off when no zones are on

see also TODO file in SVN.



On WireGate

Install package russconnectd:

via Webinterface: File:Example.jpg Howto install

or on the commandline/SSH-console:

apt-get install russconnectd


Builds the bridge between (USB-) serial adaptor and UDP for this daemon.

Russ socat 236.png For the local serial-port the device would be /dev/ttyS0 instead of /dev/usbserial-1-4.3 (and this depends on where the USB-serial was connected), the page lists all found on the bottom.

Or use another serial device server/gateway.

Building from source

Something like this should work:

Or get the .deb and do

dpkg-source -x
cd russ*
dpkg-buildpackage -b -us -uc


Edit /etc/default/russconnectd using your favorite texteditor and or Putty/WinSCP. Default settings should be ok, only change the startaddress (default 10/1/0) as needed.


DAEMON_ARGS="-d -i -l 16011 -a 10/1/0 -z 12 -u local:/tmp/eib -s"

Usage: russconnectd 
	-d	Run as daemon/No debug output
	-p <pidfile>	PID-filename
	-i <ip:port>	IP-Address:Port to send UDP-packets to russound
	-l <UDP-port>	UDP port to listen on
	-a <KNX address>	KNX start-address (see README)
	-z <number>	Number of Zones to support
	-u <eib url>	URL to conatct eibd like localo:/tmp/eib or ip:
	-s	(Optional) send all values to KNX on startup of daemon
	-k 0x71	(Optional) Keypad ID - defaults to 0x70 for CAx - use 0x71 for C5

Standalone Perl-script that creates configs (or snipplets for copy&paste) for:

  • CometVisu (XML)
  • WireGate (INI)
  • ETS4 (CSV)
  • Homeserver (ESF)
  • linknx (XML)


Download latest version from SVN:


Is just a calculation-sheet to help understanding the addressing-scheme.

Download latest version from SVN:



  • Look into syslog
  • Stop daemon (/etc/init.d/russconnectd stop) +
  • Start in console with all parameters from /etc/default/russconnectd without "-d" for debugging-output


Setup v0.2 on WireGate:

Files on Sourceforge:

SVN on Sourceforge:


Russound, RNet are Trademarks of their respective owner.