Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 3.14 KB

File metadata and controls

45 lines (32 loc) · 3.14 KB

License: GPL v2 Appveyor build status Cirrus build status Gitub actions Github all releases

DenonControl

A Library and UI for controlling Denon Receivers, for linux and windows:

Components

  • C++ library for parsing the protocols:
    • Telnet
    • SSDP (UPnP) protocol, for automatic discovery of receivers
    • Ipod / http protocol, for control
    • UPnp events, for updates on status changes
  • SSDP bridge, to discover Denon receivers which are on a different subnet. This also allows the official Denon Android app to find a receiver which is on a different subnet.
  • Qt-based UI for basic control and status: power, volume, equalizer.

Denon Protocols

Denon receivers have two ways on communicating. One is the legacy serial protocol which is reachable over telnet (port 23). The other is a combination of HTTP based protocols. An overview is given in the table below:

Port Protocol Path description
27 telnet serial commands/events
8080 http goform/Deviceinfo.xml Android API
8080 http goform/AppCommand.xml Android API
239.255.255.250:1900 ssdp SSDP Device discovery
60006 scdp upnp/desc/aios_device/aios_device.xml UPnP Event description
60006 http upnp/scpd/renderer_dvc/RenderingControl.xml SCDP control
(listen) http upnp/event/renderer_dvc/RenderingControl Volume change events

Although both the Android and UPnP protocols does seem to have more features, they are also a whole lot more complex with xml-wrapped-in-xml constructions. As far as I know, no documentation exists. Since most of the protocol is xml-based, using wireshark and Denon's Android app make it relatively easy to figure things out. This does mean that the parsing code in this archive is far from complete.