denonavr
Automation Library for Denon AVR receivers
What it is and what it does
denonavr is an async Python library for controlling Denon AVR audio/video receivers over a local network. It communicates via HTTP for state queries and telnet for real-time event monitoring, allowing you to power the receiver on/off, switch inputs, adjust volume and tone, and mute audio. The library is built on asyncstdlib, httpx, and netifaces, making it suitable for integration into async home automation systems.
The package supports Python 3.8 through 3.14 and is actively maintained. It handles both polling-based updates (via HTTP) and push-based notifications (via telnet callbacks), so you can either query the receiver's state on demand or register callbacks to react instantly when the device state changes. Home Assistant uses it as a dependency, indicating production-grade reliability for home automation workflows.
Use it for:
- Integrate Denon AVR control into a Home Assistant or other home automation platform for voice or app-based receiver management.
- Build a custom dashboard or CLI tool to monitor and control multiple Denon receivers from a single interface.
- Set up real-time event monitoring via telnet to trigger downstream automations when the receiver's power, input, or volume changes.
- Automate receiver setup tasks (power on, set input, adjust volume) as part of a larger media room initialization routine.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides async control and monitoring of Denon AVR receivers over HTTP and telnet, enabling power, input, volume, and sound adjustments with real-time event callbacks.
Yes. The package is actively maintained, has no known vulnerabilities, installs with low friction, and is proven in production use by Home Assistant. Install it if you own a Denon AVR and need programmatic control from Python, especially in an async context. The MIT license is permissive and the API is straightforward.
Install
denonavr on PyPI
pip
pip install denonavruv
uv add denonavrpoetry
poetry add denonavrInstalling denonavr
Before you install
Low friction install with seven runtime dependencies all on PyPI. Active maintenance with a recent release (61 days ago) and ongoing repository activity.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both personal and commercial projects.
Quickstart
pip install denonavr
import asyncio
import denonavr
async def main():
d = denonavr.DenonAVR("192.168.1.119")
await d.async_setup()
await d.async_update()
print(d.volume)
asyncio.run(main())
Requires a Denon AVR receiver on the network at a known IP address; async/await syntax requires Python 3.8+.
Verify before relying
- Whether telnet monitoring works reliably across all Denon AVR models and firmware versions.
- Performance characteristics when polling large numbers of receivers simultaneously.
- Compatibility with Denon models released after the package's latest update.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — asyncstdlib, attrs, defusedxml, ftfy, httpx, netifaces, async-timeout |
| Maintenance | actively maintained — 61 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 87,124/month — #13,812 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: denonavr-1.3.3-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
arcam-fmjProvides async network control of Arcam FMJ…
permissive · top 15,000 on PyPI
rxvrxv discovers and controls Yamaha AV receivers…
permissive · top 15,000 on PyPI
directvAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
pyheosAn asynchronous Python library for controlling…
permissive · top 15,000 on PyPI
aiovlcControl VLC media player over a telnet…
permissive · top 15,000 on PyPI
pyatvAn asyncio Python library for controlling Apple…
permissive · top 15,000 on PyPI
aiomonitorAdds a concurrent monitor and interactive…
permissive · top 15,000 on PyPI
ha-ffmpegProvides an asyncio-based Python interface to…
permissive · top 15,000 on PyPI
sonos-websocketAsync Python library for communicating with…
permissive · top 15,000 on PyPI
python-songpalPython library for controlling Sony audio…
copyleft · top 15,000 on PyPI