Russound MCA C5 Tuner

Hello! I would also like to get the stations working on a Russound ST2 Tuner.
I have Russound MC88 working perfectly, and am able to see what channel the ST2 tuner is currently tuned to, but I have no control of the tuner itself

A coworker suggested a managed switch as a solution that has been holding for 3.5 days now.

I acquired a 48 port managed enterprise switch.

I then created an ACL (IP limited) for the Russound MCA C5. It can only access my dhcp server (router), my home assistant, and itself. It allows for both incoming and outgoing traffic from those devices only, all other traffic is blocked.

This along with the connection hack for the Russound has resolved this issue completely for myself and my coworker.

I hope this helps others with this issue.

1 Like

That’s good news. I had a customer that is a Russound dealer/installer tell me that the older MCA stuff was VERY picky about network switches and routers.

But I have had mine working for as long as 8 weeks before it crapped out. So please let us know if this lasts for a few weeks :slight_smile:

I have had mine working for months via RS232 now. So it’s not critical for me. But it would certainly be preferable to have IP working.

Did you ever come up with a way to control the tuner? Would be nice not to have to stream everything.

This is my basic music screen, using Logitech Media Server to feed a couple of Squezebox clients:

I recently applied your automation hack and it last only for a couple of days and then i got the IO loop error… i also have a managed switch but i am just starting out to learn how to use it.

Can you provide me the list of commands that you used to create the ACL and the rules for allow or deny?

Don’t know if this is applicable to my switch i am using a Brocade ICX-645048p

Thanks

I have an HP 2910al.

It’s all command line. But I set static IPs for the HA, Russound as well as the switch in my router. These are the IPs that I allow through. I also set the IP as static in the Russound through the SCS software to the same IP as I have set through the router for the russound.

After the initial setup of the switch through serial connection I use putty to connect via telnet. The commands are:

Show all ACL details: show access-list config
Show all ACL ports: show access-list ports all

Should be blank.

Get to config mode: config
From Switch(config)#:
Create ACL: ip access-list standard [aclname]
Enter ACL to edit: ip access-list standard [aclname]
Insert ACE to ACL: [sequence#] [permit/deny] [ipaddress] [mask]

Repeat for desired IPs to allow access to russound, this is the port number on my 2910al the russound is hooked into.

Add ACL to port attached to russound: interface [portnumber] ip access-group [aclname] in

Show running configuration: show running-config

I stream music strictly through a Chromecast audio.
One the chromecast is powered on all zones appear in a card with buttons to activate the zone for the Chromecast input or turn it off, as well as to control zone volume.

I also have the MCA C5 in a zwave plug switch if I wanted to power cycle it when it had issues in the past.

Then in each room it can also be controlled.

My coworker and I have got the internal tuner working I have created a repository with instructions here:

This is what it looks like on my installation.

Showing the Sources added to the dropdown from the internal radio:

Showing the radio text:
Radio playing

Using the custom:mini-media-player:
minimedia player

The source names are generated from the name of the preset when you setup your russound in the scs software as follows prepended with the source name. In my example my internal radio source is called ‘Tuner’ so the preset source selections will appear as ‘Tuner: PRESET NAME’.

This does not work on external tuners. Just the internal one based on type, and as I have an MCA-C5 the type is: if source_type == “RNET AM/FM Tuner (Internal)”
If your internal tuner is a different type this will not work.

Thankyou - russound_rio2 is great!. Easy to implement and works fine.

I too have connection drop outs on my MCA-C5. It seems to be related to the router being used. Russound have a “Technical Tip” called Network Troubleshooting. There are comments on the router configuration; refer attached Router Config|690x219

Is there a way to attach a pdf document to a post?

Thanks for the tip, worth looking into.

I have a managed switch with an access control list for the russound to only communicate with the DHCP server, hassio, and one PC for programming.

I then assign a static ip in the russound and on the router. This has worked great and you can get old managed switches for pretty cheap.

What type of russound do you have? If this works well I may create a pull request. Once I figure out how.

I have a MCA-C5. The IP address is DHCP assigned.

I find that the MCA-C5 stays IP connecetd if I leave a channel turned on and the volume set to zero. Thus far that has worked for about 3weeks . . .

Update - this is no longer working to maintain the connection. Still not resolved.

I’ll investigate getting a managed switch.

Follow-up to the post above - using a managed switch to restrict the access to the Russound has solved my problem.

I am however getting the following error:
WARNING (MainThread) [homeassistant.loader] No ‘version’ key in the manifest file for custom integration ‘russound_rio2’. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of ‘russound_rio2’

Thanks for this i have now taken the steps to create the ACL but i am messing something out can you provide me the output of the ACL in the show run ??

I have an HP 2910al that was super cheap.

Once it is initially configured via serial connection I can remote in via Telnet (I use Putty), I then create the ACL to permit inbound traffic for the IP address of the Russound MCAC5 to the port the russound is attached to.

Before doing this your russoundshould have static a IP address and you should know it.

  1. Log into Switch via telnet.
  2. Enter config: (command below)
    config
  3. Create ACL: (command below)
    ip access-list standard RussoundACL
  4. Enter ACL to edit: (command below)
    ip access-list standard RussoundACL
  5. Create ACL rules: (command below)
    permit host 10.0.0.3 (use the ip for your russound instance, this is for inbound traffic)
  6. Exit ACL edit prompt: (command below)
    exit
  7. Add ACL to port the Russound is plugged into: (command below)
    interface [portnumber] ip access-group RussoundACL in
  8. Save configuration to memory: (command below)
    write memory
  9. Reboot switch if necessary: (command below)
    reload
  10. Restart your russound audio controller, wait until it boots up then restart home assistant.

This has been rock solid for me. Obviously different switches will have different configuration methods, this is only for HP 2910al that I know of.

Good luck.

I am getting the following error related to russound rio_2 (and therefor not updating to 2021.6.x). Are you in a position to look at this?

Logger: homeassistant.loader
Source: loader.py:794
First occurred: 6:19:33 AM (1 occurrences)
Last logged: 6:19:33 AM

No ‘version’ key in the manifest file for custom integration ‘russound_rio2’. As of Home Assistant 2021.6, this integration will no longer be loaded. Please report this to the maintainer of ‘russound_rio2’

I will look at this today and update my version as well. Thank you for pointing it out. I will post when I have a working version.

@nat_neels is there still a known issue with >= HASSIO 2021.6 versions?

Cloned your REPO into my /config/custom_components/russound_rio2/ directory, then changed my media player entry in configuration.yaml file to use the russound_rio2 platform, but the server won’t restart. It does restart if I leave the platform russound_rio, and I do get the radio presets as source options, but I get log warnings regarding slow start for the russound integration.

I very well may be missing something on the install though, as I’m not really sure what to do regarding your install instructions step below:

4.Don’t forget to remove the original russound_rio platform.

I don’t think you are talking about removing any code from the core of HASSIO are you?

I have my configuration.yaml as follows:

media_player:
  #Russound Integration
  - platform: russound_rio
    host: 10.0.0.0
    name: Russound

Id say if it shows your radio stations then its working that way. I will change the documentation.

Definitely dont remove any code from the core.

I’ve returned to try ing to control my MCA-C5. The integration does not seem to be working - are you still using it?
Also, shouldn’t the configuration.yaml call russound_rio2, not russound_rio.

I just started using this integration this past week. Dropping the files in the custom_components directory and then specifying “russound_rio” does indeed use the rio2 code i pulled down from github.

I’m having issues with the exception loop issue, despite locking down the port with some aggressive ACL’s.

I wonder if there is a way to restart the script/integration when it gets peer reset rather than having to reload home assistant completely. Thoughts?

I updated the code yesterday for the loop error after updating my HA instance. It is now working.

This error was a result of moving to python 3.10.

1 Like