npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-anthemreceiver-plus

v1.2.2

Published

Maintained Anthem receiver integration with HomeKit volume mapping, confirmed controls, and a modern settings UI.

Readme

homebridge-anthemreceiver-plus

Control your Anthem receiver from Apple Home and the Apple TV Remote on your iPhone. Choose the controls you want for each supported zone, including power, volume, mute, and input selection.

This project retains the AnthemReceiver platform name and existing accessory identifiers to support migration from homebridge-anthemreceiver. See migration guidance before replacing an existing installation, and project origins for upstream credit.

Available on npm: install homebridge-anthemreceiver-plus from Homebridge UI. See GitHub Releases for version-specific release notes.

Highlights

  • A volume slider that fits your listening range. Set Maximum volume (dB) to match the limit on your receiver. The Home app's full slider then spans your usable range, with 100% representing your chosen maximum. See how volume control works.
  • Modern settings configuration UI with day and night themes. Grouped connection, zone, and display settings make setup easier, with inline validation and Homebridge's familiar Save button.
  • Diagnostics for other Anthem hardware. Collect a shareable query report for recognized or unknown models without enabling unsupported controls.
  • A read-only connection preview. Check the receiver's model, firmware, inputs, and available zone status using selected status queries.
  • More reliable everyday control. Improved reply handling, automatic reconnection, and state refresh help HomeKit stay in sync. Supported commands wait for receiver confirmation and report communication failures.
  • Stable accessory and input handling. Corrected Zone 2 setup and input updates preserve existing accessory identities and reuse unchanged input services.
  • Ability to select “None” for Anthem listening mode. A dedicated None switch lets supported receivers return to listening mode None from Apple Home or a scene, while preserving existing listening-mode switch identifiers. There was no way to turn this off in the old plugin once a Listening mode was selected.
  • Experimental: STR Preamplifier support Validation is pending. See STR testing and diagnostic reports.

Controls and supported models

Available controls depend on the model and enabled zones:

  • Zone 1 and Zone 2 combined Power/Input accessories, paired separately in Apple Home for Apple TV Remote access.
  • Separate zone controls for Power, Volume, Mute, Input, and Dolby Audio Processing.
  • Zone 1 ARC and Audio Listening Mode controls, including a dedicated None listening-mode switch on protocol V02 models.
  • Front Panel Brightness control.

Supported receiver families:

  • AVM 60, AVM 70, AVM 90
  • MRX 310, MRX 510, MRX 710
  • MRX 520, MRX 720, MRX 1120
  • MRX 540, MRX 740, MRX 1140
  • MRX SLM (single zone)
  • Experimental: STR Preamplifier (STR PA) and STR Integrated Amplifier (STR IA), single zone. Power, mute, normal inputs, dB volume and four STR listening modes are implemented; physical-device validation is pending. See STR testing and diagnostic reports. ARC, brightness, menu navigation and Home Theatre Bypass selection are not enabled for STR.

Homebridge 1.8 and 2.x on Node.js 22 or 24 are supported. Automated checks cover those combinations; see package.json for the declared engine ranges. The original plugin's broader, untested Node engine ranges are not carried into this new package.

Anthem controls in Apple Home

Getting started

  1. Install Homebridge and Homebridge UI.
  2. Install homebridge-anthemreceiver-plus from Homebridge UI, or use the npm commands below. If you use the old plugin, follow Migrating from the original plugin first.
  3. For STR, enable network control as described in the STR manual. For receivers, enable Connected Standby on the receiver. On supported models, this is in the receiver's web UI under System Setup → General → General Settings.
  4. In Homebridge UI, open Plugins, find the Anthem Receiver Plus tile, click its vertical three dots (⋮), and choose Plugin Config. Enter the receiver address, and enable the accessories you want.
  5. Optionally set Maximum volume (dB) to match your receiver's maximum volume setting.
  6. Save and restart the relevant Homebridge instance or child bridge.

Enabled standalone controls appear through Homebridge. Combined Power/Input accessories require the separate pairing step below.

Adding the Power/Input accessory to the Home App

Pair each enabled zone's Power/Input accessory once to make it available in Apple Home and the Apple TV Remote in Control Center.

  1. Enable Power/Input for the zone in Plugin Config (plugin tile → ⋮ → Plugin Config), save, and restart Homebridge.
  2. Open the Home app on your iPhone.
  3. Tap + → Add Accessory → More Options.
  4. Select the zone's Power/Input television accessory, such as Zone1 or Zone2.
  5. Follow the pairing prompts, using the Homebridge pairing code when requested.

Wording and placement can vary by iOS version. Repeat for a second enabled zone. Existing paired accessories do not need to be removed and added again for a normal plugin update.

Apple TV Remote in Control Center

Open the Apple TV Remote in your iPhone's Control Center and select the paired zone accessory. Available controls depend on the receiver model and the buttons shown by iOS.

| Control | Receiver action | | --- | --- | | iPhone's physical volume buttons | Adjust volume while using the receiver remote | | Up / Down | Adjust volume | | Play / Pause | Toggle mute | | Left / Right | Select input in the main zone | | Back | Cycle listening mode in the main zone | | Info | Show or hide the main-zone menu | | Center | Select a main-zone menu option |

On STR, use the input selector for normal inputs. Menu/navigation keys are not enabled. Back cycles the four STR listening modes; there is no STR None mode.

Volume control in Apple Home

Enable the zone's Volume accessory to get a slider in the Home app. HomeKit exposes this separate control as a lightbulb-style accessory: its brightness slider adjusts receiver volume, and its on/off control unmutes or mutes a powered-on zone. Use the zone's power control to turn the receiver on first.

Make the full volume slider provide a more useful natural range of control in the home app.

If you limit your Anthem to a maximum such as −10 dB, set the plugin's Maximum volume (dB) to the same value. The slider then spreads volume adjustments across that listening range. 100% means your chosen −10 dB maximum, making the top of the slider meaningful instead of leaving part of its travel above the receiver's allowed range.

The mapping also applies to volume feedback, so a change made on the receiver is reflected on the same scale in HomeKit. This setting applies to the plugin's percentage-based volume controls; it does not rescale the relative up/down buttons on the remote.

With a maximum of −10 dB, the slider behaves like this:

| Home app slider | Receiver setting | | --- | --- | | 0% | Mute | | 1% | −89.5 dB | | 50% | Approximately −50 dB | | 100% | −10 dB |

Values from 1–100% map linearly in dB, rounded to the receiver's 0.5 dB steps. A percentage is a position within your configured range. Moving above 0% sends an unmute command as well as the requested volume.

Set the maximum on the receiver itself, then enter the same value in the plugin. The plugin setting controls slider mapping; it does not change the Anthem's own maximum-volume setting or limit other remotes. One plugin value is shared by both zones, so check your zone limits if you use Zone 2.

STR exception: volume always uses dB commands, with 1% = −96 dB and 100% = the configured cap (at most +7 dB; +7 dB when blank). 0% mutes. STR up/down buttons move by 0.5 dB and also honor this cap. The receiver-family mapping example above remains unchanged.

On supported receiver models, leave Maximum volume (dB) blank to retain the receiver's native percentage control (PVOL). In JSON, the setting is named MaxVolumeDB; for example, this configuration enables the Zone 1 volume accessory:

{
  "platform": "AnthemReceiver",
  "Host": "192.168.1.50",
  "Port": 14999,
  "MaxVolumeDB": -10,
  "Zone1": {
    "Volume": true
  }
}

Configuration UI

Open Plugins → Anthem Receiver Plus tile → ⋮ → Plugin Config. This page groups receiver connection details, Zone 1/Zone 2 accessories, display and volume settings, and iPhone pairing help. Day and night themes include contrasting text, fields, help text, buttons, and borders.

  • Test connection reads model, firmware, inputs, and available zone status using the address currently entered. It does not send power, volume, mute, input-change, or remote-key commands.
  • The preview is timestamped. Missing status is shown as unknown rather than Off, and model-specific options account for restrictions such as the SLM's single zone.
  • You can save valid settings while the receiver is offline. Opening, editing, or testing settings does not save them automatically: use Homebridge's Save button, then restart the relevant instance or child bridge.
  • Existing configuration keys and Homebridge metadata are preserved.

Advanced diagnostics and unknown Anthem models

Open Plugins → Anthem Receiver Plus tile → ⋮ → Plugin Config, then expand Advanced diagnostics / Test unsupported device in the connection section. Enter the device address and port, optionally enter the model printed on the device, choose its current power state, and select Run diagnostics. Use Also query Zone 2 only when relevant. Start with the device powered on; repeat in standby if useful. No save or restart is needed to run the probe against the entered address.

This separate diagnostic mode accepts replies from unknown Anthem models (including investigations of additional hardware). It does not add those models to the supported-device list, create accessories, or prove that control commands work. Ordinary Test connection continues to use the existing supported-model check.

The bounded probe selects queries after model identification. Receiver discovery samples model/firmware, serial and MAC identity formats, first-input naming formats, input count, and Zone 1 power/mute/volume/percentage/input status; optional Zone 2 uses the same status queries. Recognized STR models use a restricted ten-query profile with MAC identity, older input names, dB volume and listening mode; no Zone 2 or percentage-volume query is sent. It samples input 1 rather than enumerating the full device. Rejected alternative formats and timeouts do not alone prove lack of support.

A query suffix does not guarantee read-only behavior on every Anthem model. In particular, upstream STR testing reports that Z1BRT? can change balance; this plugin never sends that command. Do not expand the probe with guessed commands. See the STR user testing guide for paired reports, physical control checks and evidence needed to add more features.

Results show each query, its purpose, outcome, elapsed time, and explanation. A rejected older/newer query is labeled as an expected alternate-format rejection only when its counterpart answered successfully. Detected zone power, mute, volume, and input are shown separately from your optional power-state observation. Partial evidence is retained on cancellation, disconnection, or the 30-second overall limit. Queries are sequential and spaced; a query timeout closes the connection before the next probe so a late response cannot be attributed to a different command. For a first-time STR test, there is normally no Homebridge connection to stop. If this plugin is already configured for that same STR, pause its normal connection while running diagnostics: use its tile’s ⋮ → Stop Child Bridge, or Disable and restart Homebridge if it has no child bridge. Leave Homebridge UI running. The step-by-step STR guide covers installation, reports, restarting control, and returning to the regular release.

Use Copy report or Download report to attach the previewed JSON to a support issue. The report includes plugin/Node/Homebridge versions where available, user-reported power state, detected identity, query outcomes, and reply evidence. Schema version 2 adds a compact summary of attempted/answered/rejected queries and detected device state. userContext.userReportedPowerState is your optional dropdown selection (null when not specified); summary.detectedState comes from answered queries. Copy and download both contain the exact previewed JSON, including this summary and query explanations, so a second copy of the table is unnecessary. By default serial numbers, MAC addresses, input names, unsolicited/unrecognized contents, and raw byte samples are omitted; the configured address is redacted. Include raw replies and device identifiers explicitly adds raw reply text and bounded hex samples (useful for unfamiliar reply framing); review the preview before sharing. Homebridge configuration and pairing credentials are never included. Reports are not automatically sent anywhere.

For a hardware-support request, include the exact model, firmware, on/standby test conditions, the diagnostic report, and a link to its control-protocol documentation if available. Query replies are evidence for investigation; power, input, mute, and volume control still require separate hardware validation before support can be claimed.

Reliability and stability improvements

The receiver communication and accessory handling have been updated to make everyday use more dependable:

| Improvement | What it means in use | | --- | --- | | Complete TCP reply buffering | Replies split across network packets are reassembled, so partial messages no longer silently lose state updates. | | Response validation | Malformed receiver data is rejected, and ARC/Dolby feedback works for multi-digit input numbers. | | Connection recovery and cleanup | Closed connections, errors, and timeouts trigger controlled retries. Old sockets and timers are cleaned up, and a fresh handshake refreshes existing accessories. | | Confirmed state changes | HomeKit requests are processed in order and supported state changes wait for feedback or a read-back. Power-on waits for basic zone readiness; offline or unconfirmed operations report failure. | | Correct zone and configuration handling | Missing optional configuration sections and the default port are handled consistently. Zone 2 registers on compatible receivers, while SLM remains single-zone. | | Stable input updates | Refreshed input lists update using stable identifiers, reusing unchanged services and removing stale ones. Standalone input accessories no longer need to be removed and re-added to pick up the refreshed list. | | Listening-mode None selection | A dedicated None switch resolves the missing selection described in upstream issue #19, using receiver confirmation and preserving existing ALM switch identities. | | Automated regression checks | CI covers receiver simulations, configuration, command handling, browser themes, package contents, and migration. |

Commands are not automatically replayed after a disconnect, avoiding repeated toggles or volume steps. Relative volume/listening-mode controls verify a subsequent state reply. Navigation and menu keys can only confirm that the command was written to the connection; the protocol does not provide equivalent confirmation of their effect.

For contributor setup, stable publication, and verification, see SUCCESSOR_SETUP.md.

See CHANGELOG.md for the change summary and IMPROVEMENT_PLAN.md for validation history and remaining follow-up work.

Migrating from the original plugin

If you use homebridge-anthemreceiver, keep your existing configuration with "platform": "AnthemReceiver" and replace the package while Homebridge is stopped. Your existing accessories, pairings, scenes, and automations should carry over. The maintainer completed this migration successfully without changing any scenes or automations.

Download a Homebridge backup first, just to be safe. Keep your existing bridge or child bridge and Apple Home accessories; do not reset or remove them.

On a Linux installation using the Homebridge APT hb-service wrapper, run these commands in order:

sudo hb-service stop
sudo hb-service remove homebridge-anthemreceiver
sudo hb-service add homebridge-anthemreceiver-plus
sudo hb-service start

Keep Homebridge stopped until the new package is installed successfully. After startup, check your existing controls, scenes, and automations. See MIGRATION.md for a few additional notes.

Installing or updating

For a new installation or an update to Plus, search for homebridge-anthemreceiver-plus in Homebridge UI and install or update it there.

With the Homebridge APT hb-service wrapper, you can also run:

sudo hb-service stop
sudo hb-service add homebridge-anthemreceiver-plus
sudo hb-service start

This installs the latest stable version from npm. If installation fails, resolve the error before starting Homebridge. These terminal commands apply to the APT installation; use the installer appropriate to your setup on other systems.

After a new installation, open Plugins → Anthem Receiver Plus tile → ⋮ → Plugin Config in Homebridge UI. For normal Plus updates, keep your existing configuration and paired accessories. To inspect startup logs with the APT wrapper:

sudo hb-service view

See CHANGELOG.md and GitHub Releases for changes and release notes.

Compatibility and troubleshooting

  • Startup readiness: a receiver can still take a few seconds to become ready after power-on. The plugin now waits for basic zone status within a bounded deadline and reports a timeout if readiness is not confirmed; it cannot eliminate hardware boot time.
  • Refreshing inputs: input lists are read during initialization/reconnection and zone power-on. After editing inputs on the receiver, restart the relevant Homebridge instance or child bridge, or power-cycle the zone, to trigger a refresh. Updated lists are reconciled without removing accessories. If the Home app still shows an old list, close and reopen it.
  • Switch names in Apple Home: if Input or Audio Listening Mode switches show a generic zone name, open each switch's details and clear the custom name so Home can use the supplied default. The previously reported Home app naming behavior has not been verified as fixed by this PR.
  • Listening modes: direct listening-mode switches, including None, require a protocol V02 model. Select None by turning its switch on; turning all mode switches off is not how to select it. Older receivers retain Apple Remote listening-mode cycling.
  • Standby connectivity: keep Connected Standby enabled so the receiver can remain reachable when powered off.
  • Connection preview: this uses a separate read-only connection. Behavior on models that limit simultaneous control connections needs model-specific testing.