Join GitHub today
###Introduction The denonAVRSerial protocol allows OpenRemote to control the Denon AVR range of AV processors/receivers.
The protocol has been extensively tested with the AVR-2807 but should work with all Denon receivers which contain an RS-232 port for remote control.
Many newer Denon receivers (AVR-1912 and others) contain an Ethernet port for remote control rather than the RS-232 port. We are not currently able to support this type of receiver (as none of us owns one!) although the protocol does look very similar to the one used by the RS-232 based devices.
Receivers that contain both RS-232 and Ethernet port (AVR-380x and AVR-430x series) should be supported on RS-232 although exactly what features work is unknown at this time.
You will also need an RS-232 port on your OpenRemote controller or a suitable IP->Serial interface (although only limited support is currently available over IP)
You can find below a list of all devices that OpenRemote should be able to control through this protocol. If your product is not listed here it most likely doesn't contain an RS-232 port for remote control.
The functionalities of the following products are supported by OpenRemote. Certified products are extensively tested in combination with Professional Designer and supported by OpenRemote certified Integrators.
###Configuration of System First, you will have to install OR controller. Have a look at the tutorials to install it on a NAS, computer, Raspberry Pi or get an eBox!
The version of the denonavrserial protocol that is currently available with OR 2.0 Controller only contains support for sending commands to the receiver which means it it is not possible to obtain status information from the receiver.
An overhauled version of the protocol is currently being tested and will be available soon which contains full support for sensors within OpenRemote and is able to report the full status of all parts of the receiver. If you would like to test this version, please contact philetaylor on the forum.
Firstly, you will need to edit the file:
and configure the file for your environment (either serial port or Ethernet/UDP).
#####Serial port Make sure that the correct port is configured under denonAVRSerial.comPort. If you are using a USB serial port under Linux, this is likely to be /dev/ttyUSB0.
#####Ethernet/UDP Make sure that denonAVRSerial.connectionType=UDP is configured and then enter the IP address of your interface under udpIp and the port that is configured on your interface under udpPort.
denonAVRSerial.connectionType=UDP denonAVRSerial.udpIp=0.0.0.0 denonAVRSerial.udpPort=0
###Creating devices/commands in the Designer Once you have configured the port settings and started your OR controller, you must create devices and commands to communicate with your receiver.
- *Create a device by clicking on New/Device, then enter the details in the "New Device" box:
- *Click Next then Add Command to add a new command:
When the denonavrserial protocol for OR was originally written, a lookup table of all commands was created which required the command to be formatted as (for example) pw.on which then gets translated to the proper command of PWON and sent to the receiver. I am not sure why this is as it seems fairly restrictive and if an invalid command is sent it is simply ignored.
With the updated code, you can use either format of command (pw.on or PWON).
Here is a command that will turn on the receiver (PWON) (shown as pw.on). For testing purposes, I would add a PWON and PWSTANDY command. You can also create a command called "PW" (with a serial command of "PW") as this will be used to query the status of the switch.
#####Example: Switch Here we will create a simple switch to turn the receiver off and on. It is assumed that you have already created PWON, PWSTANDY and PW commands above.
- *Create a sensor called PW which uses the command PW of type Switch
- *Create a switch, it can be called what you like but select the sensor and commands created above
- *You can then add a switch to your UI designer and link it to the switch created above
#####Example: Slider You can also create sliders to control (for example) the Master Volume (MV) of the receiver. The main difference is the use of $[param] which will send the current slider value to the receiver when the slider is moved:
- *Create a command called MV
*Create a sensor called MV using the command created above.
*Create a slider which you can call what you like and select the sensor MV and the command MV for SetValue.
*Add a slider to your UI with the slider you created above as SliderCommand.
#####Example: Status One nice feature of the Denon protocol is that whenever the input source or surround mode is changed, it reports the current mode back to the serial port. This allows us to create a "text based" status display. Here is one that displays the current surround mode:
*Create a command called MS with a serial command of MS
*Create a "Custom" sensor also called MS and select the command MS.
*Create a Label in UI designer and select the MS Sensor created above.
The text of this label will be replaced with whatever the receiver status is returned.
Once created, you can "beautify" your panel with images as below:
###Specific Designer Remarks - UI Designer <Is there anything you need to know related to the UI Designer?>
###Reference Cases <Are there any interesting projects to showcase this protocol/product? Add the links and a short description, this can both be a website or a video.>
###Useful Links Always check the OpenRemote forum for the latest developments. The Denon AVR-2807 Serial Protocol reference is available here.