Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ol-iver/denonavr
Automation Library for Denon AVR receivers.
https://github.com/ol-iver/denonavr
api denon home-assistant home-automation marantz python rest
Last synced: 25 days ago
JSON representation
Automation Library for Denon AVR receivers.
- Host: GitHub
- URL: https://github.com/ol-iver/denonavr
- Owner: ol-iver
- License: mit
- Created: 2016-11-22T02:09:51.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2024-04-05T21:29:33.000Z (7 months ago)
- Last Synced: 2024-04-11T19:16:44.613Z (7 months ago)
- Topics: api, denon, home-assistant, home-automation, marantz, python, rest
- Language: Python
- Homepage:
- Size: 786 KB
- Stars: 172
- Watchers: 21
- Forks: 66
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# denonavr
[![Release](https://img.shields.io/github/v/release/ol-iver/denonavr?sort=semver)](https://github.com/ol-iver/denonavr/releases/latest)
[![Build Status](https://github.com/ol-iver/denonavr/actions/workflows/python-tests.yml/badge.svg)](https://github.com/ol-iver/denonavr/actions/workflows/python-tests.yml)
[![PyPi](https://img.shields.io/pypi/v/denonavr.svg)](https://pypi.org/project/denonavr)
[![License](https://img.shields.io/github/license/ol-iver/denonavr.svg)](LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)Automation Library for Denon AVR receivers
## Installation
Use pip:
```$ pip install denonavr```
or
```$ pip install --use-wheel denonavr```
## Usage with `async`Writing `async` and `await` methods are outside the scope of the documentation. You can test `async` usage from the Python REPL. In a terminal run:
`python3 -m asyncio`
The `asyncio` library should automatically be imported in the REPL. Import the `denonavr` library and set up your receiver. If you know the IP address, enter it below replacing `192.168.1.119`.
```
>>> import asyncio
>>> import denonavr
>>> d = denonavr.DenonAVR("192.168.1.119")
>>> await d.async_setup()
>>> await d.async_update()
>>> print(d.volume)
-36.5
```### Monitoring with telnet
In addition to retrieving the current device status via HTTP calls, `denonavr` library also has the ability to setup a task that will connect to the receiver via telnet on TCP port 23 and listen for real-time events to notify of status changes.
This provides instant updates via a callback when the device status changes. Receivers support only one active telnet connection.```
>>> import asyncio
>>> import denonavr
>>> d = denonavr.DenonAVR("192.168.1.119")
>>> await d.async_setup()
>>> await d.async_telnet_connect()
>>> await d.async_update()
>>> async def update_callback(zone, event, parameter):
>>>>>> print("Zone: " + zone + " Event: " + event + " Parameter: " + parameter)
>>> d.register_callback("ALL", update_callback)
```### Power & Input
```
>>> await d.async_power_on()
>>> await d.async_update()
>>> d.power
'ON'>>> await d.async_power_off()
>>> await d.async_update()
>>> d.power
'OFF'>>> d.input_func
'Tuner'
>>> await d.async_set_input_func("Phono")
>>> d.input_func
'Phono'
```
### Sound
```
>>> await d.async_mute(True)
>>> await d.async_mute(False)
```### Other methods
Other `async` methods available include:
* `d.async_bass_down`
* `d.async_bass_up`
* `d.async_treble_down`
* `d.async_treble_up`
* `d.async_volume_down`
* `d.async_volume_up`
* `d.async_set_volume(50)`## Collection of HTTP calls
For a collection of HTTP calls for Denon receivers please have a look at the `doc` folder.## License
MIT## Author
@ol-iver: https://github.com/ol-iver## Contributors
@soldag: https://github.com/soldag
@shapiromatron: https://github.com/shapiromatron
@glance-: https://github.com/glance-
@p3dda: https://github.com/p3dda
@russel: https://github.com/russell
@starkillerOG: https://github.com/starkillerOG
@andrewsayre: https://github.com/andrewsayre
@JPHutchins: https://github.com/JPHutchins
@MarBra: https://github.com/MarBra
@dcmeglio: https://github.com/dcmeglio
@bdraco: https://github.com/bdraco## Users
Home Assistant: https://github.com/home-assistant/home-assistant/
denonavr-cli: https://pypi.org/project/denonavr-cli/