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-envisalink-uno

v1.0.10

Published

Homebridge plugin for the EnvisaLink UNO alarm system — auto-discovers zones, supports arm/disarm/night via HomeKit

Readme

homebridge-envisalink-uno

npm version npm downloads

A Homebridge plugin for the EnvisaLink UNO security system module. Auto-discovers your zones and exposes your alarm system to HomeKit — arm, disarm, stay, and night modes all work natively.


Requirements

  • EnvisaLink UNO module (not compatible with EVL-2DS, EVL-3, or EVL-4)
  • Homebridge v1.8.0 or v2.0.0+
  • Node.js v22.10.0+

Installation

Search for homebridge-envisalink-uno in the Homebridge plugin search and install it. Then open the plugin settings to configure.


Setup

1. Find your UNO's IP address

Your EnvisaLink UNO is accessible via a web browser on your local network. Log in at http://<uno-ip>/ with:

  • Username: user
  • Password: your TPI password. On newer UNO devices the default is the last 6 characters of the device's MAC address (printed on the label). On older devices it may be user.

Forgot your password? Log into the Eyezon Portal, select your device, and choose Manage Device → Reset Device Password. This resets it back to the MAC address default.

2. Configure the plugin

Open the plugin settings in Homebridge and enter:

| Field | Description | |-------|-------------| | IP Address | Local IP address of your EnvisaLink UNO | | Password | TPI password (same one you use to log into the UNO web interface) | | Alarm PIN | A valid user code programmed on your alarm panel — used to disarm from HomeKit. Do not use the installer code. |

Then click Discover System to automatically find all your zones. Review the zone types (contact, motion, smoke, CO), then click Save Configuration followed by Save.

3. Network accessibility

This plugin runs as a Homebridge child bridge on a dedicated port. For HomeKit to discover it, that port must be reachable from your iOS device on your local network.

  • The port is shown in Homebridge under the plugin's child bridge settings (the QR code screen)
  • If Homebridge runs in Docker with bridge networking, you must explicitly expose this port in your container configuration
  • If Homebridge runs with macvlan/host networking or natively, the port is accessible automatically
  • Set the port to a fixed value in the child bridge settings — if it changes on every restart, HomeKit will lose the device

4. HomeKit

After Homebridge restarts, your alarm system will appear in HomeKit as:

  • A Security System accessory for arm/disarm/stay/night
  • A sensor accessory for each discovered zone

HomeKit arm modes

| HomeKit mode | UNO command | Behaviour | Notes | |---|---|---|---| | Home | ^08 Stay Arm | Perimeter armed, motion sensors off, entry delay active | — | | Away | ^09 Away Arm | Fully armed, all sensors active, entry delay active | — | | Night | ^08 Stay Arm | Same as Home/Stay | See limitation below | | Off | ^12 Disarm | Disarmed | Requires alarm PIN |

Night arm limitation

HomeKit's Night mode is intended to mean "Stay with no entry delay" (alarm triggers instantly). The UNO TPI has no command for this — ^08 (Stay) and ^09 (Away) are the only arm commands available locally. The Eyezon app achieves "Arm No Entry (*9)" via their cloud service, which is not accessible to local integrations.

The UNO firmware acknowledges ^0A but it has no effect on the panel. Until EyezOn implements it, Night and Home map to the same behaviour (Stay Arm). A feature request has been filed with EyezOn — if you're a UNO customer and want this feature, consider contacting EyezOn/Envisacor support to add weight to the request.

The UNO correctly reports ARMED_ZERO_ENTRY_DELAY status when the panel is in this mode (e.g. set from the physical keypad), and HomeKit will show Night when that state is detected.

Supported zone types

| Type | HomeKit accessory | |------|-------------------| | contact | Contact Sensor (default) | | motion | Motion Sensor | | smoke | Smoke Sensor | | co | Carbon Monoxide Sensor |

Zone types are inferred from zone names during discovery and can be changed manually in the plugin settings.


Relationship to the upstream plugin

This plugin is forked from homebridge-envisalink-ademco by @haywirecoder, which supports Honeywell/Ademco Vista panels via the EnvisaLink 2DS/3/4. That plugin is excellent — if you have an Ademco panel and a standard EnvisaLink, use it instead.

This fork exists because the UNO uses a different TPI protocol, different status codes, and a built-in HTTP interface that enables auto-discovery. Those differences are significant enough to warrant a separate plugin.


Development

npm install
npm run build

See doc/ARCHITECTURE.md for design notes and UNO protocol details.


Security — no credentials in source

Never commit real credentials. The pre-commit hook will block you if you try.

  • Real values (IP, password, PIN) go in .env — which is gitignored
  • Use .env.example as a template with placeholder values only

License

MIT