Anyone using Russound RNET component? I could use a walkthrough

My longest hang up, and my best guess about why yours isn’t yet working, is with the Pi-serial interface. I wish I had more time to help you troubleshoot this but right now I just don’t.

On the CAV6.6, you can remove the cover on the front and check that the switch is set to the correct RS-232 port (front or rear).

I remember there was some way to manually send commands to the device to test if it’s receiving them but for some reason, I didn’t record any notes about that.

I’m fairly certain that the code in HA is rock solid at this point so it must be something else.

Here are all the notes I took, I wish I had a better tutorial for you. I also was just winging it at a level a bit over my head. Don’t give up!!!

Install pySerial as root
‘sudo python -m pip install pyserial’

Create tcp_serial_redirect.py in /usr/local/bin
‘cd /usr/local/bin’
‘sudo nano tcp_serial_redirect.py’
paste code from: ‘https://github.com/pyserial/pyserial/blob/443e27de14a9a12899c8db600e44428927fc5364/examples/

Start with this command:

‘python /usr/local/bin/tcp_serial_redirect.py --rts 1 --dtr 1 -P 1337 /dev/ttyUSB0 19200’

If no errors, create systemd service file:

‘sudo nano /etc/systemd/system/tcp_serial_redirect.service’

'[Unit]
Description=tcp_serial_redirect
After=network.target

[Service]
ExecStart=/usr/local/bin/tcp_serial_redirect.py --rts 1 --dtr 1 -P 1337 /dev/ttyUSB0 19200
User=pi
Restart=always
RestartSec=15min
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=tcp_serial_redirect

[Install]
WantedBy=multi-user.target’

Set to start on boot

‘sudo systemctl daemon-reload’
‘sudo systemctl enable tcp_serial_redirect.service’
‘sudo systemctl start tcp_serial_redirect.service’

hoffsta, thank you so much. I will go over that in a short bit. I also have a sense it is outside of HA, as i it seems it cant connect to the CAV at all. Will update in a bit.

Do you think it matters that i could only install pyserial with the command
‘sudo pip3 install pyserial’ not ‘sudo python -m pip install pyserial’ as you have it?

I have back RS-232 on; I had it hooked up to a HTPC w/ USB to serial cable, so know it accepts that.

Does it matter if when i run this line alone in Putty:
‘python /usr/local/bin/tcp_serial_redirect.py --rts 1 --dtr 1 -P 1337 /dev/ttyUSB0 19200’
it return SyntaxError

How is the 1337 port determined? does it need a port, is this random?

The log shows

17-04-25 09:31:33 ERROR (Thread-4) [russound.russound] Error trying to connect to Russound controller.
17-04-25 09:31:33 ERROR (Thread-4) [russound.russound] [Errno 111] Connection refused
17-04-25 09:31:33 ERROR (Thread-4) [homeassistant.components.media_player.russound_rnet] Not connected to 127.0.0.1:1337

But, i can see serial device is detected

pi@raspberrypi:~ $ dmesg | grep tty
[ 0.000000] Kernel command line: 8250.nr_uarts=0 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x232e109 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:32:E1:09 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=PARTUUID=d4c432f5-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[ 0.001348] console [tty1] enabled
[ 0.971560] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[ 2.060033] systemd[1]: Starting system-getty.slice.
[ 2.065404] systemd[1]: Created slice system-getty.slice.
[ 3.899983] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0

Thanks again for helping me.

Also, I tried to use packetsender on my PC to send a command to the Russound (via Pi @ 192.168.1.X - port 1337 or any random port), but Error comes back as “Could not connect”.

And does it matter in which of the 4 USB slots on the Pi that the cable is plugged in to?

Ok, I am wasting too much time on this, and throwing in the towel. I cant even get it to connect with packetsender. While HA material tries to make it sound simple to setup, I realize this is not the case and requires programming skills that i dont have right now. And in this case, it is just attaching hardware even before HA.

Thanks for trying hoffsta.

EDIT-well i have a hard time giving up. I have kind of cheated, and have a iTach IP2SL i hooked up, and it is sending signals to the russound. So i have been able to have it show on my states page. But it is flaky.

dont want to use it. I am pretty sure now that when using USB-serial on the Pi, that it is not sending out on the right baud rate, or not on the right port, or something. not sure how pi gets the info, as not sure tcp_redirect is running, and not even sure pyserial is.

I know that since I could have also used a walkthrough, here is what I did after struggling for a few days.

First off, buy a good (non chinese knock-off) of USB to RS-232 prolific or FTDI. I found one on amazon for about 15$

After, I tried using tcp_serial_redirect.py for a while, I could never make it work. I used ser2net and followed this guide.

To sum up what I did:

sudo apt install ser2net -y

Determine where your USB is located using, mine was ttyUSB0:

dmesg | grep tty

Then edit /etc/ser2net.conf. using

sudo nano /etc/ser2net.conf

Here modify the file to comment everything and add:

BANNER:banner:CONSOLE LAB Terminal Server TCP port p device d serial parms srn
 
TRACEFILE:tr1:/var/log/ser2net/p-Y-M-D-H:i:s.U
6271:telnet:0:/dev/ttyUSB0:19200 8DATABITS NONE 1STOPBIT banner tr=tr1 timestamp

Save that file (Ctrl-o) and to make Ser2Net starts up automatically:

sudo nano /etc/rc.local

Add the following above exit 0

/usr/local/sbin/ser2net -n -c /etc/ser2net.conf

You can create a log directory for ser2net sessions:

sudo mkdir /var/log/ser2net

I modified my russound in configuration.yaml like so:

 #Russounds @ dev/TTYUSB0
 media_player:
   - platform: russound_rnet
     host: 127.0.0.1
     port: 6271
     name: Russound
     zones:
       1:
         name: Bathroom
       2:
         name: Living Room
       3:
         name: Kitchen
       4:
         name: Outdoor
     sources:
       - name: TV
       - name: PC
       - name: Android
       - name: Bluetooth

Finally reboot your system. It worked for me and I hope it’ll works for someone else. Thanks to @gth758y for his guide.

4 Likes

thanks for this!!!
Work like a charm on HASSIO/raspbian stretch.
Having a 2004 cav6.6 controlled in home assistant was unexpected until I’ve found this thread.

hello @waltre, i opened a post about integrating russound with my knx system.
Maybe you can help me.
https://community.home-assistant.io/t/integrate-knx-russound/194343/8

i am not able to display all zones in the same ‘card’. I tryed to instal Mini Media Player, but not working because of entity id.
image

and also, not able to create rules.
i am blocked with entity ID
I also tryied to create a group

media_player_Russound:
  name: media_player_Russound
  entities:
    - media_player.Russound.Etage.Mezzanine
    - media_player.Russound.Etage.SDB
    - media_player.Russound.RDC.Cuisine
    - media_player.Russound.RDC.Salle_à_manger
    - media_player.Russound.RDC.Salon
    - media_player.Russound.RDC.SDB

but getting error while checking configuration
Invalid config for [group]: Entity ID media_player.Russound.Etage.Mezzanine is an invalid entity id for dictionary value @ data['group']['media_player_Russound']['entities']. Got ['media_player.Russound.Etage.Mezzanine', ...

tks for your help.

Hi,

I guess you have 2 questions:

  1. How to put all the zones in one card?

  2. How to get rid of the error message on the Russound media_player entities?

1- card setup
here is my config to put all the zones on 1 card - my goal was to only be able to turn on/off and be able to chose the source:

cards:
  - content: ' '
    title: MULTIROOM SPEAKER CONTROLS
    type: markdown
  - entity: media_player.kitchen
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: false
    type: 'custom:mini-media-player'
  - entity: media_player.master_bedroom
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: false
    type: 'custom:mini-media-player'
  - entity: media_player.thomas_bedroom
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: false
    type: 'custom:mini-media-player'
  - entity: media_player.office
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: false
    type: 'custom:mini-media-player'
  - entity: media_player.front_deck
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: false
    type: 'custom:mini-media-player'
  - entity: media_player.back_deck
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: false
    type: 'custom:mini-media-player'
  - entity: media_player.master_bathroom
    group: true
    hide:
      controls: true
      icon_state: false
      power_state: false
      source: true
    type: 'custom:mini-media-player'
state_color: true
type: vertical-stack

then this is what I get:
image

2 - For the error message

  • it seems like you’ve got a solution on the other thread by replacing the ‘.’ by ‘_’ for naming the media_player entities

W.

1 Like

you saved me !!! tks a lot.

For those interested in migrating to HassOS, I created a post on how to intergrate Russound RNET with Portainer, as I recently migrated my Homeassistant to the new HassOS. It might save someone some troubleshooting time.

You can find the link here

I found a used cav6.6 for pretty cheap. I was originally going with the monoprice 6 zone but might pick one of these up instead. Can someone confirm that you can group multiple zones together to play from a single source via hass? I’ve got 3 chromecast audios I plan to use as source per family member.

Thanks.

As with most multi-zone systems, with the Russound system, you can choose the source for each zone and use the same source for multiple zones. I have two sources, and most times, only use one on multiple zones.

What’s fun with Home Assistant is, if there is a trigger, you can automate the source. For example, when the TV starts playing from Chromecast, the source switches to the TV for specific zones and it does the same when music starts playing with Spotify.

1 Like

I have a CAA66 that can be controlled via the RS232 using RNET. I am trying to get it controlled via HA. Found this thread and made a lot of progress but I may be missing something.
I have gotten this far:

  • Got a Raspberry Pi with ser2net installed in the shelf with the Russound caa66. I connected the RPi to the serial port using a USB to RS232 cable.
  • I opened a terminal window on my Mac and SSH into the RPi. Added the python commands to listen on the incoming commands and redirect to the USB port.
  • Added the platform RNET to the HA config YAML (running on a Synology NAS)
  • Now when I start HA the Russound zones all do show up and can be controlled as expected.

Issues:

  1. Link between HA Synology and the RPi connected to the Russound drop after some time. Also if I close the terminal window on the Mac the connection is lost (I am a novice user when it comes to the terminal).
  2. I tried to have the port listening start up on the RPi with reboot but I cannot seem to get it to work.

Question:

  1. Can I have the RPi start listening on its reboot?
  2. Can HA reconnect to the RPi without having to manually restart HA? Could it be done as a script instead?

I am probably missing something obvious.

Can you walk through your process for getting ser2net working on the PI please? I am trying to use a IP to serial converter and having no luck. Did you need to use a null modem cable into the serial port?

I used pyserial using the following steps

I used a USB to serial cable this one on amazon worked

Install pySerial as root on the RPi

sudo python -m pip install pyserial

Create tcp_serial_redirect.py in /usr/local/bin

cd /usr/local/bin
sudo nano tcp_serial_redirect.py

paste code from: [GitHub](https://github.com/pyserial/pyserial/blob/443e27de14a9a12899c8db600e44428927fc5364/examples/ 11)

Start with this command:

python /usr/local/bin/tcp_serial_redirect.py --rts 1 --dtr 1 -P 1337 /dev/ttyUSB0 19200

If no errors, create systemd service file:

sudo nano /etc/systemd/system/tcp_serial_redirect.service

Add the following to the file

Description=tcp_serial_redirect

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart= python /usr/local/bin/tcp_serial_redirect.py --rts 1 --dtr 1 -P 1337 /dev/ttyUSB0 19200
User=pi
Restart=on-failure
RestartSec=15
KillMode=process
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=tcp_serial_redirect

[Install]
WantedBy=multi-user.target

Set to start on boot

sudo systemctl daemon-reload
sudo systemctl enable tcp_serial_redirect.service
sudo systemctl start tcp_serial_redirect.service

Hope that helps. I have found it to be really reliable.

1 Like

So before I start, did you install HA in a docker container on a raspberry pi?. If I ssh into the pi using the regular HA image, sudo causes the response that the command is not found.

Thanks so much. This is super useful. I don’t want to ditch my MCA-C5’s and spend $10K on 88’s just so I can integrate Alexa.

Sorry, I re-read the documentation, I thought for some reason that you had to run it in a docker environment. A simple Python environment is all that is required, I guess for those folks that can’t deal with python, then the Pi image makes sense.

I will take a run at it and let you know how it goes. Once this is up and running I will post a simple Pi3 image that someone can burn. There are many thousand people out there with a CAV for MCA that are looking to integrate their systems with Alexa. The forums are rife with the ask. I think that this would be an excellent solution if we can make sure that it is stable and relatively simple for folks that don’t know how to set things up.

Yes you are correct that you would run the command in any terminal SSH session and not in the docker environment. Sorry just saw the message.
I do agree that this could be more simple. It took me a few months to get things right (kept breaking things walked away for day out of frustration till I got it right). Now it has been rock solid. I actually like the integration which has allowed me to control.
Just added some automations to start piano music in the mornings for the “spa” feel (wife really loves it).

Thanks so much for your help. I did try loading up Debian on a PI and tried to install HA, but it locked up. Any advice? I offered an $800 reward for anyone who could get it running and so far no takers. I even got one of these devices to see if it was my serial interface, and still no joy.

Just about to post a new topic here, to see if anyone who knows this code can get it working. I don’t want to spend 15K on a pair of 88’s just to use Alexa