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-tp-link-powerline-mdw

v2.0.2

Published

Homebridge TP-Link Powerline.

Readme

[!WARNING] This project is deprecated. It is no longer maintained and will not receive further updates, bug fixes, or compatibility changes. It remains installable for now, but you should plan to migrate away — the repository may be archived and support removed entirely in a future update.

Homebridge TP-Link Powerline Platform Plugin

A Homebridge platform plugin for TP-Link Powerline adapters. Exposes each adapter as a Wi-Fi Satellite accessory in the Home app, showing whether it is reachable (connected) or not.

Fork notice: This is a modernised fork of homebridge-tp-link-powerline originally created by EpicKris. This fork adds Homebridge 2.x and Node.js 22+ support, fixes several bugs, and modernises the toolchain.

Requirements

  • Node.js 22.12.0 or later on Node.js 22, or Node.js 24.x
  • Homebridge 1.6.0 or later (Homebridge 2.x supported)

Installation

Install via the Homebridge UI, or manually:

npm install -g homebridge-tp-link-powerline-mdw

Configuration

Add the platform to your Homebridge config.json:

{
  "platform": "TpLinkPowerline",
  "name": "TP-Link Powerline",
  "devices": [
    {
      "name": "Living Room Powerline",
      "mac": "AA:BB:CC:DD:EE:FF",
      "model": "TL-PA7020",
      "serialNumber": "1234567890",
      "pollInterval": 10000
    }
  ]
}

Configuration Options

| Field | Type | Required | Default | Description | | ----- | ---- | -------- | ------- | ----------- | | name | string | Yes | TP-Link Powerline | Platform display name | | devices | array | No | [] | List of device overrides | | devices[].mac | string | Yes | — | MAC address of the device (format AA:BB:CC:DD:EE:FF) | | devices[].name | string | No | Auto-detected | Display name for the accessory | | devices[].model | string | No | — | Device model shown in accessory details | | devices[].serialNumber | string | No | — | Serial number shown in accessory details | | devices[].pollInterval | integer (ms) | No | 10000 | How often to ping the device. Minimum 1000. |

Supported Devices

Any TP-Link Powerline adapter discoverable on the local network should work. Device discovery uses node-tp-link-powerline, which performs a local ARP scan and ICMP ping — no cloud connection is required.

Devices found on the network that are not in your devices config array are logged as warnings but are still registered as accessories.

Contributors

| Contributor | Role | | ----------- | ---- | | EpicKris | Original author | | MaddogWarner | Modernisation, bug fixes, ESM migration | | Claude (Anthropic) | Code review, implementation planning, bug identification | | Codex (OpenAI) | Code implementation, TypeScript strict mode fixes, CI validation |

Changelog

2.0.0

  • Homebridge 2.x compatibility (ESM module migration)
  • Node.js 22.12+ and 24.x support
  • Fixed memory leak: polling interval is now stored and clearable via destroy()
  • Fixed unhandled error event on TpPlc EventEmitter (prevented Node.js crash)
  • Fixed duplicate pings: getStatus now returns cached value; only the poller calls ping()
  • Fixed typo: accessory.context.nameeaccessory.context.name (new accessories now named correctly)
  • Configurable pollInterval per device (config schema updated)
  • Updated ESLint to v9 flat config with typescript-eslint v8
  • Updated TypeScript to v5 with ES2022 target and NodeNext modules
  • Updated CI to test Node.js 22.x and 24.x; GitHub Actions updated to v4