Giter VIP home page Giter VIP logo

homebridge-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
  • Thermostats
    • State (Off, Heat, Cool, Auto)
    • Desired Heat setpoint
    • Desired Cool setpoint

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~setLockSecure(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~setLockUnsecure(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~setThermostatState(thermostatID, newState, authOpts) ⇒ Promise

Update Thermostat State (see THERMOSTAT_STATES)

Kind: inner method of nodeADC

Param Type Description
thermostatID string Thermostat ID string.
newState THERMOSTAT_STATES Desired state, THERMOSTAT_STATES.OFF/HEAT/COOL/AUTO
authOpts Object Authentication object returned from the login method.

nodeADC~setThermostatTargetHeatTemperature(thermostatID, newTemp, authOpts) ⇒ Promise

Set desired Heat setpoint temperature for Thermostat

Kind: inner method of nodeADC

Param Type Description
thermostatID string Thermostat ID string.
newTemp number Desired temperature
authOpts Object Authentication object returned from the login method.

nodeADC~setThermostatTargetCoolTemperature(thermostatID, newTemp, authOpts) ⇒ Promise

Set desired Cool setpoint temperature for Thermostat

Kind: inner method of nodeADC

Param Type Description
thermostatID string Thermostat ID string.
newTemp number Desired temperature
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

homebridge-node-alarm-dot-com's People

Contributors

andrewheavin avatar cap10morgan avatar chase9 avatar dmblakeley avatar jdshkolnik avatar jhurliman avatar mkormendy avatar ngori avatar pb30 avatar wochanda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homebridge-node-alarm-dot-com's Issues

GET error

Describe the bug
This plugin doesn't seem to be connecting to Alarm.com. Here's the log.

Error: GET https://www.alarm.com/web/api/systems/systems/7521917 failed: [object Object]
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:544:13
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 0)

It repeats ad infinitum, every few seconds.

To Reproduce
I installed homebridge, installed this plugin, input my login and settings (which are correct), and this happens.

Expected behavior
It connects to the Alarm.com API and lets me access devices.

ADC-SystemStates.json
This does not exist in the same folder as my Homebridge config.json file with Log Level set to 4.

Homebridge System (please complete the following information):

  • Node.js Version: v14.15.1
  • NPM Version: 6.14.9
  • Homebridge Version: 1.1.6
  • Operating System: Raspbian
  • Process Supervisor: hb-service

Additional context

Repeated errors with typescript

Describe the bug

Many errors when updating to latest version
To Reproduce

update to 1.7.0


 [2/6/2021, 1:49:02 PM] [Security System] TypeError: Cannot read property 'ARMED_STAY' of undefined
    at getPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:1295:24)
    at ADCPlatform.statPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:449:19)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:301:20
    at Array.forEach (<anonymous>)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:296:31
    at Array.forEach (<anonymous>)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:293:22
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
[2/6/2021, 1:49:48 PM] [Security System] changePartitionState(94218683-127, 3)
[2/6/2021, 1:49:49 PM] [Security System] Error: Failed to change partition state: TypeError: Cannot read property 'ARMED_STAY' of undefined
    at getPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:1295:24)
    at ADCPlatform.statPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:449:19)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:530:31
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
[2/6/2021, 1:49:50 PM] [Security System] TypeError: Cannot read property 'ARMED_STAY' of undefined
    at getPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:1295:24)
    at ADCPlatform.statPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:449:19)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:301:20
    at Array.forEach (<anonymous>)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:296:31
    at Array.forEach (<anonymous>)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:293:22
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
[2/6/2021, 1:50:02 PM] [Security System] TypeError: Cannot read property 'ARMED_STAY' of undefined
    at getPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:1295:24)
    at ADCPlatform.statPartitionState (/homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:449:19)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:301:20
    at Array.forEach (<anonymous>)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:296:31
    at Array.forEach (<anonymous>)
    at /homebridge/node_modules/homebridge-node-alarm-dot-com/src/index.ts:293:22
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

IgnoredDevices (to hide motion sensor from Homekit) not working

I used the following code to hide a Motion sensor (similar to the sample code where “96922426-1” is replaced with the ID of the motion sensor that I found in my logs)

"ignoredDevices": [
    "96922426-1",
]

However I can still see it in Homekit. Is there any other way I can hide a sensor?

I have tried restarting the HOOBS homebridge service and also rebooting the HOOBS device with no success.

I also tried replacing the ID of the Motion sensor with a Contact sensor to see if there was just an issue with the motion sensors however it still didn’t work. There seems to be an overall issue hiding sensors for my instance.

Otherwise, everything is working fine e.g. the sensors accurately show as open or closed, I can arm/disarm the alarm from homekit, etc.

Thanks

Alarm.com not not appearing in Home app

Added the plugin today, it is definitely connecting/authenticating to Alarm.com, because getting notifications that it is successfully logging in. Getting the below error message every minute in the log and no Alarm.com "accessories" are appearing in my Home app (other homebridge devices are).

[2019-11-23 23:04:42] [Security System] Logging into Alarm.com as ########
[2019-11-23 23:04:42] Homebridge is running on port 51826.
[2019-11-23 23:04:53] [Security System] Logged into Alarm.com as ########
[2019-11-23 23:04:59] [Security System] UNHANDLED ERROR: Error: GET https://www.alarm.com/web/api/devices/locks/? failed: [object Object]
at fetch.then.then.catch.err (/usr/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:482:13)
at
at process._tickCallback (internal/process/next_tick.js:189:7)
[2019-11-23 23:05:42] [Security System] Error: GET https://www.alarm.com/web/api/devices/locks/? failed: [object Object]
at fetch.then.then.catch.err (/usr/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:482:13)
at
at process._tickCallback (internal/process/next_tick.js:189:7)

config.json:

{
"bridge": {
"name": "Kagan RaspberryPi",
"username": "AA:11:33:EE:EE:30",
"port": 51826,
"pin": "765-99-210"
},
"description": "Homekit Server",
"accessories": [],
"platforms": [
{
"platform": "Alarmdotcom",
"name": "Security System",
"username": "######",
"password": "######",
"armingModes": {
"away": {
"noEntryDelay": false,
"silentArming": false
},
"night": {
"noEntryDelay": false,
"silentArming": false
},
"stay": {
"noEntryDelay": false,
"silentArming": false
}
}
}
]
}

Receiving "Doors" as "Lights"

Describe the bug
I am receiving door locks as lights. I have uninstalled removed cache, etc. but because of this further updates do not work. I am also having an issue with garage doors but I dont understand the issue.

To Reproduce
Add plugin and login, on start-up it sees devices incorrectly.

Expected behavior

To see devices correctly

Screenshots

ADC-SystemStates.json

Homebridge System (please complete the following information):

  • Node.js Version: v14.15.1
  • NPM Version: 6.14.9
  • Homebridge Version: 1.1.6
  • Operating System: Raspbian
  • Process Supervisor: hb-service /

Additional context

[25/11/2020, 17:13:23] [Security System] Received 1 partitions from Alarm.com
[25/11/2020, 17:13:23] [Security System] Adding partition SYSTEM (id=95222472-127, uuid=8d24d40e-e50c-434e-93bd-57f802a47fc2)
[25/11/2020, 17:13:23] [Security System] Updating partition SYSTEM (95222472-127), state=3, prev=null
[25/11/2020, 17:13:23] [Security System] Updating partition SYSTEM (95222472-127), desiredState=3, prev=null
[25/11/2020, 17:13:23] [Security System] Updating partition SYSTEM (95222472-127), statusFault=false, prev=null
[25/11/2020, 17:13:23] [Security System] Added partition SYSTEM (95222472-127)
[25/11/2020, 17:13:23] [Security System] Received 42 sensors from Alarm.com
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Back Door" (id=95222472-27, uuid=9e4426fc-4205-463e-9a2b-446bcc8def44)
[25/11/2020, 17:13:23] [Security System] Updating sensor Back Door (95222472-27), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Back Door (95222472-27)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Basement Left Window" (id=95222472-19, uuid=746cf0c7-8868-402a-980d-4ebaea9e9991)
[25/11/2020, 17:13:23] [Security System] Updating sensor Basement Left Window (95222472-19), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Basement Left Window (95222472-19)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Basement Right Window" (id=95222472-18, uuid=85a0cbf5-99ae-454f-b096-b00205c23d37)
[25/11/2020, 17:13:23] [Security System] Updating sensor Basement Right Window (95222472-18), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Basement Right Window (95222472-18)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Dining Left Window" (id=95222472-8, uuid=9c79252a-006d-4747-886a-810d811e712c)
[25/11/2020, 17:13:23] [Security System] Updating sensor Dining Left Window (95222472-8), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Dining Left Window (95222472-8)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Dining Right Window" (id=95222472-10, uuid=f1ab82c1-e880-4b30-926d-d4ff6868bc96)
[25/11/2020, 17:13:23] [Security System] Updating sensor Dining Right Window (95222472-10), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Dining Right Window (95222472-10)
[25/11/2020, 17:13:23] [Security System] Adding Occupancy Sensor "Dining Room Motion Detector" (id=95222472-26, uuid=f733ac92-337d-45fa-9c30-308f12957072)
[25/11/2020, 17:13:23] [Security System] Updating sensor Dining Room Motion Detector (95222472-26), state=1, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Dining Room Motion Detector (95222472-26)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Downstairs Bathroom Window" (id=95222472-20, uuid=34d8eb2c-82b0-42c6-a5a4-411bfab7c9e6)
[25/11/2020, 17:13:23] [Security System] Updating sensor Downstairs Bathroom Window (95222472-20), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Downstairs Bathroom Window (95222472-20)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Downstairs CO Detector" (id=95222472-2, uuid=2f85cdba-ab65-4606-9478-b18746721a94)
[25/11/2020, 17:13:23] [Security System] Updating sensor Downstairs CO Detector (95222472-2), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Downstairs CO Detector (95222472-2)
[25/11/2020, 17:13:23] [Security System] Adding Occupancy Sensor "Downstairs Facing Door Motion Detector" (id=95222472-37, uuid=5d8a0e99-85f1-4a66-874f-2903da3ddf7b)
[25/11/2020, 17:13:23] [Security System] Updating sensor Downstairs Facing Door Motion Detector (95222472-37), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Downstairs Facing Door Motion Detector (95222472-37)
[25/11/2020, 17:13:23] [Security System] Adding Occupancy Sensor "Downstairs Motion Detector" (id=95222472-23, uuid=6fd481e6-1133-4e82-9182-b4276bc7995b)
[25/11/2020, 17:13:23] [Security System] Updating sensor Downstairs Motion Detector (95222472-23), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Downstairs Motion Detector (95222472-23)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Downstairs Smoke Detector" (id=95222472-31, uuid=feeabe2d-f04d-4e9a-873a-19ea70c76d09)
[25/11/2020, 17:13:23] [Security System] Updating sensor Downstairs Smoke Detector (95222472-31), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Downstairs Smoke Detector (95222472-31)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Front Door" (id=95222472-29, uuid=df7b5b4b-0688-4d20-be35-6d8899c8ef1a)
[25/11/2020, 17:13:23] [Security System] Updating sensor Front Door (95222472-29), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Front Door (95222472-29)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Garage Door" (id=95222472-28, uuid=4ecdc005-a979-4c98-a41e-1d82b93105d7)
[25/11/2020, 17:13:23] [Security System] Updating sensor Garage Door (95222472-28), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Garage Door (95222472-28)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Garage Front Window" (id=95222472-34, uuid=b2741b9d-6e48-4498-8979-c79917635161)
[25/11/2020, 17:13:23] [Security System] Updating sensor Garage Front Window (95222472-34), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Garage Front Window (95222472-34)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Garage Side Window" (id=95222472-35, uuid=c17de9ab-61a9-4184-a5fb-88b8de840503)
[25/11/2020, 17:13:23] [Security System] Updating sensor Garage Side Window (95222472-35), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Garage Side Window (95222472-35)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Glass Break" (id=95222472-21, uuid=2ebd13c0-2a7c-4959-be0a-65b8691b3c47)
[25/11/2020, 17:13:23] [Security System] Updating sensor Glass Break (95222472-21), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Glass Break (95222472-21)
[25/11/2020, 17:13:23] [Security System] Adding Occupancy Sensor "Hallway Motion Detector" (id=95222472-24, uuid=f5050563-582a-4839-b952-308374db813f)
[25/11/2020, 17:13:23] [Security System] Updating sensor Hallway Motion Detector (95222472-24), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Hallway Motion Detector (95222472-24)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "iPhone-..D84" (id=95222472-5296, uuid=76768c66-ca6e-4765-8bdb-e34b36e4ce80)
[25/11/2020, 17:13:23] [Security System] Updating sensor iPhone-..D84 (95222472-5296), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor iPhone-..D84 (95222472-5296)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Iron Room Window" (id=95222472-12, uuid=37c4c208-cd9b-4cc0-b7f9-8b494fb734b5)
[25/11/2020, 17:13:23] [Security System] Updating sensor Iron Room Window (95222472-12), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Iron Room Window (95222472-12)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Jenny’s iPhone" (id=95222472-5297, uuid=e81e95e5-48de-447a-8d37-e4bbdec2a29d)
[25/11/2020, 17:13:23] [Security System] Updating sensor Jenny’s iPhone (95222472-5297), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Jenny’s iPhone (95222472-5297)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Kitchen Left Window" (id=95222472-5, uuid=ee517174-2955-4f25-b574-9cd4bed4eae2)
[25/11/2020, 17:13:23] [Security System] Updating sensor Kitchen Left Window (95222472-5), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Kitchen Left Window (95222472-5)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Kitchen Right Window" (id=95222472-4, uuid=054ab723-2710-4e3f-a536-64af3e7e1bbc)
[25/11/2020, 17:13:23] [Security System] Updating sensor Kitchen Right Window (95222472-4), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Kitchen Right Window (95222472-4)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Living Room Left Window" (id=95222472-11, uuid=19b77ecd-6f13-4621-a439-ef0092b032eb)
[25/11/2020, 17:13:23] [Security System] Updating sensor Living Room Left Window (95222472-11), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Living Room Left Window (95222472-11)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Living Room Right Window" (id=95222472-13, uuid=5e52422e-84ed-4dcf-a163-6766c5ab3d33)
[25/11/2020, 17:13:23] [Security System] Updating sensor Living Room Right Window (95222472-13), state=0, prev=null
[25/11/2020, 17:13:23] [Security System] Added sensor Living Room Right Window (95222472-13)
[25/11/2020, 17:13:23] [Security System] Adding Contact Sensor "Mackenzie Front Window" (id=95222472-15, uuid=4cacd532-04a8-4f22-9abc-66f27e44b1dd)
[25/11/2020, 17:13:24] [Security System] Updating sensor Mackenzie Front Window (95222472-15), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Mackenzie Front Window (95222472-15)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Mackenzie Side Window" (id=95222472-17, uuid=45490115-0478-4a0e-85eb-6631cfdb72c8)
[25/11/2020, 17:13:24] [Security System] Updating sensor Mackenzie Side Window (95222472-17), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Mackenzie Side Window (95222472-17)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Mackenzie’s iPhone" (id=95222472-5298, uuid=a71d47ba-048d-4d97-98ff-40f4c3307d76)
[25/11/2020, 17:13:24] [Security System] Updating sensor Mackenzie’s iPhone (95222472-5298), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Mackenzie’s iPhone (95222472-5298)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Master Rear Window" (id=95222472-6, uuid=b6f28a9a-1582-4178-ad8b-49d3fafffe48)
[25/11/2020, 17:13:24] [Security System] Updating sensor Master Rear Window (95222472-6), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Master Rear Window (95222472-6)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Master Side Window" (id=95222472-14, uuid=6c896747-9312-4f65-a68c-29b5c385d214)
[25/11/2020, 17:13:24] [Security System] Updating sensor Master Side Window (95222472-14), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Master Side Window (95222472-14)
[25/11/2020, 17:13:24] [Security System] Adding Occupancy Sensor "New Motion 5" (id=95222472-38, uuid=9b2c1e50-c2c5-4941-a8ee-1a1d84eaa9d0)
[25/11/2020, 17:13:24] [Security System] Updating sensor New Motion 5 (95222472-38), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor New Motion 5 (95222472-38)
[25/11/2020, 17:13:24] [Security System] Adding Occupancy Sensor "Office Motion Detector" (id=95222472-39, uuid=24eacc49-1a81-4ef3-969a-4da987d2e3d7)
[25/11/2020, 17:13:24] [Security System] Updating sensor Office Motion Detector (95222472-39), state=1, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Office Motion Detector (95222472-39)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Panel Camera" (id=95222472-229, uuid=20ce65de-7cd2-4a70-b035-f327d384c90c)
[25/11/2020, 17:13:24] [Security System] Updating sensor Panel Camera (95222472-229), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Panel Camera (95222472-229)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Panel Glass Break" (id=95222472-33, uuid=82b9f1e3-57eb-4925-90aa-85669e60d25a)
[25/11/2020, 17:13:24] [Security System] Updating sensor Panel Glass Break (95222472-33), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Panel Glass Break (95222472-33)
[25/11/2020, 17:13:24] [Security System] Adding Occupancy Sensor "Panel Motion" (id=95222472-36, uuid=6f38f13e-3b91-496f-b1a7-e7372e7c4711)
[25/11/2020, 17:13:24] [Security System] Updating sensor Panel Motion (95222472-36), state=1, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Panel Motion (95222472-36)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Safe" (id=95222472-16, uuid=c41966fc-b9a6-4cf9-b787-09f1c6b2890b)
[25/11/2020, 17:13:24] [Security System] Updating sensor Safe (95222472-16), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Safe (95222472-16)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Sliding Door" (id=95222472-9, uuid=63b9ab18-41cc-423f-ae91-1cfecee3a32a)
[25/11/2020, 17:13:24] [Security System] Updating sensor Sliding Door (95222472-9), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Sliding Door (95222472-9)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Upstairs Bathroom Window" (id=95222472-7, uuid=966d5ac4-d89e-4fce-a655-ae6eb8bd90e4)
[25/11/2020, 17:13:24] [Security System] Updating sensor Upstairs Bathroom Window (95222472-7), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Upstairs Bathroom Window (95222472-7)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Upstairs CO Detector" (id=95222472-1, uuid=ddce3f27-8722-40d7-9ab3-b7939f8c6fca)
[25/11/2020, 17:13:24] [Security System] Updating sensor Upstairs CO Detector (95222472-1), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Upstairs CO Detector (95222472-1)
[25/11/2020, 17:13:24] [Security System] Adding Occupancy Sensor "Upstairs Motion Detector" (id=95222472-25, uuid=245643c6-370f-4fff-a46a-25f019344d1d)
[25/11/2020, 17:13:24] [Security System] Updating sensor Upstairs Motion Detector (95222472-25), state=1, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Upstairs Motion Detector (95222472-25)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Upstairs Smoke Detector" (id=95222472-30, uuid=81ab208a-2da2-4faa-be83-5c610ab9b1f1)
[25/11/2020, 17:13:24] [Security System] Updating sensor Upstairs Smoke Detector (95222472-30), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Upstairs Smoke Detector (95222472-30)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Utility Flood Sensor" (id=95222472-22, uuid=21498a91-2953-4261-bb08-1d02fa8e5b4b)
[25/11/2020, 17:13:24] [Security System] Updating sensor Utility Flood Sensor (95222472-22), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Utility Flood Sensor (95222472-22)
[25/11/2020, 17:13:24] [Security System] Adding Contact Sensor "Window 1" (id=95222472-3, uuid=321d91aa-6d67-41ca-b512-71b38661688f)
[25/11/2020, 17:13:24] [Security System] Updating sensor Window 1 (95222472-3), state=0, prev=null
[25/11/2020, 17:13:24] [Security System] Added sensor Window 1 (95222472-3)

BEGIN ISSUE...

[25/11/2020, 17:13:24] [Security System] Received 3 lights from Alarm.com

I have no lights!

[25/11/2020, 17:13:24] [Security System] Adding Door Lock "Front Door" (id=95222472-1235, uuid=411e70c7-ebdc-4913-8e64-c7f4c483dcee) (1 1)
[25/11/2020, 17:13:24] [Security System] Added lock Front Door (95222472-1235)
[25/11/2020, 17:13:24] [Security System] Adding Door Lock "Back Door" (id=95222472-1236, uuid=51642898-c628-4741-b5e6-66b47784ec07) (1 1)
[25/11/2020, 17:13:25] [Security System] Added lock Back Door (95222472-1236)
[25/11/2020, 17:13:25] [Security System] Adding Door Lock "Garage Door" (id=95222472-1243, uuid=a60d1be3-5ddc-4a43-821f-83b70896b8db) (1 1)
[25/11/2020, 17:13:25] [Security System] Added lock Garage Door (95222472-1243)
[25/11/2020, 17:13:25] [Security System] Received 1 locks from Alarm.com
[25/11/2020, 17:13:25] [Security System] Adding Garage Door "Garage Door" (id=95222472-2201, uuid=5fad585c-788c-4179-8fed-df6ae2fe8db1) (2 2)
[25/11/2020, 17:13:25] [Security System] Updating garage Garage Door (95222472-2201), state=1, prev=2
[25/11/2020, 17:13:25] [Security System] Added garage-door Garage Door (95222472-2201)

It sees and adds the garage door, then says there is no garage doors:

[25/11/2020, 17:13:25] [Security System] Received no garages from Alarm.com. If you are expecting
garages in your Alarm.com setup, you may need to check that your
provider has assigned garages in your Alarm.com account

I don't have a front door light, I have a front door door.

[25/11/2020, 17:14:23] [Security System] Updating light Front Door (95222472-1235), state=undefined, prev=1
[25/11/2020, 17:14:23] [Security System] TypeError: Cannot read property 'getCharacteristic' of undefined
at ADCPlatform.statLightState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:793:9)
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:299:20
at Array.forEach ()
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:294:27
at Array.forEach ()
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:265:22
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:93:5)
[25/11/2020, 17:14:23] [Security System] /var/lib/homebridge/ADC-SystemStates.json written
[25/11/2020, 17:15:30] [Security System] Updating light Back Door (95222472-1236), state=undefined, prev=1
[25/11/2020, 17:15:30] [Security System] TypeError: Cannot read property 'getCharacteristic' of undefined
at ADCPlatform.statLightState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:793:9)
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:299:20
at Array.forEach ()
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:294:27
at Array.forEach ()
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:265:22
at processTicksAndRejections (internal/process/task_queues.js:93:5)
[25/11/2020, 17:15:30] [Security System] /var/lib/homebridge/ADC-SystemStates.json written

Lock accessory status issue

After instaling latest 1.7.1 I get the following error:
Error: Trouble getting HomeKit accessory information for 100302700-2201
at ADCPlatform.statLockState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/src/index.ts:976:13)
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/src/index.ts:340:20
at Array.forEach ()
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/src/index.ts:335:26
at Array.forEach ()
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/src/index.ts:295:22
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:93:5)

All other accessories are working fine. the garage door issue seems to be resolved and this is a great fix other than this one issue. I have a Kwikset lock and it works fine on Alarm.com app and site.

Status icon on the Home app shows OFF even when system is set to Home or Away

Describe the bug
Status icon on top of the Home app always shows OFF even when the system is set to Home or Away. The accessory tile does show correct status.

To Reproduce

  1. Open Home App
  2. Check status icon in Home app.
  3. If I restart the Home app after arming, the status icon briefly shows correct status (see attached screenshot) and then changes to OFF.

Expected behavior
Icon should reflect the correct state of the system - OFF, HOME, AWAY

Screenshots
INCORRECT STATUS ICON
incorrect

CORRECT STATUS SHOWS BRIEFLY AFTER RESTARTING THE HOME APP
correct

ADC-SystemStates.json

Homebridge System (please complete the following information):

  • Node.js Version: 14.15.3
  • NPM Version: 6.14.9
  • Homebridge Version: 1.1.7
  • Operating System: Windows
  • Process Supervisor: Windows Service

Additional context

Door Sensors Slow

Hello,

Thank-you for making this plugin. It has been great. I just wanted to let you know that my sensors seems to be slow, sometimes too slow to even appear in the Home app. The motion detector appears fine and fairly instant. Windows are ok but slow. I’d have to leave the window open for 30 secs or so for it to register in Home. The door sensor is by far the slowest. I can open and close my front door and it will appear in my Alarm.com app history but never in Home. I haven’t tried leaving the door open for longer than a few minutes. I know there were earlier reports of not having the required Alarm.com subscription that did not include sensor monitoring. However, I’m sure I have this on my account as the motion and windows work (or one window, I didn’t open anymore more to test it). The door sensor is really what I’m hoping for to be speedier. Not sure if this is an plugin thing, my setup (RP3) or the Alarm.com side.

Thanks again for this plugin.

Night option worked with 1.6.5 but not latest

Describe the bug
on previous version, 1.6.5, the “night” option in homekit allowed my panel to set with the “sleep” mode, which I had configured slightly differently than “home mode” (both silent armed, “home” would have an entry delay and sleep would not. Since update, “night” will no longer read (see error below). Unfortunately reverting back to 1.6.5 is now causing no response errors, so that’s not an option. I know the “sleep” or “night” mode have been called out as not working with alarm.com, but it was working flawlessly for me before. Wanted to call it out in case there was a clue in 1.6.5 that got it to work.

Expected behavior

Screenshots

ADC-SystemStates.json
This is the error I now get that I didn’t before:

Error: Failed to change partition state: Error: POST https://www.alarm.com/web/api/devices/partitions/100533361-127/armStay failed: 422
at /usr/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/dist/index.js:493:15
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:93:5)

Homebridge System (please complete the following information):

  • Node.js Version: 14.15.4
  • NPM Version: 6.14.10
  • Homebridge Version: 1.1.7
  • Operating System: Raspbian

Cannot ignore sensors

I feel like I have set the config file up correctly.

   {
        "platform": "Alarmdotcom",
        "name": "Security Panel",
        "username": "my login at Alarm.com",
        "password": "my password at Alarm.com",
        "armingModes": {
            "away": {
                "noEntryDelay": false,
                "silentArming": false
            },
            "night": {
                "noEntryDelay": false,
                "silentArming": false
            },
            "stay": {
                "noEntryDelay": false,
                "silentArming": false
            }
        },
        "ignoredDevices": [
            "95937424-1",
            "95937424-2",
            "95937424-3",
            "95937424-4",
            "95937424-5",
            "95937424-6",
            "95937424-7",
            "95937424-8",
            "95937424-9",
            "95937424-10",
            "95937424-12",
            "95937424-229",
            "95937424-5267",
            "95937424-5270",
            "95937424-5271"
        ],
        "logLevel": 4
    },

I can arm and disarm the panel etc... But I can't seem to hide all the sensors from Homekit. I have deleted cached accessories and rebooted but still can't ignore accessories. The log shows accessories are ignored but Homebridge is still responding to changes in sensor state. The sensors also still show in the Home app.

[2020-1-7 11:37:25] [Security Panel] Received 1 partitions(s) and 15 sensor(s) from Alarm.com
[2020-1-7 11:37:25] [Security Panel] Received 0 light(s) from Alarm.com
[2020-1-7 11:37:25] [Security Panel] Received 0 locks(s) from Alarm.com
[2020-1-7 11:37:25] [Security Panel] Removing partition1 (95937424-127) from HomeBridge.
[2020-1-7 11:37:25] [Security Panel] Adding partition partition1 (id=95937424-127, uuid=9175dbea-cf34-4f64-82aa-598248bdf25c)
[2020-1-7 11:37:26] [Security Panel] Updating partition partition1 (95937424-127), state=3, prev=null
[2020-1-7 11:37:26] [Security Panel] Updating partition partition1 (95937424-127), desiredState=3, prev=null
[2020-1-7 11:37:26] [Security Panel] Updating partition partition1 (95937424-127), statusFault=false, prev=null
[2020-1-7 11:37:26] [Security Panel] Added partition partition1 (95937424-127)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Dining Room Slider (95937424-4)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Front Door (95937424-7)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Garage Door (95937424-2)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Garage Door Exterior (95937424-3)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Main (95937424-9)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Main Room Slider (95937424-5)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Master (95937424-10)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Master Bedroom Slider (95937424-6)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Panel Camera (95937424-229)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Panel Glass Break (95937424-8)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Retha (95937424-5270)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Scott (95937424-5271)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Scott iPhone (95937424-5267)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Smoke Detector (95937424-12)
[2020-1-7 11:37:26] [Security Panel] Ignored sensor Translator (95937424-1)
[2020-1-7 11:47:19] [Security Panel] Updating sensor Main Room Slider (95937424-5), state=0, prev=1
[2020-1-7 11:48:21] [Security Panel] Updating sensor Main Room Slider (95937424-5), state=1, prev=0

Latest update looking for locks and lights when not in Alarm.com configuration

I do not have lights or locks as part of my alarm.com configuration. Since the latest update I am getting errors such as continuously in the log:

[11/22/2019, 7:00:16 PM] [Security Panel] Error: GET https://www.alarm.com/web/api/devices/locks/? failed: [object Object]
    at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:482:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Promise.all (index 3)
    at async Promise.all (index 0)

and

[11/22/2019, 7:00:16 PM] [Security Panel] Error: GET https://www.alarm.com/web/api/devices/locks/? failed: [object Object]
    at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:482:13
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Promise.all (index 3)
    at async Promise.all (index 0)

Thoughts?

panel disappears

hey mike!

Great work here, i wanted to report something I am noticing, and hopefully help track down the cause. It seems at each start of homebridge, the security panel is added/deleted. for example, if I launch homebridge and can control the panel, upon the next restart of homebridge the panel is gone. all my window sensors remain. if i restart again, the panel comes back.

is there anything I can provide to help track this down? I did rename the cachedaccessories folder before the initial launch of homebridge with your plugin installed.

Sensors detected, but Homekit Accessories not added

When starting up homebridge, my sensors are being detected (as I see Added sensor Back Door in the logs). However, this is always followed by a Warning: Sensor with unknown state 0. Subsequently, an accessory is not created for the sensor.

Upon investigating the code, I believe the issue lies here https://github.com/mkormendy/homebridge-node-alarm-dot-com/blob/master/index.js#L250 where the getSensorType returns an unknown type.

I am not sure if this is also related, but I noticed on my alarm.com portal I currently do not have the options to turn sensor activity monitoring on/off.

Silent Arming, No Entry Delay, Bypass Open Sensors

Need to fully test and fix the following options if they aren't working properly:

  • Silent Arming
  • No Entry Delay
  • Bypass Open Sensors

Some possible reasons why this may not be working is due to the use of the mobile version of the website not including this option/setting, per Bryan's plugin findings here and here.

Sensors not updating

This project is awesome to remove the wrapapi dependency. Also love that the individual sensors show up in Home.app. Am seeing the sensors but the sensor states don’t seem to update in Home.app, eg when I open a door or window. Happy to help debug.

No lock available

My lock does not show up in homebridge-node-alarm-dot-com.

I think I have installed and configured homebridge-node-alarm-dot-com correctly. All my alarm devices are available in Homebridge and arming/disarming works fine. However, my lock is not available at all in Homebridge. No errors in log file indicating any problem.
Any suggestions on what to do?

Regards
/ULO-SWE

Homebridge System (please complete the following information):

  • Hardware: Windows PC
  • OS: Windows 10
  • Node Type/Version:
    homebridge-node-alarm-dot-com version: 1.4.1
    Node.js Version: v12.14.1
    Npm version: v6.13.6

===============================================
My config file and log file included below.

"bridge": {
        "name": "Homebridge xxxx",
        "username": "xx:xx:xx:xx:xx:xx”,
        "port": 51493,
        "pin": "999-99-999"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "auth": "form",
            "theme": "dark-mode",
            "tempUnits": "c",
            "platform": "config"
        },
        {
            "platform": "Alarmdotcom",
            "name": "Securitas Larm",
            "username": "MyUserName",
            "password": "MyPasword",
            "armingModes": {
                "away": {
                    "noEntryDelay": false,
                    "silentArming": false
                },
                "night": {
                    "noEntryDelay": false,
                    "silentArming": false
                },
                "stay": {
                    "noEntryDelay": false,
                    "silentArming": false
                }
            }
        }
    ]
}
[2020-1-21 13:41:18] [Securitas Larm] Logging into Alarm.com as MyUserID
[2020-1-21 13:41:18] Homebridge is running on port 51493.
HAP Warning: Characteristic 00000079-0000-1000-8000-0026BB765291 not in required or optional characteristics for service 00000080-0000-1000-8000-0026BB765291. Adding anyway.
[2020-1-21 13:41:22] [Config] Homebridge Config UI X v4.7.0 is listening on :: port 8581
[2020-1-21 13:41:22] [Securitas Larm] Logged into Alarm.com as MyUserID
[2020-1-21 13:41:23] [Securitas Larm] Received 1 partitions(s) from Alarm.com
[2020-1-21 13:41:23] [Securitas Larm] Removing Panel Entre (99999999-127) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding partition Panel Entre (id=99999999-127, uuid=98Fe34434dd-10a2-42d8-83d7-9065c04406ae)
[2020-1-21 13:41:23] [Securitas Larm] Updating partition Panel Entre (99999999-127), state=3, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Updating partition Panel Entre (99999999-127), desiredState=3, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Updating partition Panel Entre (99999999-127), statusFault=false, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added partition Panel Entre (99999999-127)
[2020-1-21 13:41:23] [Securitas Larm] Received 10 sensor(s) from Alarm.com
[2020-1-21 13:41:23] [Securitas Larm] Removing BV Kök (99999999-2) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "BV Kök" (id=99999999-2, uuid=09dd233c-b51d-4db3-ab11-2fbc009169c3)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor BV Kök (99999999-2), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor BV Kök (99999999-2)
[2020-1-21 13:41:23] [Securitas Larm] Removing Fukt/Vatten Diskbänk (99999999-6) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Leak Sensor "Fukt/Vatten Diskbänk" (id=99999999-6, uuid=93fe88cf-0e34-4468-8018-e5fec9bda5f0)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor Fukt/Vatten Diskbänk (99999999-6), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor Fukt/Vatten Diskbänk (99999999-6)
[2020-1-21 13:41:23] [Securitas Larm] Removing GK Matrum (99999999-5) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "GK Matrum" (id=99999999-5, uuid=93fe88cf -9730-46d9-aafd-6341a712160d)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor GK Matrum (99999999-5), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor GK Matrum (99999999-5)
[2020-1-21 13:41:23] [Securitas Larm] Removing IR Hall (99999999-4) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Occupancy Sensor "IR Hall" (id=99999999-4, uuid=93fe88cf -77a5-4937-99ab-e8f835057915)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor IR Hall (99999999-4), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor IR Hall (99999999-4)
[2020-1-21 13:41:23] [Securitas Larm] Removing IRK Vardagsrum (99999999-3) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Occupancy Sensor "IRK Vardagsrum" (id=99999999-3, uuid=93fe88cf -7972-4217-8d43-30973d017f9c)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor IRK Vardagsrum (99999999-3), state=1, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor IRK Vardagsrum (99999999-3)
[2020-1-21 13:41:23] [Securitas Larm] Removing Knappsats vid ytterdörr (99999999-1) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "Knappsats vid ytterdörr" (id=99999999-1, uuid=93fe88cf -60d3-4b17-bf29-54fc39f9878a)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor Knappsats vid ytterdörr (99999999-1), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor Knappsats vid ytterdörr (99999999-1)
[2020-1-21 13:41:23] [Securitas Larm] Removing MK Entré (99999999-9) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "MK Entré" (id=99999999-9, uuid=93fe88cf -b844-4b8d-be07-96f104c352d1)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor MK Entré (99999999-9), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor MK Entré (99999999-9)
[2020-1-21 13:41:23] [Securitas Larm] Removing MK Förråd (99999999-10) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "MK Förråd" (id=99999999-10, uuid=93fe88cf -d385-4502-a524-ef2cbd7e1133)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor MK Förråd (99999999-10), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor MK Förråd (99999999-10)
[2020-1-21 13:41:23] [Securitas Larm] Removing MK Sovrum (99999999-8) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "MK Sovrum" (id=99999999-8, uuid=93fe88cf -6d57-4bc0-adc6-bb8e08253d6a)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor MK Sovrum (99999999-8), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor MK Sovrum (99999999-8)
[2020-1-21 13:41:23] [Securitas Larm] Removing MK Vardagsrum (99999999-7) from HomeBridge.
[2020-1-21 13:41:23] [Securitas Larm] Adding Contact Sensor "MK Vardagsrum" (id=99999999-7, uuid=93fe88cf -f5ee-4cca-92e8-9eefff89cadf)
[2020-1-21 13:41:23] [Securitas Larm] Updating sensor MK Vardagsrum (99999999-7), state=0, prev=null
[2020-1-21 13:41:23] [Securitas Larm] Added sensor MK Vardagsrum (99999999-7)
[2020-1-21 13:41:23] [Securitas Larm] Received 1 light(s) from Alarm.com

Panel disappearing from Homekit scenes

I have noticed recently, every few days, scenes that include my Alarm Panel, will randomly show the panel missing from the scene. When I check Homekit, the panel is there and I can simply re-add it to the scene. This has been occurring often. Any ideas?

Continuous login

Thank you for the great plug in.

I have a question. I get continuous log in notifications in the log:

e.g.
[2018-12-12 15:00:14] [Security System] Logging into Alarm.com as ...
[2018-12-12 15:00:17] [Security System] Logged into Alarm.com as ...
[2018-12-12 15:11:14] [Security System] Logging into Alarm.com as ...
[2018-12-12 15:11:17] [Security System] Logged into Alarm.com as ...
[2018-12-12 15:22:14] [Security System] Logging into Alarm.com as ...
[2018-12-12 15:22:17] [Security System] Logged into Alarm.com as ...
[2018-12-12 15:33:14] [Security System] Logging into Alarm.com as ...
[2018-12-12 15:33:17] [Security System] Logged into Alarm.com as ...
[2018-12-12 15:44:14] [Security System] Logging into Alarm.com as ...
[2018-12-12 15:44:17] [Security System] Logged into Alarm.com as ...
[2018-12-12 15:55:14] [Security System] Logging into Alarm.com as ...
[2018-12-12 15:55:17] [Security System] Logged into Alarm.com as ...

Is this operating as expected or is this not to be expected? And if not, any ideas where I should look to stop this behavior?

Thank you.

ReferenceError: lock is not defined

Describe the bug

Logs regularly indicate display (every 60 seconds) "[Security System] ReferenceError: lock is not defined".

To Reproduce

Normal operation (continuous, persistent through restarts and after clearing the cachedAccessories)
Expected behavior

Screenshots

[Security System] ReferenceError: lock is not defined at /homebridge/node_modules/homebridge-node-alarm-dot-com/index.js:293:38 at Array.forEach (<anonymous>) at /homebridge/node_modules/homebridge-node-alarm-dot-com/index.js:290:27 at Array.forEach (<anonymous>) at /homebridge/node_modules/homebridge-node-alarm-dot-com/index.js:261:22 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:97:5)

ADC-SystemStates.json

"locks": [ { "id": "********-1255", "type": "devices/lock", "attributes": { "state": 2, "desiredState": 2, "maxUserCodeLength": 4, "supportsScheduledUserCodes": false, "supportsTemporaryUserCodes": false, "supportsLatchControl": false, "canBeSaved": true, "canChangeDescription": true, "description": "Garage Entry", "canConfirmStateChange": true, "remoteCommandsEnabled": true, "hasPermissionToChangeState": true, "deviceIcon": { "icon": 181 }, "batteryLevelNull": 100, "lowBattery": false, "criticalBattery": false }, "relationships": { "system": { "data": { "id": "********", "type": "systems/system" } }, "stateInfo": { "data": { "id": "********-1255-3", "type": "devices/state-info" } } } }, { "id": "********-1257", "type": "devices/lock", "attributes": { "state": 1, "desiredState": 1, "maxUserCodeLength": 8, "supportsScheduledUserCodes": true, "supportsTemporaryUserCodes": true, "supportsLatchControl": false, "canBeSaved": true, "canChangeDescription": true, "description": "Front Door", "canConfirmStateChange": true, "remoteCommandsEnabled": true, "hasPermissionToChangeState": true, "deviceIcon": { "icon": 182 }, "batteryLevelNull": 100, "lowBattery": false, "criticalBattery": false }, "relationships": { "system": { "data": { "id": "********", "type": "systems/system" } }, "stateInfo": { "data": { "id": "********-1257-2", "type": "devices/state-info" } } } } ], "relationships": { "partitions": { "data": [ { "id": "********-127", "type": "devices/partition" } ], "meta": { "count": "1" } }, "locks": { "data": [ { "id": "********-1255", "type": "devices/lock" }, { "id": "********-1257", "type": "devices/lock" } ], "meta": { "count": "2" } },
Homebridge System (please complete the following information):

  • Node.js Version: v12.18.3
  • NPM Version: v6.14.6
  • Homebridge Version: Version 1.1.1
  • Operating System: Raspbian / Ubuntu / Debian / Windows / macOS / Docker
  • Process Supervisor: Docker / Systemd / init.d / pm2 / launchctl / hb-service / other / none

Additional context

THANKS!

Locks and garage report proper status on startup, but report the wrong status "Unlocking..." after ~1 min

Info:

OS: Raspbian GNU/Linux Buster (10) (Ready made image)
Homebridge Version: v1.1.6
Node.js Version: v14.15.0
Npm Version: v6.14.8
homebridge-node-alarm-dot-com Version:  v1.6.5
Alarm.com Company: CPI Security

Console Errors:

[08/11/2020, 18:24:53] [Security System] Updating light Garage Door (97124791-1201), state=1, prev=0
[08/11/2020, 18:24:53] [Security System] TypeError: Cannot read property 'getCharacteristic' of undefined
    at ADCPlatform.statLightState (/usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:793:9)
    at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:299:20
    at Array.forEach (<anonymous>)
    at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:294:27
    at Array.forEach (<anonymous>)
    at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:265:22
    at processTicksAndRejections (internal/process/task_queues.js:93:5)```

Problem:

  • After I set up the plugin, all three of my door locks (Front Door, Back Door and Garage Door), and my garage door (overhead door) show up in the Home app. I can operate them from the app. About a minute in I get errors like above and all of the accessories start going into an "unlocking" state. Additionally, the Garage door shows as open. If I restart the server it goes back to normal but goes bad after a minute.
  • The state change mentioned in the logs above never happened, I did not open or close the garage.
  • the getCharactoristic was just included to show the errors around this. I think this is just related to the fact that I don't have any switches on my system, but I could be wrong.
  • I have gone through removing cache (with homebridge stopped), uninstalling and reinstalling the plugin, ignoring certain devices but to no avail.

Searched issues and I did not immediately find one that was identical to this. Wondering if I could get an assist on this in your spare time. My coding skills outside of Python are poor, so not exactly sure where to look. Any help would be appreciated.

Issue with Garage Door not responding and reporting incorrect status

Describe the bug
Almost all of the time, the garage door accessory shows the opposite status of reality (and what is reported by alarm.com website/app), also, after I use the home app to open/close the garage door I get 'No Response' on the garage door icon in the Home app for a long time before it reports a status again (which is 9/10 times the inverse of reality)

To Reproduce
Updated to most recent version of plugin
Cleared cached accessories cache
restarted homebridge
Garage door initially showed as 'open' in accessories pane of home bridge and on iPhone home app (door is closed in reality, and shows closed in alarm.com)
tapped on garage door icon in home app
door opens
Home app shows 'No Response' on garage door icon
between 10 and 30 minutes later Home app displays garage door status as closed (is open actually)
tap garage door icon in Home app
Door closes
Home app icon shows 'No Response' again for garage door
Behavior repeats...

Expected behavior
Garage door icon displays closed (door is actually closed)
Tap garage door icon in home app
Garage door opens
Home app displays garage door status as 'Open'
Tap garage door icon in home app
Garage Door closes
Home app displays garage door status as 'Closed'

**ADC-SystemStates.json
ADC-SystemStates.json.txt

**

Homebridge System (please complete the following information):

  • Node.js Version: v12.18.1
  • NPM Version: v6.14.5
  • Homebridge Version: 1.1.1
  • Operating System: Raspbian
  • Process Supervisor: none

Implement support for more devices

I'm creating this issue to track progress on adding support for lights, garage doors, thermostats, and locks.

  • Lights
  • Locks
  • Garage Doors
  • Thermostats

Notes

Note: I have no idea what statePollOnly is, but I assume it's for only returning the current status of a device.

Mike Kormendy:
statePollOnly is used for telling their API whether or not you want to poll for the state after it has been set. In most cases, we don't need to poll for the state after we set it because we are keeping our own state status in our code. However, I believe their system may be event driven and need to refresh itself based on state controlled by their API and not internally in their clients.

Lights

The endpoint for lighting control is https://www.alarm.com/web/api/devices/lights/<device id>/<turnOn, turnOff>. This is a POST request with the body {"dimmerLevel":<1-100>,"statePollOnly":false}. This body is used with both the turnOff and turnOn endpoints.

Locks

The endpoint for locks is https://www.alarm.com/web/api/devices/locks/<device id>/<unlock,lock>. The body of the request is {"statePollOnly":false}.

Thermostats

Thermostats have a lot of configurable settings, including temperature, fan, cooling setpoint, heating setpoint, and mode. I only grabbed the information for mode and setpoint since they're tied together and I believe it's the only control implemented in homekit.

The endpoint for setting thermostats is https://www.alarm.com/web/api/devices/thermostats/<device id>/setState. The potential body of the request is {"desiredState":x,"desiredHeatSetpoint":59,"desiredCoolSetpoint":86,"statePollOnly":false}.

  • Desired state can be a number between 1 and 4.
  1. off
  2. heating
  3. cooling
  4. auto
  • desiredCool/HeatSetpoint is an integer. I use fahrenheit in my example.

I'm unfamiliar with the project but will try my best at adding these features in a PR!

Unable to trigger any homekit accessories - This callback function has already been called by someone else

I am unable to trigger any HomeKit accessories due to the below error. All alarm.com accessories are able to appear in Home app. I have disabled 2FA. Login/Password seems to be accepted as the accessories are being fetched successfully. I have did a complete reinstall of Homebridge and plugin and same error. Any ideas of a next step for me? Thanks

Error:
[7/1/2020, 7:54:51 AM] [Security System] Error: Failed to change light state: Error: POST https://www.alarm.com/web/api/devices/lights/97265971-1211/turnOn failed: 403
at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:491:13
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:918) UnhandledPromiseRejectionWarning: Error: This callback function has already been called by someone else; it can only be called one time.
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:6:13
at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:675:9
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:918) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)

continuous warning in the log

Hi,

Thanks for putting this together, its a great improvement from using the old plugin.

Just a quick question, I keep getting this in my homebridge log:

[2018-10-2 03:03:46] [Security system] Warning: Sensor with unknown state 0

Comes over and over again...

My system doesn't seem to report sensors (I don't see them in my home app, I only see the panel and smoke detector).

Thanks!

Since updating receiving error: "Error: The requested platform 'Alarmdotcom' was not registered by any plugin."

Describe the bug
Updated plugin to newest version (1.7.1) this morning and now the plugin will not load and Homebridge/HOOBS will not start

To Reproduce
Configure plugin, save, plugin will not start

Expected behavior
Hoobs will start and plugin will function

Screenshots
2/7/2021, 9:49:59 AM Error: The requested platform 'Alarmdotcom' was not registered by any plugin.
at PluginManager.getPluginForPlatform (/usr/local/lib/node_modules/@hoobs/hoobs/node_modules/homebridge/lib/pluginManager.js:152:23)
at /usr/local/lib/node_modules/@hoobs/hoobs/bridge/server.js:334:45
at Array.forEach ()
at Server.loadPlatforms (/usr/local/lib/node_modules/@hoobs/hoobs/bridge/server.js:320:31)
at Server.start (/usr/local/lib/node_modules/@hoobs/hoobs/bridge/server.js:152:35)
at /usr/local/lib/node_modules/@hoobs/hoobs/bridge/cli.js:94:16
at processTicksAndRejections (internal/process/task_queues.js:97:5)

ADC-SystemStates.json
Not sure how to get this one in Hoobs.

Homebridge System (please complete the following information):

  • Node.js Version: v12.19.0
  • NPM Version: 7.5.2
  • Homebridge Version: Hoobs 3,3.2
  • Operating System: Fedora 29
  • Process Supervisor: Systemd

Additional context

Locks and Garage Door Opener Progress?

Just curious on the development for Lock and Garage Door Opener support. I have both on my ADC setup (Schlage door lock and GoControl garage opener). I believe I have been able to capture the API calls for both but admittedly my programming skills are rusty at best. If there is anything I could do to aid the development I'd be happy to help,

BEFORE ALL ELSE... (Guidelines_for_Troubleshooting)

Before reporting an issue, there are a number of reasons why this Homebridge plugin may not be working. Here's some steps to follow to work towards a fix:

  1. Make sure you're Homebridge config.json file is properly formatted (see the default sample file here) and the settings for this plugin are correct for your Alarm.com account.
  2. Refresh the accessories cache by starting Homebridge with the -R flag:
    homebridge -R
    If your homebridge is set to start on boot, you may need to disable that first and start it manually on the command line to refresh the cache and see if the problems continue while in this setup before restoring the start on boot setup.
  3. Try deleting the cachedAccessories file:
    a. FIRST, stop Homebridge (this is important);
    b. locate and delete the ~/.homebridge/accessories/cachedAccessories file;
    c. start up Homebridge again and test for success.
  4. Make sure that all parts of the plugin have been updated to their latest or expected versions, use the following command:
    sudo npm list node-alarm-dot-com

If at this point things are not working, please submit a ticket using the Bug Report template.

Once you have submitted the ticket, you can also visit the Slack channel Discord channel (moved from Slack to Discord) to see if others are working on the issue already.


As a last resort (not recommended due to the destructive nature), the following steps can help reset your entire Homekit/Homebridge integration:

NOTE: this will remove all Homebridge based accessories, their locations in the rooms of Home.app, their automations, scenes, configurations and any related data stored in Homekit. BE VERY CAREFUL!

  1. Remove Homebridge from HomeKit in the Home.app on your "iDevice".
  2. Stop Homebridge.
  3. Delete the accessories and persist folders in the ~/.homebridge/ folder.
  4. Edit config.json settings:
    a. changing the homebridge user name (just change one character or number in that hex style sequence, without removing any of the colons);
    b.remove any unwanted plugins from the accessories and platforms sections.
  5. Start Homebridge from the command line.
  6. Add Homebridge back to HomeKit.

If the issue persists, please submit a ticket using the Bug Report template.

New to Homebridge, attempting to setup alarm.com plugin

Hello,

I am hoping that I am putting this in the right place, I do apologize, if I am not. I am trying to figure out how to configure the alarm.com plugin into my config.json file, I am a little confused with the directions, and I am hoping I can get some clarification on it. The "authTimeoutMinutes" and "pollTimeoutSeconds" are not showing in the configuration so I am not sure where those should go in the .json file. Thank you for your time, I am completely new at this and just trying to get my footing here.

Thanks,

Ox

Callback function has already been called by someone else

I'm unable to to control my lights through homebridge or the home app with the latest 1.4.1 version. Here's what's happening in the log:

[Homebridge] [1/15/2020, 11:12:32 PM] [Security System] Changing light (########-####, false light level null)
[Homebridge] [1/15/2020, 11:12:33 PM] [Security System] Error: Failed to change light state: Error: POST https://www.alarm.com/web/api/devices/lights/XXXXXXXXXXXXXXXX/turnOff failed: 403
[Homebridge] at fetch.then.then.catch.err (/home/hoobs/.hoobs/node_modules/node-alarm-dot-com/index.js:504:13)
[Homebridge] at process._tickCallback (internal/process/next_tick.js:68:7)
[Homebridge] [1/15/2020, 11:12:33 PM] Unhandled Rejection "Error: This callback function has already been called by someone else; it can only be called one time.".
[Homebridge] [1/15/2020, 11:12:33 PM] Error: This callback function has already been called by someone else; it can only be called one time.
[Homebridge] at /home/hoobs/.hoobs/node_modules/@hoobs/hap/lib/util/once.js:12:13
[Homebridge] at login.then.then.then.then.catch.err (/home/hoobs/.hoobs/node_modules/homebridge-node-alarm-dot-com/index.js:718:9)
[Homebridge] at process._tickCallback (internal/process/next_tick.js:68:7)
[Homebridge] (node:596) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1)

Support multi-system accounts

I've noticed that we're able to use the alarm.com api to get back any systems that're linked to the account. Theoretically we should be able to query these systems and add their devices to homekit just the same as the primary system.

The alarm.com website makes a GET call to the endpoint https://www.alarm.com/web/api/systems/availableSystemItems, which returns a JSON structure like this:

{
  "data": [
    {
      "id": "xxxxxxx",
      "type": "systems/availableSystemItem",
      "attributes": {
        "name": "System Name",
        "icon": "property-single",
        "isSelected": false
      },
      "relationships": {
        "subItems": {
          "data": [],
          "meta": {
            "count": "0"
          }
        }
      }
    },
    {
      "id": "xxxxxxx",
      "type": "systems/availableSystemItem",
      "attributes": {
        "name": "Primary System Name",
        "icon": "property-single",
        "isSelected": true
      },
      "relationships": {
        "subItems": {
          "data": [],
          "meta": {
            "count": "0"
          }
        }
      }
    }
  ],
  "included": [],
  "meta": {
    "transformer_version": "1.1"
  }
}

The id returned for other systems can be used just the same as the id for the primary system.

Can’t Arm Away from Home App

Every time I try to arm my Alarm.com panel from the Home app, it does not allow me to arm Away. I can arm Home and arm Night but not Away. When I click on Away, immediately the system status turns to “Not Responding” and then off.

Per the Alarm.com app, it seems to be sending a Disarm command instead.

IMG_1823

Here is my config:
{
"platform": "Alarmdotcom",
"name": "Security System",
"username": "XXXXXXX",
"password": "XXXXXXX",
"armingModes": {
"away": {
"noEntryDelay": false,
"silentArming": false
},
"night": {
"noEntryDelay": false,
"silentArming": false
},
"stay": {
"noEntryDelay": false,
"silentArming": false
}
}
},

And attached is the log from HomeBridge showing the error I get when I try to Arm Away.

523D0AAE-3FC7-458E-B688-DB88A6A802C3

Homebridge System (please complete the following information):

  • Hardware: Pi3
  • OS: Rasbian Latest
  • Node Type/Version: oznu docker image latest

Alarm.com (FrontPoint) Light Control

Describe the bug
Added the plugin into homebridge and added the light dimmer switches to my system, but when trying to turn on the lights via Homekit, I get the following error in the HB UI log:

[5/20/2020, 14:49:52] [Security System] Changing light (91028770-1225, false light level 100)
[5/20/2020, 14:49:53] [Security System] Error: Failed to change light state: Error: POST https://www.alarm.com/web/api/devices/lights/91028770-1225/turnOff failed: 403
at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:491:13
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:2514) UnhandledPromiseRejectionWarning: Error: This callback function has already been called by someone else; it can only be called one time.
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:6:13
at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:675:9
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:2514) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)

To Reproduce
Please see above...

Expected behavior
Lights turn on/off

Screenshots
If applicable, add screenshots to help explain your problem.

Homebridge System (please complete the following information):

  • Hardware: [Pi4 4GB.]
  • OS: [Using official Homebridge 1.0.3 image]

Additional context
N/A

Error loading plugin

Hi there,

Trying to move from Bryan Bartow's plugin version to yours, but getting the error noted below. Any thoughts? Thanks!

[9/9/2018, 9:42:24 PM] ====================
[9/9/2018, 9:42:24 PM] ERROR LOADING PLUGIN homebridge-node-alarm-dot-com:
[9/9/2018, 9:42:24 PM] Error: Cannot find module '/package'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object. (C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge-node-alarm-dot-com\node_modules\node-alarm-dot-com\index.js:20:5)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
[9/9/2018, 9:42:24 PM] ====================
[9/9/2018, 9:42:24 PM] Loading 4 platforms...
C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge\lib\api.js:122
throw new Error("The requested platform '" + name + "' was not registered by any plugin.");
^

Error: The requested platform 'Alarmdotcom' was not registered by any plugin.
at API.platform (C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge\lib\api.js:122:13)
at Server._loadPlatforms (C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge\lib\server.js:316:45)
at Server.run (C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge\lib\server.js:86:36)
at module.exports (C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge\lib\cli.js:45:10)
at Object. (C:\Users\Server\AppData\Roaming\npm\node_modules\homebridge\bin\homebridge:17:22)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)

Accessory Status Not Updating/Working

I can control all of my accessories, but the status of each accessory is not working for me. I either get a “No Response” status, or my Security Panel will show “Arming…” or “Disarming…” statuses indefinitely. But again the action is successful, just the status doesn’t update correctly.

  • Hardware: Mac mini (2018) running MacOS 10.15.1 (19B88)
  • Node Type/Version: node v12.12.0

Error after upgrade to 1.3.1

Keep receiving this in Homebridge log after upgrade to 1.3.1

[2019-11-19 12:13:11] [ADT] TypeError: Cannot read property 'forEach' of undefined
at systemStates.forEach.system (/usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:227:24)
at Array.forEach ()
at login.then.then.systemStates (/usr/local/lib/node_modules/homebridge-node-alarm-dot-com/index.js:210:22)
at
at process._tickCallback (internal/process/next_tick.js:189:7)

Please help.

Two-Factor Authentication (2FA) Support?

I'm new to homebridge and started with Bryan's plugin before I realized the API issues. So I'm working on porting to this plugin.

  • No issues uninstalling homebridge-alarm.com and installing homebridge-node-alarm-dot-com.
  • I updated the config file and deleted the ~/.homebridge/accessories/cachedAccessories file.
  • When launching Homebridge, it successfully logs me into my alarm.com account.

Then it drops the following error:

UNHANDLED ERROR: Error: GET https://www.alarm.com/web/api/systems/systems/4472096 failed: [object Object]
at fetch.then.then.catch.err (/usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:334:13)
at process.internalTickCallback (internal/process/next_tick.js:77:7)

Every minute thereafter I get the same error.

Error: GET https://www.alarm.com/web/api/systems/systems/4472096 failed: [object Object]
at fetch.then.then.catch.err (/usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:334:13)
at process.internalTickCallback (internal/process/next_tick.js:77:7)

Any help would be appreciated.

Cannot install the plugin - "not in the NPM registry"

Getting the following error message when I try to install the plugin. Any help would be appreciated...

npm ERR! Darwin 17.7.0

npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "homebridge-alarm-dot-com"
npm ERR! node v6.11.4
npm ERR! npm v3.10.10
npm ERR! code E404

npm ERR! 404 Not found : homebridge-alarm-dot-com
npm ERR! 404
npm ERR! 404 'homebridge-alarm-dot-com' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! Please include the following file with any support request:

Config UI Schema broken in 1.7.x

Describe the bug
config shows raw config.json instead of a user friendly UI
To Reproduce
try to edit plugin settings after updating

Expected behavior
config ui configuration

Issues arming via siri

Hey Mike,

When attempting to arm the alarm using siri,I get an error, "Sorry, arming the entrance security panel returned a fault, check the home app for more info"

I can use the home app with no issues.

GET null failed: The "url" argument must be of type string

Just started getting a new error this morning. No changes to the config or the base machine

 [3/16/2020, 12:50:01 PM] [Security System] Error: GET null failed: GET null failed: The "url" argument must be of type string. Received type object
 at /usr/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:114:17
 at processTicksAndRejections (internal/process/task_queues.js:93:5)

Any ideas?

countdown timer arming timer not triggering

Describe the bug

When I arm away I never see the countdown timer tigger. But I also don't see it from Alarm.coms shortcut implies on the iPhone. Is this working or just a limitation. I've true with the default setting both true and false for noEntryDelay.

Fyi, I am a FrontPoint customer but use your plugin fork.

(fyi, this plugin is great.)


I now this is not a bug below but.......

Also any reason why I have your the authentication time longer? Is 10 min a magic number? I understand why it is not shorter.

Alarm Tile not persisting after reboot

Describe the bug
Upon reboot of Homebridge instance, the Alarm tile will delete and then re-add in Default Room. All other tiles (sensors) remain unaffected

To Reproduce
Steps to reproduce the behavior:

  1. Add Alarm.com platform
  2. Reboot and rename Alarm tile
  3. Reboot - tile will be deleted and then will read in default room

Expected behavior
Alarm tile should persist through reboot

Screenshots
If applicable, add screenshots to help explain your problem.

Homebridge System (please complete the following information):

  • Hardware: LXC Container
  • OS: Ubuntu 18.04
  • Node Type/Version: v12.16.1

Additional context
All other Homebridge accessories unaffected.

Error with HomeBridge

Created the following config.json inside ./homebridge (username and password are fake)
{ "platform": "Alarmdotcom", "name": "Security System", "username": "[email protected]", "password": "password", "armingModes": { "away": { "noEntryDelay": false, "silentArming": false }, "night": { "noEntryDelay": false, "silentArming": false }, "stay": { "noEntryDelay": false, "silentArming": false } } }

The result of executing homebridge is the following
dMini:.homebridge diegovalenzuela$ homebridge
/usr/local/lib/node_modules/homebridge/lib/server.js:230
var username = config.bridge.username;
^

TypeError: Cannot read property 'username' of undefined
at Server._loadConfig (/usr/local/lib/node_modules/homebridge/lib/server.js:230:32)
at new Server (/usr/local/lib/node_modules/homebridge/lib/server.js:56:38)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:32:16)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:775:12)
dMini:.homebridge diegovalenzuela$

Error: failed to change partition state

I am getting this error every once in a while in my homebridge log. The system appears to be working normally I am just wondering what this error means and what it could cause.

One thing I have noticed is the alarm.com system arming switch in Homekit often says "no response" although it still works.

Error: Failed to change partition state: Error: POST https://www.alarm.com/web/api/devices/partitions/99174195-127/armStay failed: request to https://www.alarm.com/web/api/devices/partitions/99174195-127/armStay failed, reason: socket hang up
at /usr/local/lib/node_modules/homebridge-node-alarm-dot-com/node_modules/node-alarm-dot-com/index.js:491:13
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:97:5)

TypeError: Cannot read property 'ARMED_STAY' of undefined

Describe the bug

When running this plugin, after making any adjustment or on startup, I receive the following:

[12/01/2021, 11:56:23] [Security System] Error: Failed to change partition state: TypeError: Cannot read property 'ARMED_STAY' of undefined
    at getPartitionState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:1291:32)
    at ADCPlatform.statPartitionState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:435:19)
    at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:524:31
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
[12/01/2021, 11:56:24] [Security System] TypeError: Cannot read property 'ARMED_STAY' of undefined
    at getPartitionState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:1291:32)
    at ADCPlatform.statPartitionState (/usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:435:19)
    at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:273:20
    at Array.forEach (<anonymous>)
    at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:268:31
    at Array.forEach (<anonymous>)
    at /usr/lib/node_modules/homebridge-node-alarm-dot-com/index.js:265:22
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

After performing any action in the Home app, the panel receives the command, but the app continually seems to think the device is offline.

To Reproduce
Occurs on startup

Expected behavior
No errors

Screenshots

N/A

ADC-SystemStates.json

[{"id":3919811,"attributes":{"description":"Taffe","hasSnapShotCameras":false,"supportsSecureArming":true,"remainingImageQuota":0,"systemGroupName":"","unitId":93882512},"partitions":[{"id":"93882512-127","type":"devices/partition","attributes":{"partitionId":1,"state":1,"desiredState":1,"extendedArmingOptions":{"Disarmed":[],"ArmedStay":[2,1,0],"ArmedAway":[2,1],"ArmedNight":[]},"invalidExtendedArmingOptions":{"Disarmed":[],"ArmedStay":[],"ArmedAway":[],"ArmedNight":[]},"needsClearIssuesPrompt":false,"canEnableAlexa":false,"isAlexaEnabled":false,"managedDeviceType":8,"canBeRenamed":true,"canAccessWebSettings":true,"canAccessAppSettings":true,"webSettings":1002,"hasState":true,"canBeDeleted":false,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Panel","deviceModelId":6778,"canConfirmStateChange":true,"canReceiveCommands":true,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":184},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"sensors":{"data":[{"id":"93882512-5","type":"devices/sensor"},{"id":"93882512-6","type":"devices/sensor"},{"id":"93882512-4","type":"devices/sensor"},{"id":"93882512-1","type":"devices/sensor"},{"id":"93882512-3","type":"devices/sensor"},{"id":"93882512-8","type":"devices/sensor"}],"meta":{"count":"6"}},"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":{"id":"93882512-127-4","type":"devices/state-info"}}}}],"sensors":[{"id":"93882512-5","type":"devices/sensor","attributes":{"deviceType":1,"openClosedStatus":2,"state":1,"isFlexIO":false,"deviceRole":0,"stateText":"Closed","isMonitoringEnabled":true,"managedDeviceType":9,"hasState":true,"canBeRenamed":true,"canBeDeleted":false,"canAccessWebSettings":true,"canAccessAppSettings":false,"webSettings":400,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Family Room Door Left","deviceModelId":5053,"canConfirmStateChange":true,"canReceiveCommands":false,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":317},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":null}}},{"id":"93882512-6","type":"devices/sensor","attributes":{"deviceType":1,"openClosedStatus":2,"state":1,"isFlexIO":false,"deviceRole":0,"stateText":"Closed","isMonitoringEnabled":true,"managedDeviceType":9,"hasState":true,"canBeRenamed":true,"canBeDeleted":false,"canAccessWebSettings":true,"canAccessAppSettings":false,"webSettings":400,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Family Room Door Right","deviceModelId":5053,"canConfirmStateChange":true,"canReceiveCommands":false,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":317},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":null}}},{"id":"93882512-4","type":"devices/sensor","attributes":{"deviceType":1,"openClosedStatus":2,"state":1,"isFlexIO":false,"deviceRole":0,"stateText":"Closed","isMonitoringEnabled":true,"managedDeviceType":9,"hasState":true,"canBeRenamed":true,"canBeDeleted":false,"canAccessWebSettings":true,"canAccessAppSettings":false,"webSettings":400,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Front Door","deviceModelId":5053,"canConfirmStateChange":true,"canReceiveCommands":false,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":317},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":null}}},{"id":"93882512-1","type":"devices/sensor","attributes":{"deviceType":1,"openClosedStatus":2,"state":1,"isFlexIO":false,"deviceRole":0,"stateText":"Closed","isMonitoringEnabled":true,"managedDeviceType":9,"hasState":true,"canBeRenamed":true,"canBeDeleted":false,"canAccessWebSettings":true,"canAccessAppSettings":false,"webSettings":400,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Garage Door","deviceModelId":5053,"canConfirmStateChange":true,"canReceiveCommands":false,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":317},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":null}}},{"id":"93882512-3","type":"devices/sensor","attributes":{"deviceType":2,"openClosedStatus":3,"state":4,"isFlexIO":false,"deviceRole":0,"stateText":"Activated","isMonitoringEnabled":true,"managedDeviceType":9,"hasState":true,"canBeRenamed":true,"canBeDeleted":false,"canAccessWebSettings":true,"canAccessAppSettings":false,"webSettings":400,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Motion Detector","deviceModelId":5053,"canConfirmStateChange":true,"canReceiveCommands":false,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":317},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":null}}},{"id":"93882512-8","type":"devices/sensor","attributes":{"deviceType":5,"openClosedStatus":2,"state":1,"isFlexIO":false,"deviceRole":0,"stateText":"Not Reset","isMonitoringEnabled":false,"managedDeviceType":2,"hasState":false,"canBeRenamed":true,"canBeDeleted":false,"canAccessWebSettings":true,"canAccessAppSettings":false,"webSettings":400,"macAddress":"","manufacturer":"","isOAuth":false,"isZWave":false,"isMalfunctioning":false,"canBeSaved":true,"canChangeDescription":true,"description":"Second Floor Smoke","deviceModelId":5053,"canConfirmStateChange":true,"canReceiveCommands":false,"remoteCommandsEnabled":true,"hasPermissionToChangeState":true,"deviceIcon":{"icon":218},"batteryLevelNull":null,"lowBattery":false,"criticalBattery":false},"relationships":{"system":{"data":{"id":"3919811","type":"systems/system"}},"stateInfo":{"data":null}}}],"lights":[],"locks":[],"garages":[],"relationships":{"partitions":{"data":[{"id":"93882512-127","type":"devices/partition"}],"meta":{"count":"1"}},"locks":{"data":[],"meta":{"count":"0"}},"accessControlAccessPointDevices":{"data":[],"meta":{"count":"0"}},"cameras":{"data":[],"meta":{"count":"0"}},"sdCardCameras":{"data":[],"meta":{"count":"0"}},"garageDoors":{"data":[],"meta":{"count":"0"}},"waterValves":{"data":[],"meta":{"count":"0"}},"scenes":{"data":[{"id":"2906005","type":"automation/scene"},{"id":"2906006","type":"automation/scene"},{"id":"2906007","type":"automation/scene"},{"id":"2906008","type":"automation/scene"}],"meta":{"count":"4"}},"sensors":{"data":[{"id":"93882512-5","type":"devices/sensor"},{"id":"93882512-6","type":"devices/sensor"},{"id":"93882512-4","type":"devices/sensor"},{"id":"93882512-1","type":"devices/sensor"},{"id":"93882512-3","type":"devices/sensor"},{"id":"93882512-8","type":"devices/sensor"}],"meta":{"count":"6"}},"waterSensors":{"data":[],"meta":{"count":"0"}},"sumpPumps":{"data":[],"meta":{"count":"0"}},"waterMeters":{"data":[],"meta":{"count":"0"}},"lights":{"data":[],"meta":{"count":"0"}},"x10Lights":{"data":[],"meta":{"count":"0"}},"smartChimeDevices":{"data":[],"meta":{"count":"0"}},"thermostats":{"data":[],"meta":{"count":"0"}},"remoteTemperatureSensors":{"data":[],"meta":{"count":"0"}},"commercialTemperatureSensors":{"data":[],"meta":{"count":"0"}},"valveSwitches":{"data":[],"meta":{"count":"0"}},"boilerControlSystem":{"data":null},"geoDevices":{"data":[{"id":"93882512-2200","type":"geolocation/geo-device"},{"id":"93882512-2201","type":"geolocation/geo-device"},{"id":"93882512-2202","type":"geolocation/geo-device"},{"id":"93882512-2203","type":"geolocation/geo-device"}],"meta":{"count":"4"}},"fences":{"data":[{"id":"246205","type":"geolocation/fence"}],"meta":{"count":"1"}},"imageSensors":{"data":[],"meta":{"count":"0"}},"configuration":{"data":{"id":"3919811","type":"systems/configuration"}},"shades":{"data":[],"meta":{"count":"0"}},"gates":{"data":[],"meta":{"count":"0"}},"switches":{"data":[],"meta":{"count":"0"}}}}]

Homebridge System (please complete the following information):

  • Node.js Version: v14.15.4
  • NPM Version: 6.14.10
  • Homebridge Version: 1.1.7
  • Operating System: Raspbian
  • Process Supervisor: hb-service

Additional context

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.