Git Product home page Git Product logo

homebridge-onkyo's Introduction

homebridge-onkyo

npm npm

NPM Version Node.js CI

Homebridge plugin for Onkyo Receivers Should work for all supported models as listed in the node_modules/eiscp/eiscp-commands.json. If your model is not listed, try TX-NR609.

Description

This is an enhanced fork from the original/unmaintained homebridge-onkyo-avr plugin written by gw-wiscon. Existing users of my original fork or gw-wiscon's be sure to update the "platform" config to "Onkyo".

Changelog

  • Version 0.7.5 introduces linter check for JSON files and code quality check using xo. Developers can now use "npm test" before submitting a pull request.
  • Version 0.7 iOS 12.2+ is now required. This is now a Platform, theoretically supporting multiple receivers. Each receiver is a TV accessory (which is why iOS 12.2+ is required). Input labels can customized with inputs in the config. An optional Dimmer service for separate volume control is available, useful for non-iPhone control and more advanced automations (it appears as a dimmable light bulb). To disable the volume dimmer, add "volume_dimmer": false to your receiver in config.
  • Version 0.6 includes support for zone2. Adds a new config parameter called "zone" and use "zone2". Thanks for the contrib mbbeaubi.
  • Version 0.5.x includes support for input-selector. Available inputs are dynamically pulled from the eiscp-commands.json file. Note: Not all inputs may work with your receiver.
  • Version 0.4.x includes support for volume, mute, and has options for setting default_input.

For Siri Control of Volume, Mute, and Input - Use an app like EVE which has control sliders and create scenes for "Volume Mute" or "Volume Unmute", and/or various volume level scenes like "Volume Low" or "Volume Loud", or for inputs like "input network" or "input fm". It may be easiest to set the volume or Input first using the OnkyoRemote3 app and then creating the scenes so the volume or input is pre-set (without using the slider).

For Alexa Control of Volume, Mute, Input - (if using the Alexa plugin) - create DummySwitches (homebridge-dummy) and setup an automation to run the scene created from above. "Alexa, turn on Volume Loud."

To Do

Auto discovery of all receivers on the network (if more than one exist) and other flexibility. Adding Speaker A/B on/off control Others...

Installation

As a prerequisite ensure that the Onkyo receiver is controllable using the OnkyoRemote3 iOS app. You also need to have git installed.

It is recommended to install and configure this plugin using homebridge-config-ui-x, however you can also install manually using the following manual tasks:

  1. Install homebridge using: npm install -g homebridge
  2. Install this plugin using: npm install -g homebridge-onkyo
  3. Update your configuration file. See the sample below.

Configuration

Example accessory config (needs to be added to the homebridge config.json):

"platforms": [{
       "platform": "Onkyo",
       "receivers": [
           {
               "model": "TX-NR609",
               "ip_address": "10.0.0.46",
               "poll_status_interval": "3000",
               "name": "Receiver",
               "zone": "main",
               "default_input": "net",
               "default_volume": "10",
               "max_volume": "40",
               "inputs": [
                   {
                       "input_name": "TV",
                       "display_name": "TV"
                   },
                   {
                       "input_name": "AUX",
                       "display_name": "PS4"
                   }
               ]
               "map_volume_100": false,
               "volume_dimmer": false,
               "switch_service": false,
               "filter_inputs": true
           }
       ]
   }]

Config Explanation:

Field Description
platform (required) Must always be "Onkyo".
receivers (required) List of receiver accessories to create. Must contain at least 1.
Receiver Attributes
---------------------------- ------------
name (required) The name you want to use for control of the Onkyo accessories.
ip_address (required) The internal ip address of your Onkyo.
model (required) Must be a valid model listed in node_modules/eiscp/eiscp-commands.json file. If your model is not listed, you can use the TX-NR609 if your model supports the Integra Serial Communication Protocol (ISCP).
poll_status_interval (optional) Poll Status Interval. Defaults to 0 or no polling.
default_input (optional) A valid source input. Default will use last known input. See output of 3.js in eiscp/examples for options.
default_volume (optional) Initial receiver volume upon powerup. This is the true volume number, not a percentage. Ignored if powerup from device knob or external app (like OnkyoRemote3).
max_volume (optional) Receiver volume max setting. This is a true volume number, not a percentage, and intended so there is not accidental setting of volume to 80. Ignored by external apps (like OnkyoRemote3). Defaults to 30.
map_volume_100 (optional) Will remap the volume percentages that appear in the Home app so that the configured max_volume will appear as 100% in the Home app. For example, if the max_volume is 30, then setting the volume slider to 50% would set the receiver's actual volume to 15. Adjusting the stereo volume knob to 35 will appear as 100% in the Home app. This option could confuse some users to it defaults to off false, but it does give the user finer volume control especially when sliding volume up and down in the Home app. Defaults to False.
zone (optional) Defaults to main. Optionally control zone2 where supported.
inputs (optional) List of inputs you want populated for the TV service and what you want them to be labeled. Inputs not listed are omitted.
filter_inputs (optional) Boolean value. Setting this to true limits inputs displayed in HomeKit to those you provide in inputs. If false or not defined, all inputs supported by model will be displayed.
volume_dimmer (optional) Boolean value. Setting this to false disables additional Dimmer accessory for separate volume control.

Troubleshooting

For Troubleshooting look in the homebridge-onkyo/node_modules/eiscp/examples directory and see if you can run 3.js. "node 3.js". It should output all available commands.

You can find the output also in the wiki.

homebridge-onkyo's People

Contributors

cbrandlehner avatar toddgreenfield avatar gw-wiscon avatar mbbeaubi avatar

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.