Skip to main content

Python API for controlling Anthem Receivers

Project description

Build Status

This is a Python package to interface with Anthem AVM and MRX receivers and processors. It uses the asyncio library to maintain an object-based connection to the network port of the receiver with supporting methods and properties to poll and adjust the receiver settings.

This package was created primarily to support an anthemav media_player platform for the Home Assistant automation platform but it is structured to be general-purpose and should be usable for other applications as well.

Important

This package will maintain a persistant connection to the network control port which will prevent any other application from communicating with the receiver. This includes the Anthem iOS and Android remote control app as well as the ARC-2 room calibration software. You will need to disable any application that is using the library in order to run those other applications.

Requirements

  • Python 3.4 or 3.5 with asyncio
  • An Anthem MRX or AVM receiver or processor

Known Issues

  • This has only been tested with an MRXx10 series receiver, although the Anthem protocol was largely unchanged from the MRXx00 series. It should work with the older units, but I’d appreciate feedback or pull requests if you encounter problems
  • Only Zone 1 is currently supported. If you have other zones configured, this library will not allow you to inspect or control them. This is not an intractable problem, I just chose not to address that nuance in this initial release. It’s certainly feasible to add support but I am not settled on how that should be exposed in the internal API of the package.
  • I skipped over a lot of the more esoteric settings that are available (like toggling Dolby Volume on each input). If I passed over a setting that’s really important to you, please let me know and I’ll be happy to add support for it. Eventually I intend to cover the full scope of the Anthem API, but you know how it goes.

Testing

The package installs a command-line tool which will connect to your receiver, power it up, and then monitor all activity and changes that take place. The code for this console monitor is in anthemav/tools.py and you can invoke it by simply running this at the command line with the appropriate IP and port number that matches your receiver and its configured port:

anthemav_monitor --host 10.0.0.100 --port 14999

Credits

How can you help?

  • First and foremost, you can help by forking this project and coding. Features, bug fixes, documentation, and sample code will all add tremendously to the quality of this project.
  • If you have a feature you’d love to see added to the project but you don’t think that you’re able to do the work, I’m someone is probably happy to perform the directed development in the form of a bug or feature bounty.
  • If your anxious for a feature but it’s not actually worth money to you, please open an issue here on Github describing the problem or limitation. If you never ask, it’ll never happen
  • If you just want to thank me for the work I’ve already done, I’m happy to accept your thanks, gratitude, pizza, or bitcoin. My bitcoin wallet address can be on Keybase or you can send me a donation via PayPal.
  • Or, if you’re not comfortable sending me money directly, I’ll be nearly as thrilled (really) if you donate to the ACLU, EFF, or EPIC and let me know that you did.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for anthemav, version 1.1.3
Filename, size File type Python version Upload date Hashes
Filename, size anthemav-1.1.3.tar.gz (8.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page