Anyone using Russound RNET component? I could use a walkthrough

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

Here is the post, if you can help please feel free to reach out.

Not sure what your setup is. But here is mine with which I was able to get a stable system.

  • Home assistant is running in docker on a Synology NAS.
  • I have a raspberry Pi 3 running Debian with the this USB to serial cable connected to port 0. The bottom left one closest to the ethernet port. There is no HA running on the RPi.
  • With the RPi 3 I am able to do all of this over Wi-Fi.
  • I am not sure your PUSR is supported (could be wrong, just never tried it).
  • I connected the RPi to a monitor and keyboard to gain access to SSH
  • Once I have access. I disconnected the keyboard monitor and mouse and restarted the RPi now connected via USB-serial to the Russound
  • Then SSH into the RPi via terminal on my Mac (not in HA or on the Synology)
  • Then began to run the commands listed above to install the pyserial to my RPi.
  • Then on my HA install I updated the configuration.yaml to include the RNET integration
media_player:
   - platform: russound_rnet
     host: 10.0.0.228 # <<- IP address of the RPi (do set the RPi to have a static ip on your router)
     port: 1337
     name: Russound CAA66
     zones:
       1:
         name: Kitchen
       2:
         name: Living Room
       3:
         name: Backyard
       4:
         name: Office
       5:
         name: Garage
       6:
         name: Dining
     sources:
       - name: Sonos # << add the names of your inputs. In my case I just have my Sonos attached
  • Restart the HA it should connect to the RPi - you should see a connection message in the terminal (running on my Mac in my case)
  • Once I am sure the commands work I then started the commands as a tcp_serial_redirect.service on the RPi.
  • Restart HA and your zones should show up as media player devices.

This should get you to control the Russound via HA. Mine is now running for weeks without an issue.

Though I do have Alexa integrated into HA, I personally don’t use it to control the Russound. My personal preference is to set up automations and scripts to turn on music based on workday/weekend, at the start of the day (piano music just runs in the background). It turns off then we leave (household “away”) and turns back on when we come home. It also turns off during “quiet hours”. So on, I am sure you get the picture.

So in your scenario, you are using the pi running PiOS 32bit Debian with pyserial running as an IP to serial gateway correct? You are simply putting in the IP address of your PI correct?

What settings are you running with pyserial? How have you configured your Russound? Did you have to change your Russound controller setting (i.e to “firmware” or position #2). Are you having to use a crossover cable or adapter?

Why port 1337?

It seems like the two separate IP to serial gateways that I tried should do the exact same thing. Did you have to open up the same port (1337) on your router?

Yes, I am using the RPi as a serial gateway and using its IP address.

The step by step configuration of the Pi is in my post above. The python command sets the RPi configuration.

No configuration needed on the Russound. Just keep the back switch on #2.

I just used the standard USB serial cable with the FTDI chipset that I linked to in the previous post. Some users have had issues with other chipsets.

With regards to the port 1337, I believe that the pyserial is setup to open that port (I could be wrong). You may be able to use other ports but I stuck with this default and it has been very solid since then.

Though I have not tested it, I understand that the Home Assistant RNET integration is not compatible with other IP-serial boxes such as the Global Cache ip2serial. I have not tried others to confirm or deny that they would work.

All in all the RPi method worked really well for me once I got the configuration correct.

1 Like

I’ve been using ser2net with a serial to usb cable for over a year with my Resound CAV. The integration only supports a single unit at the moment, the underlying library supports multiple units but the HA integration hard codes the unit id to 1. I’ve been meaning to get around to updating it but haven’t had a chance.

I’m currently running my HA on a rpi4 and use the portainer add-on to run a ser2net container to expose my Resound unit.

My /etc/ser2net.conf:

BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n

3333:telnet:0:/dev/ttyUSB0:19200 8DATABITS NONE 1STOPBIT banner

I work with docker on a daily basis so it was easiest for me, have to mount the rpi4 USB device in portainer to /dev/ttyUSB0.