Denon AVR

Controls real Denon and Marantz AV receivers (same parent company, same protocol) over either of two connection modes, chosen per receiver.

Connecting

Add a receiver by address, or let SSDP auto-discovery find it on your network. A discovered or manually-added row is only saved once a real status fetch confirms it's actually reachable. Discovery defaults to port 80; some 2016-and-newer "AVR-X 2016"-generation receivers need it bumped to 8080 by hand, in either flow.

HTTP or Telnet

HTTP is the original, poll-based mode (matching Athena's usual preference for polling over a persistent socket). Telnet exists because some 2016+ receivers block the legacy HTTP control API entirely at the firmware level, with no setting to re-enable it - confirmed against real hardware. Telnet is genuinely push-based (a live connection, not polling) with automatic reconnect. Both modes expose the exact same entities - Dashboard, Automations, and History don't care which one a receiver uses, and there's no live migration between them (delete and re-add to switch).

What you get

Per zone - Main Zone plus Zone2/Zone3 if the receiver reports them: power (switch), volume (kept in the receiver's own native dB range, -80.0 to +18.0 in 0.5 steps, rather than an invented 0-100% scale), mute (switch), and input (a fixed common source list - CD, Tuner, DVD, Blu-ray, TV, Satellite/ Cable, Game, Aux, Net, Media Player, USB/iPod, Bluetooth). Updates every 15 seconds over HTTP, or live over Telnet. It also shows up as a Media player alongside your other speakers/TVs, with volume normalized to 0-100% there instead.

Sound mode, EQ/tone controls, and per-channel level trims aren't supported - basic power/volume/mute/input control first. Neither connection mode has been confirmed against a live receiver in this environment; the Telnet wire protocol itself is verified directly against Denon's own official protocol document, the highest-confidence source used for this integration.