homebridge-denon-tv icon indicating copy to clipboard operation
homebridge-denon-tv copied to clipboard

Homebridge plugin for Denon/Marantz AV Receivers, publish as independent external platform accessory.

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 with Denon AVR-X6300H and Marantz SR6013.

This plugin is based upon the official documentation for communicating with and controlling these Denon and Marantz receivers, located here: Denon Control Protocol 2020

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

  • 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 can be changed using Inputs selector in HomeKit.app, additionally can create separate tile.
  • Surrounds can be changed using Surrounds selector in HomeKit.app, additionally can create separate 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.
  • MQTT publisch topic Info, State and Sound Mode as payload JSON data.

Configuration

  • Run this plugin as a child bridge (Highly Recommended).
  • Install and use Homebridge Config UI X to configure this plugin (Highly Recommended).
  • The sample configuration can be edited and used manually as an alternative.
  • See the sample-config.json file example or copy the example below into your config.json file, making the apporpriate changes before saving it.
  • Be sure to always make a backup copy of your config.json file before making any changes to it.

Key Description
name Here set the accessory Name to be displayed in Homebridge/HomeKit.
host Here set the Hsostname or Address IP of TV.
port Here set the API communication port, if 8080 is not working try to use port 80 which some receivers use alternatively.
zoneControl Selects which zone will be controlled by this section (0 - Main Zone, 1 - Zone 2, 2 - Zone 3, 3 - Surround Mode) or choice from the configurations GUI
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.
masterPower If enabled, then the power switch for that zone (typically you would only use this for the Main 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 (typically you would only use this for the Main Zone) will set the entire receiver UP or DOWN rather than just the zone itself
masterMute If enabled, then the mute switch for that zone (typically you would only use this for the Main Zone) will muted the entire receiver ON or OFF rather than just the zone itself
volumeControl Here choice what a additional volume control mode You want to use (None, Lightbulb, Fan).
infoButtonCommand Here select the function of I button in RC app.
inputs.name Here set Input Name which You want expose to the Homebridge/HomeKit.
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
inputs.mode Choose from available inputs mode.
inputs.switch If enabled, the tile for that input will be expose to the Homebridge/HomeKit and can be used for HomeKit automation.
inputs.displayType Here select display type in HomeKit app, possible Button, Switch, Motion Sensor, Occupancy Sensor.
buttonsMainZone.name Here set Button Name which You want expose to the Homebridge/HomeKit.
buttonsMainZone.reference Here choice function for additional control button for Main Zone.
buttonsMainZone.displayType Here select display type in HomeKit app, possible Button, Switch.
buttonsZone2.name Here set Button Name which You want expose to the Homebridge/HomeKit.
buttonsZone2.reference Here choice function for additional control button for Zone 2.
buttonsZone2.displayType Here select display type in HomeKit app, possible Button, Switch.
buttonsZone3.name Here set Button Name which You want expose to the Homebridge/HomeKit.
buttonsZone3.reference Here choice function for additional control button for Zone 3.
buttonsZone3.displayType Here select display type in HomeKit app, possible Button, Switch.
surrounds.name Here set Surround Mode Name which You want expose to the Homebridge/HomeKit.
surrounds.reference Here choice Surround Mode, the mode that should be published to and appear in HomeKit app in the extra tile as Surrounds List.
surrounds.switch If enabled, the tile for that surround mode will be expose to the Homebridge/HomeKit and can be used for HomeKit automation.
surrounds.displayType Here select display type in HomeKit app, possible Button, Switch, Motion Sensor, Occupancy Sensor.
enableMqtt If enabled, MQTT Broker will start automatically and publish all awailable PV installation data.
mqttHost Here set the IP Address or Hostname for MQTT Broker.)
mqttPort Here set the Port for MQTT Broker, default 1883.)
mqttPrefix Here set the Prefix for Topic or leave empty.)
mqttAuth If enabled, MQTT Broker will use authorization credentials.
mqttUser Here set the MQTT Broker user.
mqttPasswd Here set the MQTT Broker password.
mqttDebug 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).
{
    "platform": "DenonTv",
    "devices": [
        {
            "name": "AV Main Zone",
            "host": "192.168.1.5",
            "port": 8080,
            "zoneControl" : 0,
            "volumeControl": 0,
            "masterPower": false,
            "masterVolume": false,
            "masterMute": false,
            "infoButtonCommand": "MNINF",
            "disableLogInfo": false,
            "disableLogDeviceInfo": false,
            "enableDebugMode": false,
            "inputs": [
                {
                    "name": "Xbox One",
                    "reference": "GAME",
                    "mode": "SI",
                    "switch": false,
					"displayType": 0
                },
                {
                    "name": "Television",
                    "reference": "TV",
                    "mode": "SI",
                    "switch": false,
					"displayType": 0
                }
            ],
            "buttonsMainZone": [
                {
                    "name": "POWER ON",
                    "reference": "ZMON",
					"displayType": 0
                }
            ],
            "enableMqtt": false,
            "mqttHost": "192.168.1.33",
            "mqttPort": 1883,
            "mqttPrefix": "home/denon",
            "mqttAuth": false,
            "mqttUser": "user",
            "mqttPass": "password",
            "mqttDebug": false
        },
        {
            "name": "AV Zone 1",
            "host": "192.168.1.5",
            "port": 8080,
            "zoneControl" : 1,
            "volumeControl": 0,
            "masterPower": false,
            "masterVolume": false,
            "masterMute": false,
            "infoButtonCommand": "MNINF",
            "disableLogInfo": false,
            "disableLogDeviceInfo": false,
            "enableDebugMode": false,
            "inputs": [
                {
                    "name": "Xbox One",
                    "reference": "GAME",
                    "mode": "SI",
                    "switch": false,
					"displayType": 0
                },
                {
                    "name": "Television",
                    "reference": "TV",
                    "mode": "SI",
                    "switch": false,
					"displayType": 0
                }
            ],
            "buttonsZone2": [
                {
                    "name": "POWER ON",
                    "reference": "Z2ON",
					"displayType": 0
                }
            ],
            "enableMqtt": false,
            "mqttHost": "192.168.1.33",
            "mqttPort": 1883,
            "mqttPrefix": "home/denon",
            "mqttAuth": false,
            "mqttUser": "user",
            "mqttPass": "password",
            "mqttDebug": false
        },
        {
            "name": "AV Zone 2",
            "host": "192.168.1.5",
            "port": 8080,
            "zoneControl" : 2,
            "volumeControl": 0,
            "masterPower": false,
            "masterVolume": false,
            "masterMute": false,
            "infoButtonCommand": "MNINF",
            "disableLogInfo": false,
            "disableLogDeviceInfo": false,
            "enableDebugMode": false,
            "inputs": [
                {
                    "name": "Xbox One",
                    "reference": "GAME",
                    "mode": "SI",
                    "switch": false,
					"displayType": 0
                },
                {
                    "name": "Television",
                    "reference": "TV",
                    "mode": "SI",
                    "switch": false,
					"displayType": 0
                }
            ],
            "buttonsZone3": [
                {
                    "name": "POWER ON",
                    "reference": "Z3ON",
					"displayType": 0
                }
            ],
            "enableMqtt": false,
            "mqttHost": "192.168.1.33",
            "mqttPort": 1883,
            "mqttPrefix": "home/denon",
            "mqttAuth": false,
            "mqttUser": "user",
            "mqttPass": "password",
            "mqttDebug": false
        },
        {
            "name": "AV Surround Mode",
            "host": "192.168.1.5",
            "port": 8080,
            "zoneControl" : 3,
            "volumeControl": 0,
            "masterPower": false,
            "masterVolume": false,
            "masterMute": false,
            "infoButtonCommand": "MNINF",
            "disableLogInfo": false,
            "disableLogDeviceInfo": false,
            "enableDebugMode": false,
            "surrounds": [
                {
                    "name": "MCH Stereo",
                    "reference": "MCH STEREO",
                    "switch": false,
					"displayType": 0
                },
                {
                    "name": "Stereo",
                    "reference": "STEREO",
                    "switch": false,
					"displayType": 0
                }
            ],
            "enableMqtt": false,
            "mqttHost": "192.168.1.33",
            "mqttPort": 1883,
            "mqttPrefix": "home/denon",
            "mqttAuth": false,
            "mqttUser": "user",
            "mqttPass": "password",
            "mqttDebug": false
        }
    ]
}