npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

homebridge-denon-tv

v5.7.0

Published

Homebridge plugin to control Denon/Marantz AV Receivers.

Downloads

8,469

Readme

Homebridge Denon TV

verified-by-homebridge npm npm npm GitHub pull requests GitHub issues

Homebridge plugin for Denon/Marantz AV Receivers series X/SR. Tested Denon AVR-2112CI, AVR-3311CI, AVR-X6300H, AVR-X2700H, AVC-X4800H, Marantz SR8012, SR6013, M-CR611, PM7000N.

Package Requirements

| Package | Installation | Role | Required | | --- | --- | --- | --- | | Homebridge | Homebridge Wiki | HomeKit Bridge | Required | | Config UI X | Config UI X Wiki | Homebridge Web User Interface | Recommended | | Denon TV | Plug-In Wiki | Homebridge Plug-In | Required |

About The Plugin

  • This plugin is based upon the official documentation: Denon Control Protocol 2020
    • Multi Zone control.
    • Power ON/OFF control with short press the tile in HomeKit app.
    • RC/Media control, RC app on iPhone/iPad.
    • Speaker Volume and Mute control with hardware buttons, RC app on iPhone/iPad.
    • Volume and Mute control with extra tile lightbulb/fan (slider).
    • Inputs control using inputs whell or buttons.
    • Digital Input Modes control using extra buttons.
    • Surrounds/Pass Trough Inputs control as a extra accessory tile.
  • Siri, some times need to create buttons/switches/sensors.
  • Automations, some times need to create buttons/switches/sensors.
  • External integrations, RESTFul, MQTT.

Configuration

| Key | Description | | --- | --- | | name | Here set the accessory Name to be displayed in Homebridge/HomeKit. | | host | Here set the Hostname or Address IP of AVR. | | port | Here set the API communication port, if 8080 is not working try to use port 80 which some receivers use alternatively. | | generation | Here choose generation of Your device, old 0 - 2010 - 2012, middle 1 - 2013 - 2022, new 2 - 2023 and newer. | | zoneControl | Here choose which zone will be controlled by this section 0 - Main Zone, 1 - Zone 2, 2 - Zone 3, 3 - Surrounds, 4 - Pass Through Inputs. | | disableAccessory | If enabled, the accessory will be disabled. | | getInputsFromDevice | If enabled, Inputs will be loaded direct from device. | | getFavoritesFromDevice | If enabled, Favorites will be loaded to the inputs list if exist. | | getQuickSmartSelectFromDevice | If enabled, Quick/Smart Select will be loaded to the inputs list if exist. | | inputsDisplayOrder | Here choose display order of the inputs list, 0 - None, 1 - Ascending by Name, 2 - Descending by Name, 3 - Ascending by Reference, 4 - Ascending by Reference. | | inputs | Here create Inputs which You want expose to the Homebridge/HomeKit. | | inputs.name | Here set Input Name. | | inputs.reference | Choose from available inputs, the inputs that should be published to and appear in HomeKit app in the device tile as inputs list. | | surrounds | Here create Surrounds which You want expose to the Homebridge/HomeKit. | | surrounds.name | Here set Surround Mode Name. | | surrounds.reference | Here choose Surround Mode, the mode that should be published to and appear in HomeKit app in the extra tile as Surrounds List. | | passThroughInputs | Here create Pass Through Inputs which You want expose to the Homebridge/HomeKit. | | passThroughInputs.name | Here set Pass ThroughInput Name. | | passThroughInputs.reference | Choose from available inputs, the inputs that should be published to and appear in HomeKit app in the device tile as inputs list. | | buttons | Here create Buttons which You want expose to the Homebridge/HomeKit for Main Zone. | | buttons.name | Here set Button Name. | | buttons.reference | Here choose Function for this button. | | buttons.displayType | Here choose characteristic type to be exposed in HomeKit app, possible 0 - None/Disabled, 1 - Outlet, 2 - Switch. | | buttons.namePrefix | Here enable/disable the accessory name as a prefix for button name. | | buttonsZ2 | Here create Buttons which You want expose to the Homebridge/HomeKit for Zone 2. | | buttonsZ2.name | Here set Button Name. | | buttonsZ2.reference | Here choose function for this button. | | buttonsZ2.displayType | Here choose characteristic type to be exposed in HomeKit app, possible 0 - None/Disabled, 1 - Outlet, 2 - Switch. | | buttonsZ2.namePrefix | Here enable/disable the accessory name as a prefix for button name. | | buttonsZ3 | Here create Buttons which You want expose to the Homebridge/HomeKit for Zone 3. | | buttonsZ3.name | Here set Button Name. | | buttonsZ3.reference | Here choose function for this button. | | buttonsZ3.displayType | Here choose characteristic type to be exposed in HomeKit app, possible 0 - None/Disabled, 1 - Outlet, 2 - Switch. | | buttonsZ3.namePrefix | Here enable/disable the accessory name as a prefix for button name. | | sensorPower| If enabled, then the Power will be exposed as a Contact Sensor, fired if power ON. | | sensorVolume| If enabled, then the Volume will be exposed as a Contact Sensor, fired on every Volume change. | | sensorMute| If enabled, then the Mute will be exposed as a Contact Sensor, fired if Mmute ON. | | sensorInput| If enabled, then the Input will be exposed as a Contact Sensor, fired on every Input change. | | sensorInputs| Here create custom Inputs Sensor which You want expose to the Homebridge/HomeKit. | | sensorInputs.name | Here set own Sensor Name. | | sensorInputs.reference | Here choose Input Reference, sensor fired if switch to this reference. | | sensorInputs.displayType | Here choose characteristic type to be exposed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor. | | sensorInputs.namePrefix | Here enable/disable the accessory name as a prefix for sensor name. | | sensorSurrounds| Here create custom Surrounds Sensor which You want expose to the Homebridge/HomeKit. | | sensorSurrounds.name | Here set own Sensor Name. | | sensorSurrounds.reference | Here choose Sensor Reference, sensor fired if switch to this reference. | | sensorSurrounds.displayType | Here choose characteristic type to be exposed in HomeKit app, 0 - None/Disabled, 1 - Motion Sensor, 2 - Occupancy Sensor, 3 - Contact Sensor. | | sensorSurrounds.namePrefix | Here enable/disable the accessory name as a prefix for sensor name. | | powerControlZone | Here select which zone the power want control, 0 - Main Zone, 1 - Zone 2, 2 - Zone 3, 3 - Zone 2/3, 4 - Main Zone + Z2, 5 - Main Zone + Z3, 6 - Main Zone + Z2/Z3, 7 - Master Power, this also working with power button in RC app. | | volumeControlNamePrefix | Here enable/disable the accessory name as a prefix for volume control name. | | volumeControlName | Here set Your own volume/mute control name or leave empty. | | volumeControlType | Here choose what a additional volume/mute control type You want to use, 0 - None/Disabled, 1 - Lightbulb, 2 - Fan. | | volumeControlZone | Here select which zone the volume/mute want control, 0 - Main Zone, 1 - Zone 2, 2 - Zone 3, 3 - Zone 2/3, 4 - Main Zone + Z2, 5 - Main Zone + Z3, 6 - Main Zone + Z2/Z3, this also working with hardware buttons in RC app. | | volumeMax | Here set the maximum possible volume to set, 0 - 100. | | infoButtonCommand | Here choose the function for I button in RC app. | | refreshInterval | Here set the data refresh interval. | | disableLogDeviceInfo | If enabled, add ability to disable log device info by every connections device to the network. | | disableLogInfo | If enabled, disable log info, all values and state will not be displayed in Homebridge log console. | | disableLogSuccess | If enabled, disable logging device success. | | disableLogWarn | If enabled, disable logging device warnings. | | disableLogError | If enabled, disable logging device error. | | enableDebugMode | If enabled, debug log will be present in homebridge console. | | restFul | This is RSTful server. | | enable | If enabled, RESTful server will start automatically and respond to any path request. | | port | Here set the listening Port for RESTful server. | | debug | If enabled, debug log will be present in homebridge console for RESTFul server. | | mqtt | This is MQTT Broker. | | enable | If enabled, MQTT Broker will start automatically and publish all awailable PV data. | | host | Here set the IP Address or Hostname for MQTT Broker. | | port | Here set the Port for MQTT Broker, default 1883. | | clientId | Here optional set the Client Id of MQTT Broker. | | prefix | Here set the Prefix for Topic or leave empty. | | auth | If enabled, MQTT Broker will use authorization credentials. | | user | Here set the MQTT Broker user. | | passwd | Here set the MQTT Broker password. | | debug | If enabled, debug log will be present in homebridge console for MQTT. |

Extra Accessory Tile

  • Surrounds - supports only Surrounds Control, Surrounds Sensors.
  • Pass Tgrough Inputs - always ON, supports only Pass Through Inputs Control, Pass Through Inputs Sensors.

RESTFul Integration

  • Only for Main Zone, Zone 2, Zone 3
  • POST data as a JSON Object {Power: true}
  • Header content type must be application/json

| Method | URL | Path | Response | Type | | --- | --- | --- | --- | --- | | GET | http//ip:port/ | info, state, picture, surround | {"Power": {"value": OFF}} | JSON object. |

| Method | URL | Key | Value | Type | Description | | --- | --- | --- | --- | --- | --- | | POST | http//ip:port | Power | true, false | boolean | Set power On/Off. | | | http//ip:port | Input | SAT/CBL | string | Set input/pass through input. | | | http//ip:port | Surround | MUSIC | string | Set surround mode. | | | http//ip:port | Volume | 0 - 98 | integer | Set volume. | | | http//ip:port | Mute | true, false | boolean | Set mute On/Off. | | | http//ip:port | RcControl | NS9E | string | Send RC command. |

MQTT Integration

  • Only for Main Zone, Zone 2, Zone 3
  • Subscribe data as a JSON Object {Power: true}

| Method | Topic | Message | Type | | --- | --- | --- | --- | | Publish | Info, State, Picture, Surround | {"Power": {"value": OFF}} | JSON object. |

| Method | Topic | Key | Value | Type | Description | | --- | --- | --- | --- | --- | --- | | Subscribe | Set | Power | true, false | boolean | Set power On/Off. | | | Set | Input | SAT/CBL | string | Set input/pass through input. | | | Set | Surround | MUSIC | string | Set surround mode. | | | Set | Volume | 0 - 98 | integer | Set volume. | | | Set | Mute | true, false | boolean | Set mute On/Off. | | | Set | RcControl | NS9E | string | Send RC command. |