Alarm.com Custom Component for Home Assistant
This is a custom component to allow Home Assistant to interface with the Alarm.com site by scraping the Alarm.com web portal. This component is designed to integrate the Alarm.com security system functionality only - it requires an Alarm.com package which includes security system support.
Please note that Alarm.com may remove access at any time.
This integration is great for casual use within Home Assistant but... do not rely on this integration to keep you safe.
- This integration communicates with Alarm.com over an unofficial channel that can be broken or shut down at any time.
- It may take several minutes for this device to receive a status update from Alarm.com's servers.
- Your automations may be buggy.
- This code may be buggy.
You should use Alarm.com's official apps, devices, and services for notifications of all kind related to safety, break-ins, property damage (i.e.: freeze sensors), etc.
Device Type | Actions | View Status | Low Battery Sub-Sensor | Malfunction Sub-Sensor |
---|---|---|---|---|
Alarm System | arm away, arm stay, arm night, disarm | ✔ | ✔ | |
Sensors | (none) | ✔ | ✔ | ✔ |
Locks | lock, unlock | ✔ | ✔ | ✔ |
Garage Door | open, close | ✔ |
As of v0.2.0, multiples of all of the above devices are supported.
- Contact Sensor
- Smoke Detector
- CO Detector
- Panic Button
- Glass Break Detector
What are subsensors?
Each sensor in your system is created as both a device and as an entity within Home Assistant. Each sensor and lock has an associated low battery sensor that activates when the device's battery is low. Each sensor, lock, and control panel has an associated malfunction sensor that activates when either Alarm.com reports an issue or when this integration is unable to process data for a sensor.- Use HACS to download this integration.
- Configure the integration via Home Assistant's Integrations page. (Configuration -> Add Integration -> Alarm.com)
- When prompted, enter your Alarm.com username, password, and two-factor authentication cookie (more info on this below).
You'll be prompted to enter these parameters when configuring the integration.
Parameter | Required | Description |
---|---|---|
Username | Yes | Username for your Alarm.com account. |
Password | Yes | Password for your Alarm.com account. |
Two Factor Cookie | Maybe | Required for accounts with two-factor authentication enabled. See note below. |
Some providers are starting to require 2FA for logins. This can be worked around by getting the twoFactorAuthenticationId
cookie from an already authenticated browser and entering it as a configuration parameter.
Getting a Two Factor Authentication Cookie
1. Temporarily remove your alarmdotcom config from configuration.yaml. (If the component is enabled it will keep trying to log in which will disrupt your initial 2FA setup) 2. Log in to your account on the Alarm.com website: https://www.alarm.com/login.aspx 3. Enable Two Factor Authentication 4. Once you are fully logged in to the alarm.com portal without any more 2FA nag screens, go into the developer tools in your browser and locate the `twoFactorAuthenticationId` cookie. Instructions for locating the cookie in Chrome can be found here: https://developers.google.com/web/tools/chrome-devtools/storage/cookies 5. Copy the cookie string into your config under the `Two Factor Cookie` parameter.These options can be set using the "Configure" button on the Alarm.com card on Home Assistant's Integrations page:
Parameter | Description |
---|---|
Code | Specifies a code to arm/disarm your alarm or lock/unlock your locks in the Home Assistant frontend. This is not necessarily the code you use to arm/disarm your panel. This is a separate code that Home Assistant in alarm panel card. |
Force Bypass | Specifies when to use the "force bypass" setting when arming. Can be set to always , never , armed home , and armed away . |
No Entry Delay | Specifies when to use the "no entry delay" setting when arming. Same options as above. |
Silent Arming | Specifies when to use the "silent arming" setting when arming. Same options as above. |
The three arming options are not available on all systems/providers. Also, some combinations of these options are incompatible. If arming does not work with a combination of options, please check that you are able to arm via the web portal using those same options.