Git Product home page Git Product logo

node-alarm-dot-com's Introduction

Node.js Alarm.com Interface

Unofficial interface module written in Node.js to access and operate Alarm.com security systems.

This interface works best with the fork: https://github.com/node-alarm-dot-com/homebridge-node-alarm-dot-com, based off of John Hurliman's FrontPoint* plugin for Homebridge. This variation adds changes the default login authentication for to Alarm.com. with a switch to use the FrontPoint login authentication process if desired.

*FrontPoint is simply a rebranded service provider for Alarm.com.

Originally intended for use with the fork: https://github.com/node-alarm-dot-com/homebridge-node-alarm-dot-com, originally created by Bryan Bartow for his Alarm.com plugin for Homebridge.

Supported Features

  • Querying panels
    • Arming
    • Disarming
  • Sensors
    • Contact states
    • Occupancy states (this does not work due to lag in the Alarm.com webAPI itself)
    • Water Leak states
  • Lights
    • On/Off switch
    • Dimmer switch
  • Locks
    • Lock/Unlock switch

Usage

Install:

npm i node-alarm-dot-com

Querying:

const nodeADC = require('node-alarm-dot-com')

nodeADC
  .login('your_username', 'your_password')
  .then(authOpts => nodeADC.getCurrentState(authOpts.systems[0], authOpts))
  .then(res => {
    console.log('Security Systems:', res.partitions)
    console.log('Sensors:', res.sensors)
  })
  .catch(err => console.error(err))

Arming:

const nodeADC = require('node-alarm-dot-com')

nodeADC
  .login('your_username', 'your_password')
  .then(authOpts => {
    return nodeADC
      .getCurrentState(authOpts.systems[0], authOpts)
      .then(res => {
        // This will take 20-30 seconds
        nodeADC.armStay(res.partitions[0].id, authOpts).then(res => {
          console.log(res)
        })
      })
  })
  .catch(err => console.error(err))

Documentation

nodeADC~login(username, password) ⇒ Promise

Authenticate with alarm.com using the mobile webpage login form (loads faster than the desktop webpage login form). Returns an authentication object that can be passed to other methods.

Kind: inner method of module_nodeADC

Param Type Description
username string FrontPoint username.
password string FrontPoint password.

nodeADC~getCurrentState(systemID, authOpts) ⇒ Promise

Retrieve information about the current state of a security system including attributes, partitions, sensors, and relationships.

Kind: inner method of nodeADC

Param Type Description
systemID string ID of the FrontPoint system to query. The Authentication object returned from the login method contains a systems property which is an array of system IDs.
authOpts Object Authentication object returned from the login method.

nodeADC~getPartition(partitionID, authOpts) ⇒ Promise

Get information for a single security system partition.

Kind: inner method of nodeADC

Param Type Description
partitionID string Partition ID to retrieve
authOpts Object Authentication object returned from the login method.

nodeADC~getSensors(sensorIDs, authOpts) ⇒ Promise

Get information for one or more sensors.

Kind: inner method of nodeADC

Param Type Description
sensorIDs string | Array.<string> Array of sensor ID strings.
authOpts Object Authentication object returned from the login method.

nodeADC~getLights(lightIDs, authOpts) ⇒ Promise

Get information for one or more lights.

Kind: inner method of nodeADC

Param Type Description
lightIDs string | Array.<string> Array of light ID strings.
authOpts Object Authentication object returned from the login method.

nodeADC~turnOnLight(lightID, brightness, authOpts) ⇒ Promise

Sets a light to ON and adjusts brightness level (1-100) of dimmable lights.

Kind: inner method of nodeADC

Param Type Description
lightID string Light ID string.
brightness number An integer, 1-100, indicating brightness.
authOpts Object Authentication object returned from the login method.

nodeADC~turnOffLight(lightID, brightness, authOpts) ⇒ Promise

Sets a light to OFF. The brightness level is ignored.

Kind: inner method of nodeADC

Param Type Description
lightID string Light ID string.
brightness number An integer, 1-100, indicating brightness. Ignored.
authOpts Object Authentication object returned from the login method.

nodeADC~getLocks(lightIDs, authOpts) ⇒ Promise

Get information for one or more locks.

Kind: inner method of nodeADC

Param Type Description
lockIDs string | Array.<string> Array of lock ID strings.
authOpts Object Authentication object returned from the login method.

nodeADC~secureLock(lockID, authOpts) ⇒ Promise

Sets a lock to "locked" (SECURED).

Kind: inner method of nodeADC

Param Type Description
lockID string Lock ID string.
authOpts Object Authentication object returned from the login method.

nodeADC~unsecureLock(lockID, authOpts) ⇒ Promise

Sets a lock to "unlocked" (UNSECURED).

Kind: inner method of nodeADC

Param Type Description
lockID string Lock ID string.
authOpts Object Authentication object returned from the login method.

nodeADC~armStay(partitionID, authOpts, opts) ⇒ Promise

Arm a security system panel in "stay" mode. NOTE: This call may take 20-30 seconds to complete.

Kind: inner method of nodeADC

Param Type Description
partitionID string Partition ID to arm.
authOpts Object Authentication object returned from the login method.
opts Object Optional arguments for arming the system.
opts.noEntryDelay boolean Disable the 30-second entry delay.
opts.silentArming boolean Disable audible beeps and double the exit delay.

nodeADC~armAway(partitionID, authOpts, opts) ⇒ Promise

Arm a security system panel in "away" mode. NOTE: This call may take 20-30 seconds to complete.

Kind: inner method of nodeADC

Param Type Description
partitionID string Partition ID to arm.
authOpts Object Authentication object returned from the login method.
opts Object Optional arguments for arming the system.
opts.noEntryDelay boolean Disable the 30-second entry delay.
opts.silentArming boolean Disable audible beeps and double the exit delay.

nodeADC~disarm(partitionID, authOpts) ⇒ Promise

Disarm a security system panel.

Kind: inner method of nodeADC

Param Type Description
partitionID string Partition ID to disarm.
authOpts Object Authentication object returned from the login method.

Notes

In efforts to maintain this project as a native Alarm.com implementation, authentication and reference to FrontPoint have been removed altogether within the code as of versions 1.6.0. This allows for the codebase to be cleaner without having to solve everyone else's extraneous Alarm.com Verified-Partner setups, encouraging separate forks and augmentation for those unique scenarios.

Acknowledgements

node-alarm-dot-com's People

Contributors

mkormendy avatar chase9 avatar jhurliman avatar barslev avatar ngori avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.