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

aritech-client

v1.4.2

Published

JavaScript client for communicating with Aritech ATS alarm panels (ATS1500AIP tested). Supports programmatic usage and CLI.

Readme

Aritech Client (Unofficial)

An unofficial, community-developed JavaScript client to monitor and control KGS (formerly UTC & Carrier) Aritech alarm panels over your local network.

This project is not affiliated with, endorsed by, or supported by KGS, UTC, Carrier, or any of their subsidiaries.

Compatibility

This library supports the ACE 2 ATS version 6 protocol, which works with Advisor Advanced panels:

  • x500 panels: ATS1500A, ATS2000A, ATS3500A, ATS4500A (PIN-based login, AES-192)
  • x700 (everon) panels: ATS1500A-IP-MM, ATS3500A-IP-MM, ATS4500A-IP-MM (username/password login, AES-256)

The older version 4 protocol for Master/Classic panels is not supported.

Note that protocol behavior may vary based on panel firmware version. This library has been tested with a limited set of panels. If you encounter issues, please mention your panel model and firmware version when reporting.

Installation

Clone the repository and create a config.json file based on your panel type:

For x500 panels (ATS1500A, ATS2000A, ATS3500A, ATS4500A):

Copy config.x500.json.example to config.json and edit with your settings:

{
  "host": "192.168.1.100",
  "port": 3001,
  "pin": "1234",
  "encryptionKey": "your-24-char-encryption-key"
}

For x700 panels (ATS1500A-IP-MM, ATS3500A-IP-MM, ATS4500A-IP-MM):

Copy config.x700.json.example to config.json and edit with your settings:

{
  "host": "192.168.1.100",
  "port": 3001,
  "username": "ADMIN",
  "password": "SECRET",
  "encryptionKey": "your-48-char-encryption-key"
}

Usage

node aritech-cli.js

For troubleshooting, enable debug logging:

LOG_LEVEL=debug node aritech-cli.js

Note: Debug logs may contain sensitive information such as your PIN code.

Commands

Available commands:
  aritech info                 - Show panel description info
  aritech monitor              - Start monitoring mode (COS events)
  aritech arm [area] [type] [--force]  - Arm area (default: area 1, type full)
                                 Types: full, part1, part2
                                 --force: Force arm despite faults/active zones
  aritech disarm [area]        - Disarm area (default: 1)
  aritech zones                - Show zone states
  aritech areas                - Show area states
  aritech outputs              - Show output names and states
  aritech triggers             - Show trigger names and states
  aritech doors                - Show door names and states
  aritech filters              - Show filter names and states
  aritech inhibit <zone>       - Inhibit a zone
  aritech uninhibit <zone>     - Uninhibit a zone
  aritech force-activate <output>   - Force activate an output (override to ON)
  aritech force-deactivate <output> - Force deactivate an output (override to OFF)
  aritech cancel-force <output>     - Cancel force on output (return to normal)
  aritech trigger-activate <trigger>   - Activate a trigger
  aritech trigger-deactivate <trigger> - Deactivate a trigger
  aritech door-lock <door>     - Lock a door
  aritech door-unlock <door>   - Unlock a door (indefinitely)
  aritech door-unlock-standard <door> - Unlock door for standard configured time
  aritech door-unlock-timed <door> <seconds> - Unlock door for specified seconds
  aritech door-disable <door>  - Disable a door
  aritech door-enable <door>   - Enable a door
  aritech eventLog [count]     - Read event log (default: 50 events)

Configuration options (override config.json):
  --host <ip>              - Panel IP address
  --port <port>            - Panel port number
  --encryptionKey <key>    - Encryption key (24-48 chars)

  x500 panels:
  --pin <pin>              - User PIN code

  x700 panels:
  --username <user>        - Login username
  --password <pwd>         - Login password (defaults to username)

Examples:
  aritech --host 192.168.1.100 --pin 1234 --encryptionKey <key> zones
  aritech --host 192.168.1.100 --username ADMIN --password SECRET --encryptionKey <key> zones
  aritech arm 1 full           - Full arm area 1
  aritech arm 1 part1          - Part arm 1 (set 1)
  aritech arm 2 part2          - Part arm 2 (set 2)
  aritech arm part1            - Part arm area 1 (default)
  aritech arm 1 full --force   - Force full arm area 1
  aritech outputs              - Show all outputs with states
  aritech force-activate 1     - Force activate output 1 (override to ON)
  aritech cancel-force 1       - Cancel force on output 1 (return to normal)
  aritech triggers             - Show all triggers with states
  aritech trigger-activate 1   - Activate trigger 1

Features

Basic

  • ✅ Connect to panel and retrieve panel description
  • ✅ Session key exchange
  • ✅ Login with PIN code (x500 panels)
  • ✅ Login with username/password (x700 panels)
  • ✅ Read event log

Areas

  • ✅ Read area names
  • ✅ Read area status (batched or individual)
  • ✅ Monitor change events for areas
  • ✅ Arm / Partial arm / Disarm areas

Zones

  • ✅ Read zone names
  • ✅ Read zone status (batched or individual)
  • ✅ Monitor change events for zones
  • ✅ Inhibit / uninhibit zones

Outputs

  • ✅ Read output names
  • ✅ Read output states
  • ✅ Monitor change events for outputs
  • ✅ Force activate / Force deactivate / Cancel force outputs

Note that only with an installer pin you can force the status of an output. An installer pin by default does not have arming/disarming permissions!

When using an installer pin you have to specify the login type as: client.loginWithPin(LOGIN_TYPE.INSTALLER). Note that you can have only 1 installer login active, so ATS8500 will not work correctly while logged in with the client as installer.

Triggers

  • ✅ Read trigger names
  • ✅ Read trigger states
  • ✅ Monitor change events for triggers
  • ✅ Activate / Deactivate triggers

Doors

  • ✅ Read door names
  • ✅ Read door states
  • ✅ Monitor change events for triggers
  • ✅ Enable / Disable doors
  • ✅ Lock / Unlock doors
  • ✅ Timed and standard time unlock

Filters

  • ✅ Read filter names
  • ✅ Read filter states (read-only, on/off)
  • ✅ Monitor change events for filters

Filters are read-only entities that represent logical conditions in the panel. They have a simple active/inactive state and cannot be controlled directly.

Contributing

Pull requests are welcome. We have no plans to implement additional functionality at this time, but contributions are appreciated.

Disclaimer

This software is provided "as is" without warranty of any kind. Use at your own risk. The authors are not responsible for any damage or security issues that may arise from using this software.

This is an independent project developed through protocol analysis. It is not based on any proprietary source code or documentation.

Trademarks

ATS, Advisor, and Aritech are trademarks of KGS Fire & Security. All other trademarks are the property of their respective owners. The use of these trademarks does not imply any affiliation with or endorsement by their owners.