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 | 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 |
- Multi Zone control.
- Power ON/OFF short press tile in HomeKit app.
- RC/Media control is possible after you go to the RC app on iPhone/iPad.
- Speaker control is possible after you go to RC app on iPhone/iPad
Speaker Service
. - Legacy Volume and Mute control is possible throught extra
lightbulb
/fan
(slider). - Inputs/Surrounds can be changed using Inputs selector in the Home app or using extra tile.
- Digital Input Modes can be controlled by creating separate tile in the buttons section.
- Siri can be used for all functions, some times need create legacy buttons/switches/sensors.
- Automations can be used for all functions, some times need create legacy buttons/switches/sensors.
- This plugin is based upon the official documentation: Denon Control Protocol 2020
- Support external integrations, RESTFul, MQTT.
- First enable Network Contorl Denon/Marantz.
- Run this plugin as a Child Bridge (Highly Recommended), this prevent crash Homebridge if plugin crashes.
- Install and use Homebridge Config UI X to configure this plugin.
- The
sample-config.json
can be edited and used as an alternative.
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. |
zoneControl |
Here choose which zone will be controlled by this section 0 - Main Zone , 1 - Zone 2 , 2 - Zone 3 , 3 - Surround Mode . |
generation |
Here choose generation of Your device, old 0 - 2010 - 2012 , middle 1 - 2013 - 2022 , new 2 - 2023 and newer . |
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. |
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. |
masterPower |
If enabled, then the Power switch for that zone will turn the entire receiver ON or OFF/STANDBY rather than just the zone itself. |
masterVolume |
If enabled, then the Volume for that zone will set the entire receiver UP or DOWN rather than just the zone itself, (only for the Zone 1 and 2). |
masterMute |
If enabled, then the Mute switch for that zone will muted the entire receiver ON or OFF rather than just the zone itself, (only for the Zone 1 and 2). |
volumeControlNamePrefix |
Here enable/disable the accessory name as a prefix for volume control name. |
volumeControlName |
Here set Your own volume control name or leave empty. |
volumeControl |
Here choose what a additional volume control mode You want to use, 0 - None/Disabled , 1 - Lightbulb , 2 - Fan . |
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. |
enableDebugMode |
If enabled, deep log will be present in homebridge console. |
disableLogInfo |
If enabled, disable log info, all values and state will not be displayed in Homebridge log console. |
disableLogDeviceInfo |
If enabled, add ability to disable log device info by every connections device to the network. |
disableLogConnectError |
If enabled, disable logging device connect error. |
enableRestFul |
If enabled, RESTful server will start automatically and respond to any path request. |
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, deep 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, deep log will be present in homebridge console for MQTT. |
AV Surround Mode |
This extra Accessory will control all functions of Main Zone except Inputs and Buttons . |
- POST data as a JSON Object
{Power: true}
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 | Power On/Off. |
http//ip:port |
Input |
SAT/CBL |
string | Set input. | |
http//ip:port |
Surround |
MUSIC |
string | Set surround mode. | |
http//ip:port |
RcControl |
NS9E |
string | Send RC command. | |
http//ip:port |
Volume |
100 |
integer | Set volume. | |
http//ip:port |
Mute |
true , false |
string | Set mute On/Off. |
- 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 | Power state. |
Set |
Input |
SAT/CBL |
string | Set input. | |
Set |
Surround |
MUSIC |
string | Set surround mode. | |
Set |
RcControl |
NS9E |
string | Send RC command. | |
Set |
Volume |
100 |
integer | Set volume. | |
Set |
Mute |
true , false |
boolean | Set mute. |