Zum Hauptinhalt springen

Russound Smart-Home-Integration, kostenlos und Open Source

Russound-Integration für Gladys Assistant

Russound multiroom controllers, local over RIO: zones, power, volume, mute, source, now playing.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

Control from Gladys each zone of your Russound multiroom controllers with the RIO protocol on their network port (MCA-66, MCA-88, MCA-88X, MCA-C3, MCA-C5, MBX-PRE, MBX-AMP…), locally, without any cloud: power on, standby, volume (capped), mute, source and what is playing.

Important. This integration has never been tested with a real device: it was written from the aiorussound library (the one Home Assistant uses) and tested against a fake controller only. Your feedback is welcome. Unofficial integration, not affiliated with Russound.

Installation​

  1. Plug the controller into your network and give it a fixed IP address in your router (reserved DHCP lease).
  2. In Gladys, install the Russound integration, then open its configuration.
  3. Type the IP addresses of the controllers, separated by commas (for example 192.168.1.40). The RIO port is 9621; for another one, add it: 192.168.1.40:9622. One address is enough for controllers chained over RNET behind the first one.
  4. Choose the volume cap (25 out of 50 by default).
  5. The zones appear in the Discovery tab (one per named zone): create the ones you want.

The integration keeps a connection open with each controller and watches every zone and source: what is changed on a keypad, a remote or the app shows at once in Gladys. The zones are also read again every minute.

Only the network port is supported: the RS-232 serial port is not (a Gladys integration runs in a container without access to the serial port), nor the RNET-only protocol of older models (CAV, CAM) without a RIO port.

What you get, for each zone​

FeatureGladys typeNote
Powerbinary state (read only)1 zone on, 0 off or controller unreachable
Power onbuttonZoneOn
StandbybuttonZoneOff
Volumemusic / volume (0 to 100)100 % = the cap
Mutebutton (television / mute)each press reads the state, then sets the opposite
Sourcedropdownthe named sources of the controller
Now playingtext (read only)"artist - title", or the station; empty when zone off

On purpose, no switch: an "everything off" or "everything on" of a voice assistant or a scene neither turns your zones on nor off.

Volume cap​

Russound controllers count the volume from 0 to 50. In Gladys, the volume goes from 0 to 100 %: 100 % is the cap of the configuration (25 by default). Gladys (dashboard, scene, voice assistant) can never set a volume above the cap. The cap is read again just before sending: a new value saved applies at once.

The volume set on a keypad or a remote is not changed by the integration (above the cap, Gladys shows 100 %), except in the two cases where Gladys would make it heard:

  • Unmute: when the volume of the zone is above the cap, it is first brought back to the cap, then the mute is removed. When the volume cannot be read, nothing is sent; when the controller does not confirm the lowering, the mute is kept.
  • Power on: a zone turns on at its "turn-on volume"; above the cap, it is brought back to it, until the controller confirms a volume at or under the cap. When the zone is slow, the integration checks a few more times for about 15 seconds, and lowers a volume reported above the cap meanwhile.

Commands​

A command succeeds only when the value read back from the controller is the one asked. Every command is answered within 4 seconds (Gladys waits 5 seconds). A command that left without confirmation is reported "sent, without confirmation"; a command that could not leave is reported "nothing sent". A burst of commands (a volume slider dragged) never closes the connection: the ones coming too late are refused without sending anything. Eight commands at most wait per zone.

The source is only chosen on a zone that is on (read just before): on a zone off, it is refused without sending anything, since choosing a source could turn the zone on at its turn-on volume, without the cap. Turn the zone on first.

Standby goes before every command waiting, cancels a Power on, a source or a volume still waiting (a command already running sends nothing after it), and stays possible right after a restart, before the first full read: when the connection waits for its next attempt, it is opened at once. A Standby not confirmed is read again and sent again up to three times within 15 seconds, unless a Power on is asked in Gladys meanwhile; a zone turned on again from a keypad during that time may thus be turned off again.

Mute uses the explicit ZoneMuteOn / ZoneMuteOff commands (RIO 1.09.00 or later); on an older firmware, which can only toggle the mute, it is refused without sending anything.

Identity of the zones​

Each zone is known by the address of the controller, the number of the controller and the one of the zone (for example 192.168.1.40_c1_z3): keep a fixed IP address. The MAC address of the controller, when it tells it, is kept: when another controller answers at this address one day (DHCP swap), its zones are neither read nor commanded and the status says so. If you replaced the controller, remove its address from the configuration, delete its zones in Gladys, then add it again. An unreadable MAC address is never taken for another controller.

Reconnection​

A controller that does not answer (off, unplugged) shows the power of its zones at 0 and is named in the integration status. The integration connects again after 10 s, then at intervals doubled after each failure, up to 5 minutes; a request without answer closes the connection, then the same spaced reconnection applies. The time of the last attempt is kept: a restart of the integration never asks the controller faster.

Configuration button​

  • Check the controllers: the connection, the RIO version, the MAC address and the number of zones of each controller, the state of each zone (power, volume out of 50, mute, source), and the cap in force.

Data and privacy​

The integration asks for no account and no password: the RIO port has none. It keeps in /data/russound.json the known zones (address, numbers, name, sources), and for each address the MAC address of the controller, the time of the last connection attempt and the number of failures. Nothing leaves your local network.

Known limits​

  • No play / pause / next yet, no tuner presets, bass, treble, balance, loudness, party mode nor "do not disturb".
  • The source list does not take into account the sources disabled for a zone.
  • Limited use in France, Belgium and Switzerland: Russound is mostly installed in North America.
  • Never tested with a real device: the real answers may differ.

Konfigurationseinstellungen​

Diese Einstellungen fragt Russound in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Your Russound controllers, on your local networksectionNeinEach zone of a Russound controller with the RIO protocol on its network port (TCP 9621: MCA-66, MCA-88, MCA-C3, MCA-C5, MBX-PRE, MBX-AMP...) becomes a Gladys device: power on, standby, volume, mute, source and what is playing, without any cloud. The RS-232 serial port is not supported. Give each controller a fixed IP address in your router and type it below; the zones then appear in the Discovery tab. 100 % in Gladys is the volume cap below, never exceeded. Never tested with a real device. Unofficial integration, not affiliated with Russound.
IP addresses of the controllersstringNeinSeparated by commas, for example 192.168.1.40, 192.168.1.41. Port 9621 by default; add :port for another one. One address per controller: the controllers chained to it (RNET) are found through it.
Volume cap (0 to 50)numberNeinThe loudest volume Gladys may set, on the Russound scale shown by the keypads (from 1 to 50, 25 by default): it is 100 % in Gladys. A scene, a voice assistant or the dashboard can never go above it. A zone turned on by Gladys above it is brought back to it.

So installierst du Russound in Gladys​

  1. Öffne in Gladys Integrationen: Russound erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-russound:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-russound.

Russound benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Russound ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂