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-zencontrol-tpi

v1.1.1

Published

A plugin for Homebridge that enables control over lights using Zencontrol Third Party Interface (TPI).

Readme

Zencontrol Third Party Interface Homebridge plugin

A plugin for Homebridge that enables control over lights using Zencontrol Third Party Interface (TPI).

Features

Groups

DALI Groups will be represented as light switches.

Individual lights

Any light ECGs that aren't part of a group will be represented as a light switch.

Blinds

Any blind controller that has its name (Location name) listed in the Blinds list in the plugin configuration will be represented as a window covering.

If a system variable exists with the same name as the blind but with the word "Position" after it, then it will be used to reflect the position of the blind (0 = closed, 100 = open). This is because the blind controller arc level may not accurately reflect the blind position if it resets to 0 after some time.

If the position system variable is available, HomeKit will send a Recall Min to the blind (instead of the expected Off), and you must setup a trigger + sequence to convert that to Off and to update the position system variable.

Windows

If you have windows controlled by a system variable pair—one for control and one for position—you can list the control variable name in the plugin configuration.

The plugin assumes that the control system variable is set to:

  • 0 for stopped
  • 1 for closing
  • 2 for opening

There should be a position system variable with the same name as the control variable with the word "Position" after it. This has the same semantics as for blinds.

Relays

Any relay that has its name (Location name) listed in the Switches list in the plugin configuration will be represented as a switch. Only named relays are handled to prevent pulling through relays that aren't appropriate.

Temperature

System variables that end with the word "Temperature" will be represented as temperature sensor accessories.

Humidity

System variables that end with the word "Humidity" will be represented as humidity sensor accessories.

Lux

System variables that end with the word "Lux" will be represented as light sensor accessories.

CO2

System variables that end with the word "CO2" will be represented as carbon dioxide sensor accessories.

Set the CO2 level to treat as abnormal in the plugin configuration.

Development

nvm install
nvm use
npm install
npm run build

When I make changes I like to test them on my local Homebridge, which is on another device accessible via ssh:

npm run build && rsync -a dist config.schema.json [email protected]:/var/lib/homebridge/node_modules/homebridge-zencontrol-tpi/

Then I restart Homebridge to load the updated code.

Contributing

This project uses npm and changesets for its build process.

When committing a change, please create a changeset:

npm exec changeset
git commit -a "feat: ..."

Releasing

Pre-release

To enter pre-release mode:

npm exec changeset pre enter next
git add .changeset/pre.json
git commit -m "publish: enter prerelease"

Once you've made changes and committed one or more changesets; bump the version:

npm run release:version
git commit -a -m "publish: prerelease"
npm run release

To exit pre-release mode:

npm exec changeset pre exit
npm run release:version
git commit -a -m "publish: release"
npm run release