Code Monkey home page Code Monkey logo

russound-rio's Introduction

russound-rio

npm npm

NPM Version

Javascript socket library for Russound RIO

Description

Javascript library that allows you to connect and controll your Russound RIO MCA devices.

This library was primarily developed to be used within a Homebridge environment but may used by itself, see demo folder for example of how to connect and interact with device

Changelog

To Do

Only supports one controller at the moment

Installation

As a prerequisite ensure that the Russound device is controllable using the Russound iOS app. You also need to have git installed.

  1. Install russound using: npm install russound.rio
  2. Update your configuration file. See the sample below.

Configuration

Example config :

{
   "rio":{
      "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"
               }
            ]
         }
      ]
   }
}

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

Fields Description Default Required
name Name to use for the Russound platform. 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

Troubleshooting

russound-rio's People

Stargazers

Brian Stokes avatar Shawn Jung avatar Oleksandr Sidko avatar

Watchers

Michael Pettorosso avatar

Forkers

mortiy

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.