Denon Binding

The openHAB Denon Binding allows interaction with Denon AV receivers. It should be compatible with previous generation receivers such as AVR-X2000/X3000, as well as current ones such as X2100W/X3100W.

The binding also seems to work with some Marantz receivers.

Binding Configuration

The binding can be configured in the file services/denon.cfg.

Multiple receivers may be defined. Each requires a unique <name> to be defined.

PropertyDefaultRequiredDescription
<name>.hostYesThe IP address of the receiver
<name>.updatetelnetNoConnection method. Allowed values are "telnet" or "http". Denon receivers only support one concurrent telnet connection, so use http if any other app is using the telnet connection.
refresh5000NoThe refresh interval (in milliseconds) for the http connection method.

Item Configuration

Item bindings must conform to the following format:

{denon="<name>#<property>"}

<name> is the name of the receiver defined in the Binding Configuration, and <property> is one of the following:

PropertyTypeDescriptionAccepts
General
PWSwitchMain powerOn, Off
ZMSwitchMain zone powerOn, Off
Z2SwitchZone 2 powerOn, Off
SURROUNDMODEStringSurround mode
Volume
MVDimmerMain volumePercent, Increase/Decrease
MUSwitchMuteOn, Off
Z2ZVDimmerZone 2 volumePercent, Increase/Decrease
Z2MUSwitchZone 2 muteOn, Off
Input
INPUTStringMain inputInput name
SICDSwitchSwitch main input to CDOn
SITVSwitchSwitch main input to TVOn
Z2SOURCESwitchSwitch zone 2 input to sourceOn
Z2TUNERSwitchSwitch zone 2 input to tunerOn
Now playing
TRACKStringCurrent track that is playing; only available when playing from network or USB.
ARTISTStringCurrent artist
ALBUMStringCurrent album

Property names may be different for different models. Check the control protocol documentation to verify the right values.

The input mode switch commands in this table are not comprehensive. The binding supports all SI* and Z2* commands.

The inputs for main and 2nd zone can be switched by sending an ON command to the corresponding switch. The main input can also be switched by setting the INPUT property to the input name (without SI; see examples).

All zone commands also work on Zone 3 and Zone 4, if your receiver supports this (Z2MU -> Z3MU, etc.).

Advanced

A lot of other commands can also be sent. Define a Switch item and send it the ON command. There is no feedback on the state of such commands. See the control protocol documentation for a list of commands.

There is a special property 'COMMAND' that can be used in sitemaps and in scripts. It forwards all Denon commands that are sent to it:

String DenonCommand			"Command"				{denon="avr2000#COMMAND"}

In sitemaps:

Switch item=DenonCommand label="Surround Mode" mappings=[MSSTANDARD="Standard", MSSTEREO="Stereo"]

In scripts:

sendCommand(DenonCommand, "MNMEN ON")

Examples

###Items

Switch DenonPower		"Power"			{denon="avr2000#PW"}
Switch DenonMainZone		"Main Zone"		{denon="avr2000#ZM"}
Dimmer DenonVolume		"Volume [%.1f]"		{denon="avr2000#MV"}
Switch DenonMute		"Mute"			{denon="avr2000#MU"}
String DenonSurroundMode	"Surround mode [%s]"	{denon="avr2000#SURROUNDMODE"}
String DenonCommand		"Command"		{denon="avr2000#COMMAND", autoupdate=false}

String DenonCurrentTrack	"Current track [%s]"	{denon="avr2000#TRACK"}
String DenonCurrentArtist	"Current artist [%s]"	{denon="avr2000#ARTIST"}
String DenonCurrentAlbum	"Current album [%s]"	{denon="avr2000#ALBUM"}

String DenonInput		"Input [%s]"		{denon="avr2000#INPUT"}
Switch DenonInputCD		"Input CD"		{denon="avr2000#SICD"}
Switch DenonInputUSBIPOD	"Input USB/IPOD"	{denon="avr2000#SIUSB/IPOD"}
Switch DenonInputNet		"Input Network"		{denon="avr2000#SINET"}
Switch DenonInputSpotify	"Input Spotify"		{denon="avr2000#SISPOTIFY"}
Switch DenonInputTuner		"Input Tuner"		{denon="avr2000#SITUNER"}
Switch DenonInputDVD		"Input DVD"		{denon="avr2000#SIDVD"}
Switch DenonInputBluray		"Input Bluray"		{denon="avr2000#SIBD"}
Switch DenonInputTV		"Input TV"		{denon="avr2000#SITV"}
Switch DenonInputSATCBL		"Input SAT/CBL"		{denon="avr2000#SISAT/CBL"}
Switch DenonInputMplay		"Input Mediaplayer"	{denon="avr2000#SIMPLAY"}
Switch DenonInputGame		"Input Game"		{denon="avr2000#SIGAME"}
Switch DenonInputAux1		"Input Aux1"		{denon="avr2000#SIAUX1"}

Switch DenonZoneTwo		"Zone 2"		{denon="avr2000#Z2"}
Dimmer DenonZoneTwoVolume	"Volume [%.1f]"		{denon="avr2000#Z2ZV"}
Switch DenonZoneTwoMute		"Zone 2 Mute"		{denon="avr2000#Z2MU"}

Switch DenonZoneTwoInputSource	"Zone 2 Input Source"	{denon="avr2000#Z2SOURCE"}
Switch DenonZoneTwoInputUSB	"Zone 2 Input USB"	{denon="avr2000#Z2USB/IPOD"}
Switch DenonZoneTwoInputTuner	"Zone 2 Tuner"		{denon="avr2000#Z2TUNER"}

Sitemap

Frame label="Main Zone" {
	Switch item=DenonPower
	Switch item=DenonMainZone
	Slider item=DenonVolume
	Setpoint item=DenonVolume minValue=0 maxValue=100 step=0.5
	Switch item=DenonMute
	Switch item=DenonCommand label="Surround Mode" mappings=[MSSTANDARD="Standard", MSSTEREO="Stereo"]
	Text item=DenonSurroundMode
}
Frame label="Main Zone Input" {
	Selection label="Input" item=DenonInput mappings=[CD="CD", TUNER="Tuner", DVD="DVD", BD="Bluray", TV="TV", "SAT/CBL"="SAT/CBL", MPLAY="Mediaplayer", GAME="Game", AUX1="Aux1"]
	Text item=DenonInput
	Switch item=DenonInputCD mappings=[ON="CD"]
	Switch item=DenonInputTuner mappings=[ON="Tuner"]
	Switch item=DenonInputDVD mappings=[ON="DVD"]
	Switch item=DenonInputBluray mappings=[ON="Bluray"]
	Switch item=DenonInputTV mappings=[ON="TV"]
	Switch item=DenonInputSATCBL mappings=[ON="SAT/CBL"]
	Switch item=DenonInputMplay mappings=[ON="Mediaplayer"]
	Switch item=DenonInputGame mappings=[ON="Game"]
	Switch item=DenonInputAux1 mappings=[ON="Aux1"]
}
Frame label="Title Info" visibility=[DenonCurrentTrack!="Undefined",DenonCurrentArtist!="Undefined"] {
	Text item=DenonCurrentTrack
	Text item=DenonCurrentArtist
	Text item=DenonCurrentAlbum
	Webview url="http://192.168.1.70/NetAudio/art.asp-jpg" height=9
}
Frame label="Zone 2" {
	Switch item=DenonZoneTwo
	Switch item=DenonZoneTwoMute
	Slider item=DenonZoneTwoVolume
	Switch item=DenonZoneTwoInputUSB mappings=[ON="USB"]
	Switch item=DenonZoneTwoInputSource mappings=[ON="Source"]
	Switch item=DenonZoneTwoInputTuner mappings=[ON="Tuner"]
}

References

Control protocol documentation