===========================
DENON and Marantz are trademarks of D&M Holdings Inc. The developers of this module are in no way endorsed by or affiliated with D&M Holdings Inc., or any associated subsidiaries, logos or trademarks.
You can either install the adapter via the ioBroker web interface or on your local machine via npm.
Navigate into your iobroker folder and execute the following command:
npm i iobroker.denon
Additional to the adapter installation you have to make sure that your AVR is correctly configured.
Press SETUP button, then Menu appears on FL-display(and GUI)
Select "Network" --> "Settings"
Set parameters described below
DHCP: "ON" (Use this setting when DHCP server is on the local network.)
IP Address: When sets "Off”, please set IP address.
Subnet Mask: When sets "Off", please set Subnet Mask.
Gateway: Set the address of Gateway when Gateway is on the local network.
Primary DNS: Do not set this parameter.
Second DNS: Do not set this parameter.
Proxy: Set this parameter "Off".
Press SETUP button, then Menu appears on FL-display (and GUI)
Select “Network" --> Network Control/IP Control"
Set this parameter to "Always On".
Take note, that the AVRs can only manage a single telnet connection. If you are having an active telnet connection e. g. with the javascript adapter, the AVR will refuse the connection of this adapter. Here you can find a description of the states and how to use them.
The adapter creates the following buttons:
zoneMain.playPause
Play and pause music from Bluetooth, Online, USB/iPod sources.
zoneMain.play
Play music from Bluetooth, Online, USB/iPod sources.
zoneMain.pause
Pause music from Bluetooth, Online, USB/iPod sources.
zoneMain.skipMinus
Skip to previous title.
NOT FULLY SUPPORTED FOR HEOS AVR'S
zoneMain.skipPlus
Skip to next title.
NOT FULLY SUPPORTED FOR HEOS AVR'S
zoneMain.volumeDown / zone2.volumeDown / zone3.volumeDown
Decrease volume of Main Zone / Zone2 / Zone3.
zoneMain.volumeUp / zone2.volumeUp / zone3.volumeUp
Increase volume of Main Zone / Zone2 / Zone3.
zoneMain.equalizerBassUp / zone2.equalizerBassUp / zone3.equalizerBassUp
Button which increases bass level of the Zone.
Bass and treble settings can be adjusted when Dyn EQ is set to OFF and Tone Control is on
zoneMain.equalizerBassDown / zone2.equalizerBassDown / zone3.equalizerBassDown
Button which decreases bass level of the Zone.
Bass and treble settings can be adjusted when Dyn EQ is set to OFF and Tone Control is on
zoneMain.equalizerTrebleUp / zone2.equalizerTrebleUp / zone3.equalizerTrebleUp
Button which increases treble level of the Zone.
Bass and treble settings can be adjusted when Dyn EQ is set to OFF and Tone Control is on
zoneMain.equalizerTrebleDown / zone2.equalizerTrebleDown / zone3.equalizerTrebleDown
Button which decreases treble level of the Zone.
Bass and treble settings can be adjusted when Dyn EQ is set to OFF and Tone Control is on
settings.subwooferLevelDown / settings.subwooferTwoLevelDown
Reduce subwoofer level by pressing the button.
settings.subwooferLevelUp / settings.subwooferTwoLevelUp
Increase subwoofer level by pressing the button.
settings.containmentAmountDown
Decrease Audyssey LFC amount. The button will only be created, if it is supported by your AVR.
settings.containmentAmountUp
Increase Audyssey LFC amount. The button will only be created, if it is supported by your AVR.
settings.cursorUp / settings.cursorDown / settings.cursorLeft / settings.cursorRight
Simulates the cursor buttons of your remote control
settings.enter
Simulates the enter button of your remote control
settings.return
Simulates the return/back button of your remote control
settings.option
Simulates the option button of your remote control
settings.info
Simulates the info button of your remote control
tuner.frequencyUp
Increases tuner frequency.
tuner.frequencyDown
Decreases tuner frequency.
Following states will be created by the adapter:
info.connection
Data type | Permission |
---|---|
boolean | R |
Read-only boolean indicator. If your broker is connected to your DENON AVR, the state is true otherwise false.
info.friendlyName
Data type | Permission |
---|---|
string | R |
Read only string. Contains the friendly name of the connected AVR.
info.onlinePresets
Data type | Permission |
---|---|
string | R |
String in JSON array format, which represents the current saved favorites by its id and channel. The names of each channel are limited by 20 digits. You can save the current channel to an id by setting settings.savePreset and load one by setting settings.loadPreset to the related id.
zoneMain.volume / zone2.volume / zone3.volume
Data type | Permission |
---|---|
number | R/W |
Number value which represents the current Main Zone / Zone2 / Zone 3 volume of your AVR. You can also set the volume here. The volume is represented in dB too in separate states, e. g. mainVolumeDB
Range is from 0 to 98 (maybe lower due to maximumVolume), where 80 = 0 dB
Example:
setState('denon.0.zoneMain.volume', 45.5); // Sets volume of Main Zone to 45.5
zoneMain.maximumVolume
Data type | Permission |
---|---|
number | R |
Read-only number which represents the maximum possible volume, where 80 = 0 dB. The volume is also set in dB in the maximumVolumeDB state.
zoneMain.muteIndicator / zone2.muteIndicator / zone3.muteIndicator
Data type | Permission |
---|---|
boolean | R/W |
Boolean value, which is true if the Main Zone / Zone2 / Zone3 is muted, otherwise false. You can mute your AVR with this state.
Example:
setState('denon.0.zoneMain.muteIndicator', true); // Mutes the Main Zone of your AVR
zoneMain.powerZone / zone2.powerZone / zone3.powerZone
Data type | Permission |
---|---|
boolean | R/W |
Boolean value, which is true if the Zone is turned on, otherwise false. You can turn your AVR / Zone on and off with this state.
zoneMain.selectInput / zone2.selectInput / zone3.selectInput
Data type | Permission |
---|---|
string | R/W |
The string value contains the current input source. You can also set the input source with the following encoding:
0: PHONO
1: CD
2: TUNER
3: DVD
4: BD
5: TV
6: SAT/CBL
7: MPLAY
8: GAME
9: NET
10: SPOTIFY
11: LASTFM
12: IRADIO
13: SERVER
14: FAVORITES
15: AUX1
16: AUX2
17: AUX3
18: AUX4
19: AUX5
20: AUX6
21: AUX7
22: BT
23: USB
Please note, that not every input source is available on every AVR model. If your AVR has additional inputs, they will be appended to the list, once they have been detected.
Example:
setState('denon.0.zoneMain.selectInput', '5'); // Selects TV as input for Main Zone
zoneMain.quickSelect / zone2.quickSelect / zone3.quickSelect
Data type | Permission |
---|---|
number | R/W |
Emulates the quick select buttons of your remote, with numbers from 1 to 5 for Main Zone / Zone2 / Zone3.
zoneMain.sleepTimer / zone2.sleepTimer / zone3.sleepTimer
Data type | Permission |
---|---|
number | R/W |
Number-value to read and set the sleep timer for the selected zone. The value will be updated in less than 10 seconds.
zoneMain.iconURL
Data type | Permission |
---|---|
string | R |
Contains a link where you can find the cover of the channel/song which is currently played.
NOT SUPPORTED FOR HEOS AVR'S
zoneMain.equalizerBass / zone2.equalizerBass / zone3.equalizerBass
Data type | Permission |
---|---|
number | R/W |
Number value which represents the bass level of the Zone. Value range is from -6 to +6 dB.
Bass and treble settings can be adjusted when Dyn EQ is set to OFF and Tone Control is on
zoneMain.equalizerTreble / zone2.equalizerTreble / zone3.equalizerTreble
Data type | Permission |
---|---|
number | R/W |
Number value which represents the treble level of the Zone. Value range is from -6 to +6 dB.
Bass and treble settings can be adjusted when Dyn EQ is set to OFF and Tone Control is on
zoneMain.channelVolumeFrontLeft / zone2.channelVolumeFrontLeft / zone3.channelVolumeFrontLeft / ...
Data type | Permission |
---|---|
number | R/W |
Number value which represents the current channel volume for each speaker. Each speaker has a separate state. The settings affect the current Select Input Mode. The state can be adjusted from -12 dB to +12 dB.
tuner.stationName
Data type | Permission |
---|---|
string | R |
Read-only string which contains the current station name if available.
tuner.frequency
Data type | Permission |
---|---|
number | R/W |
Number value which represents the current frequency. You can also set a frequency with this state. Values below 500 are on FM frequency and above 500 on AM frequency.
setState('denon.0.tuner.frequency', 106.9); // Set frequency to 106.9 MHz (FM)
display.displayContent
Data type | Permission |
---|---|
string | R |
Read-only string which contains the content of your AVR display. It has nine states 0 - 9.
DISPLAY CONTENT IS NOT SUPPORTED FOR HEOS AVR'S
display.brightness
Data type | Permission |
---|---|
string | R/W |
String value which represents the display brightness. The value can also set the display brightness by the following encoding:
0: Off --> turns display off
1: Dark --> turns display dark
2: Dimmed --> turns display dimmed
3: Bright --> turns display bright
Example:
setState('denon.0.display.brightness', '3'); // Sets display brightness to "Bright"
settings.powerSystem
Data type | Permission |
---|---|
boolean | R/W |
Boolean value which is true, if the AVR is turned on, otherwise false. You can also turn your AVR on and off with this state.
settings.surroundMode
Data type | Permission |
---|---|
string | R/W |
The string value contains the current Surround mode. You can also change the source with the following encoding:
0: STEREO
1: VIRTUAL
2: VIDEO GAME
3: MCH STEREO
4: DTS SURROUND
5: DOLBY DIGITAL
6: MOVIE
7: MUSIC
8: DIRECT
9: PURE DIRECT
10: AUTO
11: GAME
12: AURO3D
13: AURO2DSURR
14: WIDE SCREEN
15: SUPER STADIUM
16: ROCK ARENA
17: JAZZ CLUB
18: CLASSIC CONCERT
19: MONO MOVIE
20: MATRIX
Please note, that not every Surround mode is available on every AVR model.
Example:
setState('denon.0.settings.surroundMode', '3'); // Sets Multi Channel Stereo as surround mode
settings.lfeAmount
Data type | Permission |
---|---|
number | R/W |
Amount of subwoofer signal additional directed to speakers in dB. Range is from 0 dB to -10 dB. Where 10 = -10 dB.
settings.expertCommand
Data type | Permission |
---|---|
string | R/W |
You can send your own custom commands with this state. You can find an overview about the existing commands in the AVR-Control-Protocol.pdf
Example:
setState('denon.0.settings.expertCommand', 'ECOON'); // Turns Main Zone ECO mode on
settings.expertReadingPattern
Data type | Permission |
---|---|
string | R/W |
If you want to get specific answers stored in settings.expertReadingResult
you have to set a RegEx to this state.
RegEx has to be set, so that a RegEx Constructor can use it. It is recommended to use a RegEx tester.
Do not set /
at the beginning or end of the RegEx.
Example:
setState('denon.0.settings.expertReadingPattern', '(MV.+)|(SSINFAISFSV.+)');
settings.expertReadingResult
Data type | Permission |
---|---|
string | R |
Incoming data, which matches the RegEx of settings.expertReadingPattern
will be set to this state.
settings.dialogControl
Data type | Permission |
---|---|
number | R/W |
The dialog control, which can be operated from 0 dB to 6 dB.
settings.dialogLevelAdjust
Data type | Permission |
---|---|
boolean | R/W |
Turns the dialog level adjustment on, which allows to modify the dialog volume of DTS content.
settings.dialogLevel
Data type | Permission |
---|---|
boolean | R/W |
If dialog level adjustment is turned on you can modify the dialog volume of DTS content between -12 dB and +12 dB.
settings.outputMonitor
Data type | Permission |
---|---|
string | R/W |
Select the output monitor of your AVR. This state will only be created if your AVR supports two HDMI outputs. You can switch the state between:
0: AUTO --> Auto detection of monitor
1: 1 --> Outputs signal to monitor 1
2: 2 --> Outputs signal to monitor 2
Example:
setState('denon.0.settings.outputMonitor', '2'); // Sets monitor 2 as active monitor
settings.videoProcessingMode
Data type | Permission |
---|---|
string | R/W |
Select the video processing mode of your AVR. This state will only be created if your AVR supports it. You can switch the state between:
0: AUTO
1: GAME
2: MOVIE
Example:
setState('denon.0.settings.videoProcessingMode', '2'); // Sets Video Processing Mode to "MOVIE"
settings.centerSpread
Data type | Permission |
---|---|
boolean | R/W |
Boolean-value which is true if center spread is truned on, else false. You can also turn on/off center spread with this state.
settings.dynamicEq
Data type | Permission |
---|---|
boolean | R/W |
Boolean value which represents the state of Dynamic EQ. You can also set Dynamic EQ on and off with this state.
settings.subwooferLevelState
Data type | Permission |
---|---|
boolean | R/W |
Boolean value, if it's true, you are able to make changes on the subwoofer level.
settings.subwooferLevel / settings.subwooferTwoLevel
Data type | Permission |
---|---|
number | R/W |
Number value which indicates the current subwoofer level. The value has a range from -12 to 12 (-12 dB to +12 dB). The SubwooferTwoLevel state will only be created if it is supported by your AVR.
settings.audysseyLfc
Data type | Permission |
---|---|
boolean | R/W |
Boolean value, which contains and is able to control Audyssey Low Frequency Containment status (on/off). The state will only be created, if it is supported by your AVR.
settings.containmentAmount
Data type | Permission |
---|---|
number | R/W |
Number value to set the Low Frequency Containment Amount. The value can be between 1 and 7. The state will only be created, if it is supported by your AVR.
settings.multEq
Data type | Permission |
---|---|
string | R/W |
String value, to set the MultEQ function of your AVR with the following encoding:
0: OFF
1: AUDYSSEY
2: BYP.LR
3: FLAT
4: MANUAL
settings.dynamicVolume
Data type | Permission |
---|---|
string | R/W |
String value to select the Dynamic Volume by following encoding:
0: OFF --> turns Dynamic Volume off
1: LIT --> turns Dynamic Volume to light
2: MED --> turns Dynamic Volume to medium
3: HEV --> turns Dynamic Volume to heavy
settings.referenceLevelOffset
Data type | Permission |
---|---|
string | R/W |
String value to select the Reference Level Offset by the following encoding:
0: 0 dB
5: 5 dB
10: 10 dB
15: 15 dB
Example:
setState('denon.0.settings.referenceLevelOffset', '5'); // Sets Reference Level Offset to 5 dB
settings.pictureMode
Data type | Permission |
---|---|
string | R/W |
String value to set the Picture Mode Direct Change. This state will only be created when your AVR supports it
You can set the following values as string:
'Off'
'Standard'
'Movie'
'Vivid'
'Stream'
'Custom'
'ISF Day'
'ISF Night'
Example:
setState('denon.0.settings.pictureMode', 'Standard'); // Set Picture Mode Direct Change to Standard
settings.toneControl
Data type | Permission |
---|---|
boolean | R/W |
Boolean value, which indicates Tone Control status. You can turn it off/on with this state.
Tone Control can only be turned on when Dyn EQ is set to OFF
settings.setupMenu
Data type | Permission |
---|---|
boolean | R/W |
Boolean indicator, which indicates if setup menu is currently open or closed. You can open and close it with this state.
settings.savePreset
Data type | Permission |
---|---|
number | R/W |
Number value, which can be set to a value of info.onlinePresets. Then the current channel will be saved as a preset to the given number. Only numbers which are contained in info.onlinePresets can be used. The state will not get an acknowledge, no matter the command was successful or not. You can check info.onlinePresets to check if the command has worked as aspected.
settings.loadPreset
Data type | Permission |
---|---|
number | R/W |
Number value, which can be set to a value of info.onlinePresets. This will load the related channel. This state will not get an acknowledge, no matter the command has been successful or not.
settings.speakerPreset
Data type | Permission |
---|---|
number | R/W |
Set the speaker preset if supported by the AVR. Speaker preset can be 1
or 2
.
Due to the fact that some AVRs like the DENON POA-3012CI use another logic there are some differences in the states. The states which are equal to the ones listed above are: settings.powerSystem, settings.expertCommand, display.brightness and info.connection. Additional the following states are created for each zone 2-12 (even):
zoneX.speakerOneVolume / zoneX.speakerTwoVolume
Data type | Permission |
---|---|
number | R/W |
Number value, which represents the volume of the AVR's speaker. If operationMode is set to 'BRIDGED' the speakers cannot independently controlled and the control of one also controls the other ones volume.
zoneX.selectInputOne / zoneX.selectInputTwo
Data type | Permission |
---|---|
string | R/W |
Key value pair, which represents the selected input of the AVR's speaker. If operationMode is set to 'BRIDGED' the speakers cannot independently controlled and the control of one also controls the other ones input.
The following values are possible:
'0': 'BUS L'
'1': 'BUS R'
'2': 'BUS M'
'3': 'AUX'
zoneX.operationMode
Data type | Permission |
---|---|
string | R/W |
Key value pair, which represents the operationMode of the AVR. If operationMode is set to 'BRIDGED' the speakers cannot independently controlled and controlling speaker one also controls speaker two.
The following values are possible:
'0': 'NORMAL'
'1': 'BRIDGED'
zoneX.lowCutFilterSpeakerOne / zoneX.lowCutFilterSpeakerTwo
Data type | Permission |
---|---|
boolean | R/W |
Boolean value, which indicates if the low cut filter for the speaker is enabled or disabled. In bridged mode both speakers will depend on each other.
zoneX.zoneTurnOnModeChange
Data type | Permission |
---|---|
string | R/W |
Key value pair, which represents the zone turn on mode change of the zone. You can also control your AVR with this state.
The following values are possible:
'0': 'Constant'
'1': 'Trigger in'
'2': 'Audio signal'
'3': 'Off'
zoneX.triggerInput
Data type | Permission |
---|---|
boolean | R/W |
Turn trigger input on or off with this boolean value.
zoneX.audioSignalInput
Data type | Permission |
---|---|
boolean | R/W |
Boolean value which indicates and controls the audio signal input of your AVR.
If you are missing any functions or detected a bug, please open an issue.
The adapter is tested with an DENON AVR-X1200W and a Marantz SR5009.
denon.0
NULL
(closes #323)displayContent
showing old information (closes #318)requestInterval
on determining the AVR model toosettings.speakerPreset
tuner.stationName
settings.dialogLevelAdjust
, settings.dialogLevel
, settings.dialogControl
NSE
, we do not set displayContent state anymore (fixes #112)channelVolumeSurroundDolbyRight/Left
and channelVolumeFrontDolbyLeft/Right
channelVolumeFrontHeightRight/Left
and channelVolumeSurroundHeightLeft/Right
The MIT License (MIT)
Copyright (c) 2018-2024 Moritz Heusinger [email protected]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.