Code Monkey home page Code Monkey logo

homebridge-russound-rio's Introduction

homebridge-russound-rio

homebridge-russound-rio is a plugin for Homebridge intended to give you an integrated experience with your Russound MCA devices.

Now creates zones as external devices, and creates Remotes for each zone to use

It provides the HomeKit Zone Accesories with services which include a

power input volume mute volume dimmer (as light slider). remote functions Next Previous MenuUp MenuDown MenuLeft MenuRight Enter Exit Play Pause Stop Info

Screenshot Screenshot Screenshot

Changelog

  • Version 0.1.2 Add config setting addRemote to enable Apple Remote App for each zone.
  • Version 0.1.1 Changed Zones to be External Accessories, creates a remote in Apple Remote App for each zone.
  • Initial Release.

To Do

Only supports one controller at the moment

Requirements and Limitations

Installation

If you are new to Homebridge, please first read the Homebridge documentation.

  1. Install Homebridge:
sudo npm install -g --unsafe-perm homebridge
  1. Install homebridge-russound-rio:
sudo npm install -g --unsafe-perm homebridge-russound-rio

Plugin configuration

Add the platform in config.json in your home directory inside .homebridge and edit the required fields.

{
   "platforms":[
      {
         "name":"Russound",
         "controllers":[
            {
               "name":"MCA XXX",
               "ip":"your.russound.ip",
               "zones":[
                  {
                     "name":"Zone1",
                     "display_name":"Zone 1",
                     "sources":[
                        "Source1",
                        "Source2",
                        "Source3",
                        "Source4",
                        "Source5",
                        "Source6"
                     ]
                  },
                  {
                     "name":"Zone2",
                     "display_name":"Zone 2",
                     "sources":[
                        "Source1",
                        "Source2",
                        "Source3",
                        "Source4",
                        "Source5",
                        "Source6"
                     ]
                  },
                  {
                     "name":"Zone3",
                     "display_name":"Zone 3",
                     "sources":[
                        "Source1",
                        "Source2",
                        "Source3",
                        "Source4",
                        "Source5",
                        "Source6"
                     ],
                     "enable":false
                  },
                  {
                     "name":"Zone4",
                     "display_name":"Zone 4",
                     "sources":[
                        "Source1",
                        "Source2",
                        "Source3",
                        "Source4",
                        "Source5",
                        "Source6"
                     ]
                  },
                  {
                     "name":"Zone5",
                     "display_name":"Zone 5",
                     "sources":[
                        "Source1",
                        "Source2",
                        "Source3",
                        "Source4",
                        "Source5",
                        "Source6"
                     ]
                  },
                  {
                     "name":"Zone6",
                     "display_name":"Zone 6",
                     "sources":[
                        "Source1",
                        "Source2",
                        "Source3",
                        "Source4",
                        "Source5",
                        "Source6"
                     ]
                  }
               ],
               "sources":[
                  {
                     "name":"Source1",
                     "display_name":"Source 1"
                  },
                  {
                     "name":"Source2",
                     "display_name":"Source 2"
                  },
                  {
                     "name":"Source3",
                     "display_name":"Source 3"
                  },
                  {
                     "name":"Source4",
                     "display_name":"Source 4"
                  },
                  {
                     "name":"Source5",
                     "display_name":"Source 5"
                  },
                  {
                     "name":"Source6",
                     "display_name":"Source 6"
                  }
               ]
            }
         ],
         "debug":false,
         "platform":"Russound"
      }
   ]
}

Config Explanation:

The names Zone1, Zone2, Zone3, Zone4, Zone5 and Zone6 should match the Zone names given in the Russound Controller configuration (the names in the Russound App)

The names Source1, Source2, Source3, Source4, Source5 and Source6 should match the Source names given in the Russound Controller configuration (the names in the Russound App)

Any non configured sources identified as 'N/A' will be ignored

With this configuration you can define which sources are attached to which zones, the Russound API doesn't identify the configuration correctly. That is, if different sources are selected for different zones in the Russound Controller configuration there is no way to determine this through the API. The Russound App doesn't handle this, I've added the capability to manage

After restarting Homebridge, the Russound will need to be manually paired in the Home app, to do this:

  1. Open the Home app on your device.
  2. Tap the Home tab, then tap .
  3. Tap Add Accessory, and select I Don't Have a Code or Cannot Scan.
  4. Select the Configured Zones for pairing.
  5. Enter the Homebridge PIN, this can be found under the QR code in Homebridge UI or your Homebridge logs, alternatively you can select Use Russound and scan the QR code again.

Feature Options

Feature options allow you to enable or disable certain features in this plugin. There are plugin-wide feature options, and some that are specific to individual Controllers.

Platform-level configuration parameters:

Fields Description Default Required
platform Must always be Russound. Yes
name Name to use for the Russound platform. No
debug Enable debug logging. false No

controllers configuration parameters:

Fields Description Default Required
name Name to use for this Russound Controller. MCA-88X No
ip IP address of your Russound Controller. Yes

zones zones parameters:

Fields Description Default Required
name Name to of this zone configured on the Russound Controller. Yes
display_name Name that you want the zone to display. if blank it is name No
sources List of sources to add to zone. No
enable Hides zone from Homekit true No

sources sources parameters:

Fields Description Default Required
name Name to of this source configured on the Russound Controller. Yes
display_name Name that you want the source name to display if blank it is name No

Credits

homebridge-russound-rio's People

Contributors

michaelpettorosso avatar dependabot[bot] avatar

Stargazers

Brian Stokes avatar

Watchers

 avatar  avatar

homebridge-russound-rio's Issues

Error when adding more than one zone

I tried using the home bridge UI where you specify the number of zones / sources or manually enter them. In both cases I get an error message when I try to add more than 1 zone. Any ideas?

6FCE8C1D-F5C7-4BEE-BB6E-E1DB4DC518E2

2 Controller Support

I have 2 MCA C5 controllers that are connected (i.e. they share 1 IP address). I can't figure out how to configure the homebridge-russound-rio for my setup. If I say I have 8 zones, it finds the first 8 zones (on controller 1), but if I say it has 16 zones, I get a bunch of errors because I think it is trying to find the zones at e.g. C[1].Z[10] (which doesn't exist) vs. C[2].Z[2]. I'd like to make a tweak in the code that for zones in excess of 8, it goes to C[2].Z[(zonenumber-8)]. I'd be happy to play with it, but I can't seem to figure out where this would need ot be inserted into the code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.