I’d like to first thank @noahhusby for his amazing work on the Russound RIO integration. I wanted to control my system for years on another platform and was never able to get it working.
I have a question regarding presets - My system has 2x MCA-66 amplifiers, a MBX-PRE and a ST1 tuner. I’m not sure if it’s possible to store presets on this system in the traditional sense. The only thing I have been able to find using the my russound app is system favorites, which as far as I can tell is the newer version of a preset on this particular system. When I go into the media players for any particular zone and open the browse media section, everything is empty. Am I missing something? What would really be nice is the ability to browse SXM / radio channels on the MBX-PRE through Home Assistant, but even having the presets/favorites working would be amazing.
So presets are a partially implemented feature at the moment. Standard presets for tuners should be implemented. If you are able to confirm that your ST1 is configured as one of the following source types in your MCA-66 stackup:
I should note it is entirely possible that the ST1 is a separate type and I just forgot to list it in the integration. I don’t have an ST1 unit to test on, so might be helpful to get some confirmations from you.
This would allow one of the 1-36 presets on the ST1 to show up in the interface. Not sure about how to configure presets on the ST1 specifically, but I assume its similar to how the MCA-C5 internal tuner is configued. In the SCS-C5 software (or Web UI for your units), there should be boxes to configure radio presets for the ST1. As long as the ST1 is one of the types in the list below, this feature should function correctly. Once again, it’s possible I missed one, so let me know if it’s a different type for you.
And yes, system favorites are a newer implementation. I don’t have an MBX unit so some of those streaming features are currently missing. If my MCA-C5 supports basic system favorites, I’ll work on getting those added to the integration, then we can get specific MBX features added with community support.
There is also a way to save these favorites programmatically but I haven’t brought that into Home Assistant, yet.
I found the source types in the MCA-66 Web UI, so I can confirm the ST1 is a separate device type that was missed.
My relevant sources are configured as:
Source 2: Russound ST1 AM/FM Tuner
Source 3: Russound Media Streamer (this is my MBX-Pre)
The MCA-66’s Device Type dropdown explicitly contains “Russound ST1 AM/FM Tuner”, so it isn’t being configured as “RNET AM/FM Tuner (External)”. I think adding “Russound ST1 AM/FM Tuner” to PRESET_COMPATIBLE_SOURCES should allow the ST1 presets to be exposed.
The ST1 has 36 presets (6 banks x 6), and I can test those directly on my system.
For the MBX-Pre, the MCA-66 identifies it as “Russound Media Streamer”. This may be useful for the System Favorites work you mentioned.
I’m happy to test any changes you make against the actual hardware. If useful, I can also capture/provide the RIO responses or commands for selecting ST1 presets and working with the MBX-Pre favorites. That may help determine exactly how Russound implements these features.
Yes your assumption is correct, we should see presets function properly if the ST1 type is added to the array.
If possible, can you check a few values on the Russound unit by sending commands directly? You can do this from below:
I mainly want to confirm the type of the source as the unit sees it. There is sometimes a discrepancy between the type on the Web UI and what is actually sent.
Open your terminal of choice
Run telnet [IP of primary (1st) MCA-66 unit] 9621
Type VERSION and hit enter
Run S[2].type
Run S[2].B[1].P[1].valid
Take a screenshot to upload the results
Note: You may need to temporarily disable the Russound RIO integration on HA while performing this test. Conflicting commands may result in bad results.
Additionally, if you are on windows, some steps need to be taken to enable the telnet command:
Type “Turn Windows features on or off” in the taskbar search box and click the top result.
Scroll down the list and locate Telnet Client.
Check the box next to Telnet Client and click OK.
Wait for Windows to apply the changes, then click Close.
I also checked on favorites. We currently don’t support either V1 or V2. I will work on V1 for the next release cycle as my unit supports it. Russound Media Streamer is the expected response for all of the MBX devices as well as older streamers so that makes sense.
If you feel like doing some more investigating:
Just as a reference, the Russound API docs can be downloaded from here: https://russound.com/document-center/rio-protocol-version-1-16-03/download/. The specific document for the MCA-66 is RIO Protocol for Third Party Integrators.pdf. This has a list of all commands. If you wanted to some some deeper diving on your own to test favorites, feel free to do so. Additionally, there is a source mode API for your MBX-PRE. We currently don’t support source mode as I don’t have a unit to develop against, and Russound likes to constantly deviate from their own documentation so it’s really hard to develop. Regardless, favorites are mostly a controller (zone-mode) based thing so we shouldn’t even need source mode for that.
Connected to the primary MCA-66 at 192.168.1.6 on port 9621.
VERSION
S VERSION=“01.16.03”
S[2].type
E Command not found: S+illegal-characters
S[2].B[1].P[1].valid
E Command not found: S+illegal-characters
I also tried ?, HELP, S, S[2], and the equivalent parentheses syntax, but those were rejected as well. The same results occur using nc instead of telnet.
Trying 192.168.1.6…
Connected to 192.168.1.6.
Escape character is ‘^]’.
VERSION
S VERSION=“01.16.03”
GET S[2].type
S S[2].type=“ST1 AM/FM Tuner”
GET S[2].B[1].P[1].valid
S S[2].B[1].P[1].valid=“TRUE”
^]
telnet> quit
Connection closed.
Amazing thank you
Happy to test this for you as well when you add, just let me know
ran this for the mbx-pre just to see what it said…
Trying 192.168.1.6…
Connected to 192.168.1.6.
Escape character is ‘^]’.
GET S[3].type
S S[3].type=“Russound Media Streamer”
GET S[3].B[1].P[1].valid
E InvalidKey (error near: GET S[3].B[1].P[1].valid^)
ST1 presets have been added, just waiting for review from the core devs
I’ve got a few more commands to run when you get the chance:
GET System.Support.favoritesV2
GET System.favorite[1].valid
GET System.favorite[1].name
GET C[1].Z[1].favorite[1].valid
GET C[1].Z[1].favorite[1].name
GET S[2].Support.favoritesV2
GET S[3].Support.favoritesV2
Assuming there are no favorites for the streamer set, you should be able to play some media from your MBX-PRE on a given zone and save it. Let’s say you are playing something from the MBX-PRE on zone one. You should be able to do:
EVENT C[1].Z[1]!SaveZoneFavorite "Insert name of favorite here" 1 to save the current thing as a favorite for that zone.
Or likewise
EVENT C[1].Z[1]!SaveSystemFavorite "Insert name of favorite here" 1 to save a system favorite (can be used on any zone).
To restore those favorites you can do (where C is controller number, and z is zone number): EVENT C[c].Z[z]!RestoreZoneFavorite <fav number 1-4*>
OR
EVENT C[c].Z[z]!RestoreSystemFavorite <fav number 1-32>
If you can test these functions (or redo the functions listed after creating some favorites), that should be plenty to get started on favorites.
I’m away for the weekend. I do have remote access so was able to run the first set of commands. I’ll certainly try the event ones for you when I get back but in the meantime, here’s the output
Trying 192.168.1.6…
Connected to 192.168.1.6.
Escape character is ‘^]’.
GET System.Support.favoritesV2
S System.Support.favoritesV2=“TRUE”
GET System.favorite[1].valid
S System.favorite[1].valid=“TRUE”
GET System.favorite[1].name
S System.favorite[1].name=“002 SiriusXM Hits 1”
GET C[1].Z[1].favorite[1].valid
S C[1].Z[1].favorite[1].valid=“FALSE”
GET C[1].Z[1].favorite[1].name
S C[1].Z[1].favorite[1].name=“F1”
GET S[2].Support.favoritesV2
S S[2].Support.favoritesV2=“FALSE”
GET S[3].Support.favoritesV2
S S[3].Support.favoritesV2=“TRUE”
^]
telnet> quit
Connection closed.
So, I forgot I could use the My Russound App over the VPN. I can tell you that YOU ARE THE MAN!! these commands worked to save and restore, and best part, the last one in system favourite 2 was previously stored from the MBX-PRE as a SXM channel and it worked also!
Trying 192.168.1.6…
Connected to 192.168.1.6.
Escape character is ‘^]’.
EVENT C[1].Z[2]!SaveZoneFavorite “101.9 FM” 1
S
EVENT C[1].Z[2]!RestoreZoneFavorite 1
S
EVENT C[1].Z[2]!SaveSystemFavorite “89.9 FM The Wave” 1
S
EVENT C[1].Z[2]!RestoreSystemFavorite 1
S
EVENT C[1].Z[2]!RestoreSystemFavorite 2
S
N S[3].MMScreen=“SourceNowPlayingScreen”
^]
telnet> quit
Connection closed.