Control Russound CA-66 on HassOS with RNET using Ser2net and Portainer

After finally managing to make this work, it seems that the RNET protocol isn’t fully implemented. It’s missing bass/treble/balance control and things like party mode. Is that correct or am I missing something? I’d love to see the rest of the functions implemented but lack the knowledge to do it myself. Does anyone have suggestions about how to request it as a feature upgrade? I’m not savvy tech enough to know how best to go about this. It feels like it should be pretty straightforward for someone that can code given the rest of the protocol is implemented but again, I could be wrong.

bump on my previous post. Does anyone have tone controls working with their Russound?

Hi,
I’m in the same shoes. I missing keypad colour switching. sending text to display and the one you mentioned above. I used all this function on Homeseer, there is paid plugging which I have in VB.
It would be great if someone help to complete this

Long time lurker here. You lot all seem to know your stuff. I wish i could get this working. I have been struggling with adapting this guide to suit Home Assistant Yellow. Put it to me straight, can it even be done?

In the docker container setup all of the file paths are for directories that don’t seem to exist on HASS Yellow.

I have the Russound integration working well with Home Assistant and CAA66.
I would like to add an automation which will switch on a zone from the mini-media player, based on a trigger. I have a working trigger and 30 second delay, but cannot figure out the action.
Could anyone advise an appropriate’Action’ for the automation to turn on a zone name/number?
Thank you

@fiachraf How did you get it to work. I tried a while back with RNET and Ser2net with no luck.

I edited the top post for information on how to create a local add-on and bypass portainer.

I disabled portainer for now on my machine and it works with this new add-on.

Thank you very much biochemguy for your work.
I am trying to use the new non-Portainer method, but HA is not importing the Russound entity info.
The Russound add-on is starting and the log shows that services have successfully started.
In config.yaml, i have tried both

media_player:
  - platform: russound_rnet[^2^][2]
    host: 127.0.0.1
    port: 3333
    name: Russound

and also

media_player:
  - platform: russound_rnet
    host: 127.0.0.1
    port: 3333 
    name: Russound

but the entities do not show up.
I have also tried replacing 127.0.0.1 with the IP address for the HA, but no success.
I have tried using

dmesg | grep tty

and it shows

usb 1-1.1: pl2303 converter now attached to ttyUSB0

When I go to Settings >>Devices, I see a device called Russound, but it only shows sensors for CPU, memory etc.
I would be very grateful if anyone could help.
Thank you

This is almost great. Except I have 8 zones, via 2 CA4’s (old school). I can only get 6 zones to be found. I’m guessing this is a limitation of the platform (given it was probably written for CA66’s specifically. Anyone know if a hack is available to expand it to cover 8 zones (or more!)?

I think you are on the right track. I noticed that a typo was introduced when I copied the config settings for the add-on how-to. There should not be any weird brackets in the config. It is now fixed.

As for the usb, it is normal to be connected as a ttyusb as this is what makes the serial connection to the russound system.

Your ip address should be 127.0.0.1 as the usb is plugged on your local machine. The russound add-on opens the port 3333 to communicate with home assistant.

I have the same things show up like you when I look at my settings>devices

Check in your settings>devices & services>entities. Your entities should compile as media_player.kitchen or whatever you named them.

Likely… You would have to look at the Rnet protocol or the home assistant interaction with this protocol found here

Thanks @biochemguy , I think you’re right, and I don’t mind having a go at hacking the media_player.py, but I can’t actually find this file on my HA. Should I have this file local that I can edit/play with? (I’m very new to HA, and I’ve just been building dashboards and installing HACS… adding the config.yaml for my Russound was the first ‘backend’ stuff I’ve really had to)

I suspect I’ve exposed my absolute newbie status here… I think the rnet code is embedded in the core HA system, so I probs need to raise a bug report?

I found a fix for this (well, a work-around actually). If you’re using a CA4 controller, you must create blanks for slots 5 and 6, and start the speaker for the linked second controller from slots 7-10.

My config looks like this:

# Russound Speakers
media_player:
  - platform: russound_rnet
    host: 192.168.1.104
    port: 2401
    name: Russound
    zones:
      1:
        name: Study Speaker
      2:
        name: Laundry Speaker
      3:
        name: Rumpus Speaker
      4:
        name: Bedroom 1 Speaker
      # controller 2 - zone 1 (connected via RNET link ports)
      5:
        name: xxBlank1 Speaker
      6:
        name: xxBlank2 Speaker
      7:
        name: Patio Right Speaker
      8:
        name: Patio Left Speaker
      9:
        name: Living Speaker
      10:
        name: Kitchen Speaker
    sources:
      - name: iPod
      - name: Radio
      - name: CD
      - name: XM1
1 Like

Dear community and the absolute MVP who has created this add-on!
I am a total newbie and have been trying to make this work for at least a month, and need som help.

My setup: RPI 4 running HASS OS + RS232 USB device (checked with PC - reads and writes correctrly) + Russound CAV6.6 connected directrly to RS232 port

What I have tried: portainer method, add-on method, bare Raspbian with this code

The best I’ve got: clean HASS OS install + add-on results in Russound as device identified, shows CPU and RAM usage and OS version (which is correct)
but no zones control or anything else.

My HA Core log shows following:

Error trying to connect to Russound controller.
21:57:29 – (ERROR) components/russound_rnet/media_player.py
Error handling request
21:57:27 – (ERROR) /usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py

Any suggestions where to look at?

(also checked:
HASS OS shows RS232 serial adapter on correct USB0
terminal and DMESG | TTY tried already - just gives a full list of devices, no results
multiple reboots and restarts both of Russound and RPI and HA)

would really appreciate any help! this intergration was one of the main goals of RPI purchase

ok, I modified my repository on Github to hopefully fix this issue. simply replace the Dockerfile and config.yaml with the new ones in your folder. Then update the add-on in Home Assistant to the new version. let me know if this works.

omg, it works! huge huge thanks!

1 Like

Hi All

I am new to HA and this is my issue I have a cav 6.6 connected via serial on com 4 and I can talk to it using PC power tools, I have set up the repository via samba and have copied the files in and I have also tried the other method but I get this error .

My HA is running in a VM machine on windows and I have enabled both the Com 4 serial and the USB via the settings.

My Pc says that the USB port is port 3 and I have connected at 19200, the only thing I cant seem to find is where to check the ports, I have left them at 3333 in the configuration.yaml

My Config is here.
media_player:

  • platform: russound_rnet
    host: 127.0.0.1
    port: 3333
    name: Russound
    zones:
    1:
    name: Main Bedroom
    2:
    name: Living Room
    3:
    name: Kitchen
    4:
    name: Bathroom
    5:
    name: Dining Room
    6:
    name: Guest Bedroom
    7:
    name: Basement Recroom
    sources:
    • name: Computer

The Install fails instantly when I try on the manually added method and the other method via the 3 dots gives this.

Cmd(‘git’) failed due to: exit code(128) cmdline: git clone -v --recursive --depth=1 --shallow-submodules – Ser2Net-for-Russound/Ser2Net-for-Russound/ha-addons at master · biochemguy/Ser2Net-for-Russound · GitHub /data/addons/git/8bf4a35a stderr: 'Cloning into ‘/data/addons/git/8bf4a35a’… fatal: repository ‘Ser2Net-for-Russound/Ser2Net-for-Russound/ha-addons at master · biochemguy/Ser2Net-for-Russound · GitHub’ not found ’

I am sure I am making a noob error.
TIA
Anni

Hello. I am receiving the following logged errors when running this, any thoughts?

2024-07-31 21:44:13.824 ERROR (MainThread) [homeassistant.helpers.entity] Update for media_player.kitchen fails
Traceback (most recent call last):
File “/usr/local/lib/python3.12/site-packages/russound/russound.py”, line 165, in get_zone_info
self.send_data(send_msg)
File “/usr/local/lib/python3.12/site-packages/russound/russound.py”, line 245, in send_data
self.sock.send(data)
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 944, in async_update_ha_state
await self.async_device_update()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1298, in async_device_update
await hass.async_add_executor_job(self.update)
File “/usr/local/lib/python3.12/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/russound_rnet/media_player.py”, line 99, in update
ret = self._russ.get_zone_info(self._controller_id, self._zone_id, 4)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/russound/russound.py”, line 184, in get_zone_info
return return_value
^^^^^^^^^^^^
UnboundLocalError: cannot access local variable ‘return_value’ where it is not associated with a value

I created an addon for doing this.

https://github.com/breniii/USB-Serial-Russound

1 Like