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-alarmdotcom-advanced

v1.0.0

Published

Advanced Alarm.com plugin for Homebridge with full doorbell support

Readme

🏠 Homebridge Alarm.com Advanced

Advanced Homebridge plugin for Alarm.com with full doorbell support, video streaming, and complete home automation integration.

This plugin brings your entire Alarm.com ecosystem into Apple HomeKit, including features that other plugins don't support - like doorbell video streaming, real-time notifications, and two-way audio.

Doorbell Demo


✨ Features

🚪 Doorbell Integration

  • 🔔 Button press notifications - Instant alerts when someone rings the bell
  • 👁️ Motion detection - Know when someone approaches your door
  • 📹 Live video streaming - See who's there in real-time
  • 🎙️ Two-way audio - Talk to visitors through your doorbell
  • 📸 Snapshots - Instant photos in Apple Home app

📷 Camera Support

  • 🎬 HD video streaming - Up to 1080p quality
  • 🔍 Motion alerts - Get notified of movement
  • ☁️ HomeKit Secure Video - Cloud recording (if enabled)
  • 📱 Remote viewing - Access from anywhere

🔐 Security System

  • 🛡️ Arm/Disarm control - Full security panel integration
  • 🚨 Real-time alerts - Instant breach notifications
  • 📊 Status monitoring - See current alarm state
  • 🕐 Scheduling support - Automate with HomeKit scenes

🔓 Smart Locks

  • 🗝️ Lock/unlock control - Remote access control
  • 📍 Status monitoring - Know if doors are secured
  • 🔄 Auto-lock features - Set up automated locking
  • 🏠 HomeKit integration - Works with scenes and automations

🔔 Sensors

  • 🚪 Door/window sensors - Open/close detection
  • 🏃 Motion sensors - Movement alerts
  • 💨 Smoke detectors - Fire safety integration
  • 🌡️ Environmental monitoring - Temperature and humidity (if supported)

🚀 Quick Start

Prerequisites

  • Homebridge 1.6.0 or later
  • Node.js 18 or later
  • FFmpeg for video streaming
  • Alarm.com account with device access

Installation

# Install via npm
npm install -g homebridge-alarmdotcom-advanced

# Or install via Homebridge UI
# Go to Plugins → Search → "homebridge-alarmdotcom-advanced"

FFmpeg Setup (Required for Video)

# Ubuntu/Debian/Raspberry Pi OS
sudo apt update && sudo apt install ffmpeg -y

# macOS (with Homebrew)
brew install ffmpeg

# Verify installation
ffmpeg -version

Basic Configuration

Add this to your Homebridge config.json:

{
    "platforms": [
        {
            "platform": "AlarmDotComAdvanced",
            "name": "Alarm.com",
            "username": "[email protected]",
            "password": "yourpassword"
        }
    ]
}

⚙️ Configuration

Basic Settings

| Option | Type | Default | Description | |--------|------|---------|-------------| | username | string | required | Your Alarm.com email address | | password | string | required | Your Alarm.com password | | mfaCode | string | optional | Two-factor authentication code | | refreshInterval | number | 15000 | Polling interval in milliseconds |

Device Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | includeDoorbells | boolean | true | Include doorbell devices | | includeCameras | boolean | true | Include camera devices | | includeSensors | boolean | true | Include door/window/motion sensors | | includeLocks | boolean | true | Include smart lock devices | | includeSecurityPanel | boolean | true | Include security system controls |

Video & Audio Settings

| Option | Type | Default | Description | |--------|------|---------|-------------| | videoQuality | string | "high" | Video quality: low, medium, high | | enableTwoWayAudio | boolean | true | Enable doorbell two-way audio | | enableRecording | boolean | false | Enable local video recording |

Advanced Settings

| Option | Type | Default | Description | |--------|------|---------|-------------| | debugMode | boolean | false | Enable detailed logging |

Complete Configuration Example

{
    "platforms": [
        {
            "platform": "AlarmDotComAdvanced",
            "name": "Alarm.com Advanced",
            "username": "[email protected]",
            "password": "yourpassword",
            "mfaCode": "123456",
            "refreshInterval": 15000,
            "videoQuality": "high",
            "enableTwoWayAudio": true,
            "enableRecording": false,
            "debugMode": false,
            "includeDoorbells": true,
            "includeCameras": true,
            "includeSensors": true,
            "includeLocks": true,
            "includeSecurityPanel": true
        }
    ]
}

🔧 Setup Guide

1. Install the Plugin

npm install -g homebridge-alarmdotcom-advanced

2. Install FFmpeg (for video features)

sudo apt install ffmpeg -y

3. Configure Credentials

  • Add your Alarm.com username and password to config
  • If you have MFA enabled, provide a backup code
  • Consider creating a dedicated service account

4. Restart Homebridge

sudo systemctl restart homebridge

5. Add to Apple Home

  • Open Apple Home app
  • Tap +Add Accessory
  • Scan QR code or enter PIN
  • Your devices will appear automatically!

🎯 What You'll Get in Apple Home

🚪 Doorbell Experience

  • Doorbell tile with live video preview
  • Instant notifications when button is pressed
  • Motion alerts when someone approaches
  • Two-way communication with visitors
  • Rich notifications with video thumbnails

📱 HomeKit Integration

  • Siri control: "Hey Siri, show me the front door"
  • Automation: Set up scenes and triggers
  • Secure Video: Cloud recording (with iCloud+)
  • Family sharing: Everyone gets notifications
  • Apple Watch: Alerts on your wrist

🏠 Complete Home Management

  • Security system: Arm/disarm with voice or app
  • Smart locks: Control all locks remotely
  • Sensors: Monitor every door and window
  • Cameras: Live view of all areas
  • Scenes: "Goodnight" locks doors and arms system

🔍 Troubleshooting

Common Issues

🚫 Login Failed

# Check credentials in Alarm.com web portal
# If MFA is enabled, use backup codes instead of SMS
# Consider creating a service account without MFA

📹 Video Not Working

# Verify FFmpeg installation
ffmpeg -version

# Check network connectivity
ping alarm.com

# Try lower video quality in config
"videoQuality": "low"

🔍 Devices Not Appearing

# Enable debug mode
"debugMode": true

# Check Homebridge logs
sudo journalctl -u homebridge -f

# Verify devices appear in Alarm.com web portal

🔧 Permission Errors

# Fix Homebridge permissions
sudo chown -R homebridge:homebridge ~/.homebridge
sudo systemctl restart homebridge

Debug Mode

Enable detailed logging by setting "debugMode": true in your config:

{
    "platform": "AlarmDotComAdvanced",
    "debugMode": true
}

Then check logs:

# Real-time logs
sudo journalctl -u homebridge -f

# Recent logs  
sudo journalctl -u homebridge --since "1 hour ago"

🤝 Contributing

We welcome contributions! Here's how to help:

🐛 Bug Reports

  • Use the issue tracker
  • Include your config (remove passwords!)
  • Attach relevant log output
  • Describe expected vs actual behavior

💡 Feature Requests

  • Check existing issues first
  • Describe your use case
  • Explain how it would benefit other users

🔧 Pull Requests

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

💬 Discussion


📋 Compatibility

Supported Devices

  • Doorbells: All Alarm.com video doorbells
  • Cameras: Indoor/outdoor security cameras
  • Sensors: Door, window, motion, smoke detectors
  • Locks: Z-Wave and proprietary smart locks
  • Panels: All Alarm.com security panels

Supported Systems

  • Homebridge: 1.6.0+
  • Node.js: 18.0.0+
  • iOS: 14.0+ (for full HomeKit features)
  • macOS: 11.0+ (for Home app)

📱 Tested Platforms

  • Raspberry Pi 4/5 (Recommended)
  • Ubuntu 20.04/22.04
  • macOS 12+
  • Docker containers


📜 License

This project is licensed under the MIT License - see the license bundled for details.

🔒 Privacy & Security

  • Local operation: All communication stays on your network
  • No cloud dependencies: Works without internet (except for Alarm.com API)
  • Secure authentication: Uses same methods as Alarm.com web portal
  • Open source: Full transparency - inspect the code yourself

🙏 Acknowledgments

  • Homebridge team - For the amazing platform
  • Alarm.com - For providing the services we integrate with
  • FFmpeg project - For video streaming capabilities
  • Community contributors - For bug reports, feature requests, and PRs