Giter VIP home page Giter VIP logo

alarmdotcom's Introduction

Alarm.com for Home Assistant

This is an unofficial project that is not affiliated with Alarm.com


GitHub Workflow Status

HACS Downloads GitHub GitHub


This is a custom component that allows Home Assistant to interface with Alarm.com by using the Alarm.com website's unofficial API. This component is designed primarily to integrate the Alarm.com security system functions; as such, it requires an Alarm.com package which includes security system support.

Please note that Alarm.com may break functionality at any time.

image

image

Safety Warnings

This integration is great for casual use within Home Assistant but... do not rely on this integration to keep you safe.

  1. This integration communicates with Alarm.com over an unofficial channel that can be broken or shut down at any time.
  2. It may take several minutes for this integration to receive a status update from Alarm.com's servers.
  3. Your automations may be buggy.
  4. This code may be buggy. It's written by volunteers in their free time and testing is spotty.

You should use Alarm.com's official apps, devices, and services for notifications of all kinds related to safety, break-ins, property damage (e.g.: freeze sensors), etc.

Where possible, use local control for smart home devices that are natively supported by Home Assistant (lights, garage door openers, etc.). Locally controlled devices will continue to work during internet outages whereas this integraiton will not.

Details

Supported Devices

Device Type Actions View Status Low Battery Sub-Sensor Malfunction Sub-Sensor Configuration Options Notes
Alarm System arm away, arm stay, arm night, disarm
Garage Door open, close
Gate open, close
Light turn on / set brightness, turn off
Lock lock, unlock
Sensor (none) Contact sensors will not report the same state within a 3-minute window. This means that Home Assistant will only be notified once if, say, a door has been opened and closed multiple times within 3 minutes.
Skybell HD Camera (none) Indoor Chime On/Off, Outdoor Chime Volume, LED Brightness, Motion Sensor Sensitivity No video support!
Thermostat heat, cool, auto heat/cool, fan only Fan only mode turns on the fan for the maximum duration available through Alarm.com. There is no option to turn on the fan for a shorter duration. Also, no support for remote temperature sensors.

Supported Sensor Types

Sensor Type Notes
Contact Doors, windows, etc.
Freeze
Glass Break / Vibration Both standalone listeners (e.g.: DSC PGx922) & control-panel built-ins (e.g. Qolsys IQ Panel 4).
Motion
Vibration Contact Doors, windows, safes, etc. (e.g.: Honeywell 11)
Water

Note that Alarm.com can has multiple designations for each sensor and not all are known to the developers of this integration. If you have one of the above listed devices but don't see it in Home Assistant, open an issue on GitHub.

Subsensors

Each sensor in your system is created as both a device and as an entity within Home Assistant. Each device has an associated low battery sensor that activates when the device's battery is low. Each device also 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.

Future Support

Roadmapped Devices

The developers have access to the devices listed below and plan to add support in a future release.

Device Type Notes
Image Sensor Not video cameras. Image sensors (e.g.: Qolsys Image Sensor) take still photos when triggered by motion events.

Help Wanted Devices

If you own one of the below devices and want to help build support, open an issue on GitHub.

Device Type Notes Help Needed
RGB Light e.g.: Inovelli RGBW Smart Bulb A lot.
Temperature Sensor e.g.: Alarm.com PowerG Wireless Temperature Sensor A little.
Video Camera e.g.: Alarm.com ADC-V515 A lot.
Water Valve e.g.: Dome Water Main Shut-off A lot.
Help Needed Scale
  • A lot: You'll need to know how to capture web traffic. We'll ask you to log into Alarm.com and use your web browser's network inspector tool to capture requests for all of your device's functions.
  • A little: We'll ask you to run a Python script to dump metadata for your devices. This is straightforward and doesn't require much technical skill.

Device Blacklist

These devices are known but blocked from appearing in Home Assistant. If you disagree with any of these ing reasons, please open an issue on GitHub!

Device Type Reason
Audio Systems Alarm.com supports Sonos systems, but Home Assistant has a better, built-in integration for these devices.
Blinds and Shades (See above.)
Carbon Monoxide Doesn't support state reporting. May be supported in the future.
Irrigation Systems Like above, Home Assistant probably has better direct integrations for these devices.
Mobile Phones Some control panels support PIN-less proximity unlocking via bluetooth (e.g.: Qolsys IQ Panel 4). Paired mobile phones appear in Alarm.com as sensors, but don't provide any useful functions or information for use in Home Assistant (not even malfunction or battery level).
Panic Doesn't support state reporting. May be supported in the future.
Smoke Doesn't support state reporting. May be supported in the future.

Using the Integration

Installation

  1. Use HACS to download this integration.
  2. Configure the integration via Home Assistant's Integrations page. (Configuration -> Add Integration -> Alarm.com)
  3. When prompted, enter your Alarm.com username, password, and two-factor authentication one-time password.

Configuration

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.
One-Time Password Maybe Required for accounts with two-factor authentication enabled.

Additional Options

These options can be set using the "Configure" button on the Alarm.com card on Home Assistant's Integrations page:

image

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 Bypass open zones (windows, doors, etc.) when arming.
No Entry Delay Bypass the entry delay normally applied to entrance sensors.
Silent Arming Suppress beeps when arming and double arming delay length.
Update Interval Frequency with which this integration should poll Alarm.com servers for updated status.

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.

alarmdotcom's People

Contributors

aechelon avatar aritrosaha10 avatar clsferguson avatar dependabot[bot] avatar dinomite avatar dstanchfield avatar elahd avatar michaelthomasmpt avatar pre-commit-ci[bot] avatar sargonas avatar uvjustin avatar vegardengen avatar wrt54g 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  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

alarmdotcom's Issues

Error executing Arm+Stay, logging in and trying again

I've added this integration by inputting a custom repo link into HACS. I'm running hass.io. I added settings to the configuration.yaml as instructed. The alarm.com integration shows up. However, when I go to use it I get this error:

Error executing Arm+Stay, logging in and trying again...
3:02:40 PM – /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py (ERROR) - message first occurred at 3:02:36 PM and shows up 7 times

Any suggestions?

Arm+Stay failed with HTTP code 422

I am able get the status into HA and also disarm without error. However, when I try to arm it fails. On the alaram.com panel I don't use any code to arm.

Arming parameters: force_bypass = True, no_entry_delay = True, silent_arming = True
10:06:42 AM – /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py (ERROR)

Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:315
First occurred: 10:06:42 AM (1 occurrences)
Last logged: 10:06:42 AM

Arming parameters: force_bypass = True, no_entry_delay = True, silent_arming = True

Arm+Stay failed with HTTP code 422
10:06:42 AM – /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py (ERROR)

Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:314
First occurred: 10:06:42 AM (1 occurrences)
Last logged: 10:06:42 AM

Arm+Stay failed with HTTP code 422

status not updated properly and mismatch state of alarm vs web&phone app

Hi,

I've installed the plugin, it works ok for arm & disarm the alarm. The problem is that when I set from HASSIO to Arm the alarm, the state is not updated. Within alarm.com the state shows as Disarmed but the alarm itself is having the red led blinking and the arming sound was heard.
The state of disarm is executed properly and its recognized in the web UI.
On the Web it shows [Web] command: arm stay no entry delay silent. But then the icon stills show as disarmed despite being armed at that point in time. Somehow the plugin get to activate the arming but it doesn't shows neither in HASSIO UI or the Alarm.com UI. Like some missing sync between those actions.

any idea ? all the stup is latest version of both homeassistant and the plugin.

Unable to extract ajax key

2021-09-24 13:21:52 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract ajax key from Alarm.com
2021-09-24 13:21:53 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcom platform for alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 96, in async_setup_platform
    await alarmdotcom.async_login()
  File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 156, in async_login
    await self._alarm.async_login()
  File "/usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 204, in async_login
    if not await self._async_get_ajax_key():
  File "/usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 150, in _async_get_ajax_key
    self._ajax_headers["ajaxrequestuniquekey"] = resp.cookies["afg"].value
KeyError: 'afg'

I am facing the above error today. I can't seem to figure out why is can't extract the ajax key. This was working last night.

Sensor Staus is "Not Monitored"

What does this mean/how do I get them to be monitored? I know they're monitored on my system but they all show as "off" in HA.

Tons of template variable warnings in logs

Ever since HA added the new templating system and turned on warnings for it's variables, my logs are regularly filled every 20 to 30 minutes with a string of warnings, one for each alarmdotcom sensor I have (door openings and motion sensors). As far as I can remember from setting this up, I am fairly certain that I did not ever create anything custom that uses this, so I wanted to confirm here if this is indeed stemming from original code in the module and if it's something that can be fixed on this side.

Here's an example of one of them:

2021-09-24 03:52:36 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'TRUE' is undefined when rendering '{{ state_attr('alarm_control_panel.alarm_com', 'sensor_status')|regex_search('Front Door is Open', ignorecase=TRUE) }}'

I was going to start poking through the repo as well and look for where this might be and see if perhaps I can't make a PR to fix it myself, but figured I would start a conversation here before I go too far down the rabit hole in case you have a quick answer or can confirm this is not cause by your code and something custom I've forgotten about. :)

Do you want me to add GitHub actions?

If you want, I can add some advanced CI to your repo in a PR. Let me know if you want that.

  • Do you want to enable auto-formatting?
  • Do you want packaged or independent (I recommend packaged because I can send updates)?

Sensors States are reversed

Thanks for the integration, been using for a few days now, but seems to have come across the issue that the sensor states are in reverse.

I.e. Front Door is currently closed, but is showing open. This is the same for all sensors.

image

Protection One / Alarm.com now requires 2FA

@uvjustin - I used Protection One/Alarm.com as my security provider. I had the same issue noted in #21 for a few days but it resolved itself. I rebooted 2 days ago and now the 2FA issue has come back. I'm getting the following errors in my log.

ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract data from adt.com
ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcom platform for alarm_control_panel

I know you fixed this for ADT users. Is there a way you do the same for Protection One users? Here's the site I log into https://www.alarm.com.

Thanks!

alarmdotcom

Is this component working at all? I installed through HACS but there is no alarm_control_panel in my list of entities.

pyalarmdotcomajax not installed properly

Hello,

I try to setup this custom comp. in Hass.io. As far as I understand dependency not installed. I try to restart couple of time.

This is my error log

Platform error: alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config.py", line 752, in async_process_component_config
    platform = p_integration.get_platform(domain)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 277, in get_platform
    f"{self.pkg_path}.{platform_name}"
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 5, in <module>
    from pyalarmdotcomajax import Alarmdotcom
ModuleNotFoundError: No module named 'pyalarmdotcomajax'

This is my config

#home_alarm
alarm_control_panel:
platform: alarmdotcomajax
username: !secret alarm_username
password: !secret alarm_password

Thanks

Alarm Control Panel Not Found During Alexa Component Discovery

From https://www.home-assistant.io/integrations/alexa.smart_home/

Alexa does not support arming with voice PIN at this time. Therefore if the Alarm Control Panel requires a code for arming or the code_arm_required attribute is true, the entity will not be exposed during discovery. The Alarm Control Panel may default the code_arm_required attribute to true even if the platform does not support or require it. Use the Entity Customization Tool to override code_arm_required to false and expose the Alarm Control Panel during discovery.

I was unable to get this to successfully work with the customizations.yaml even if it shows code_arm_required: false in the developer tools. I'm not using Alexa through Nabu Casa.

Likely a race condition where the customization is not applied until after the alexa component is loaded.

I found that adding an override to the implement of AlarmControl panel to set the value to false works.

    @property
    def code_arm_required(self):
        """Whether the code is required for arm actions."""
        return False    

This should probably be implemented in a nicer manner in a configurable manner.

Error setting up integration alarm_control_panel - received exception

Hi,
I followed the instruction and getting an error. Here is my setup
/config/custom_components/alarmdotcomajax
---> init.py
---> alarm_control_panel.py
---> manifest.json

I then added the following to my config.yaml
alarm_control_panel:

  • platform: alarmdotcomajax
    username: XXXXXXXX
    password: XXXXXXX
    code: "XXXXX"
    force_bypass: "true"
    no_entry_delay: "home"
    silent_arming: "false"

When I reboot the HA, I get this error:
`Logger: homeassistant.bootstrap
Source: loader.py:516
First occurred: 13:14:08 (1 occurrences)
Last logged: 13:14:08

Error setting up integration alarm_control_panel - received exception
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 64, in async_setup_component
return await task # type: ignore
File "/usr/src/homeassistant/homeassistant/setup.py", line 174, in _async_setup_component
processed_config = await conf_util.async_process_component_config(
File "/usr/src/homeassistant/homeassistant/config.py", line 809, in async_process_component_config
p_integration = await async_get_integration_with_requirements(hass, p_name)
File "/usr/src/homeassistant/homeassistant/requirements.py", line 48, in async_get_integration_with_requirements
integration = await async_get_integration(hass, domain)
File "/usr/src/homeassistant/homeassistant/loader.py", line 456, in async_get_integration
integration = Integration.resolve_legacy(hass, domain)
File "/usr/src/homeassistant/homeassistant/loader.py", line 241, in resolve_legacy
comp = _load_file(hass, domain, _lookup_path(hass))
File "/usr/src/homeassistant/homeassistant/loader.py", line 516, in _load_file
module = importlib.import_module(path)
File "/usr/local/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 779, in exec_module
File "", line 916, in get_code
File "", line 846, in source_to_code
File "", line 219, in _call_with_frames_removed
File "/config/custom_components/alarmdotcomajax/init.py", line 6

^
SyntaxError: invalid syntax`

Unable to extract system id from Alarm.com

I have everything set up and I am getting a notification that I am logged in when HA reboots, but I am not showing the alarm panel and I am getting this error:
2021-11-30 19:39:11 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract system id from Alarm.com
2021-11-30 19:39:11 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcom platform for alarm_control_panel

I looked through past issues and did not see this, my apologies if I missed it.

No module named pyalarmdotcomajax

When i follow all of the steps you have i get the following error: "Platform error alarm_control_panel.alarmdotcomajax - No Module named 'pyalarmdotcomajax'" i downloaded the files directly from this repository and in my custom components folder i have an alarmdotcomajax folder and within that folder i have the following three files: 1. init.py 2. alarm_control_panel.py 3. manifest.json

Any thoughts on how i could get this working?

Component name may be confusing

This component was named alarmdotcomajax to differentiate it from the original alarmdotcom component. The "ajax" suffix may be misleading given that there is actually an alarm system with the name Ajax Systems. Given that the original alarmdotcom integration no longer exists, maybe we should rename this component back to alarmdotcom. @aechelon thoughts?

ADT / Alarm.com now requires 2FA

I noticed my alarmdotcomajax installation stopped working last night. Errors below.

Probably not coincidentally, when I logged in to the alarm.com website I was forced to enable 2FA. Does alarmdotcomajax
support 2FA?

Log Details (ERROR)
Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:135
First occurred: 6:53:48 AM (1 occurrences)
Last logged: 6:53:48 AM

Unable to extract system id from Alarm.com
Log Details (ERROR)
Logger: homeassistant.components.alarm_control_panel
Source: custom_components/alarmdotcomajax/alarm_control_panel.py:124
Integration: Alarm control panel (documentation, issues)
First occurred: 6:53:48 AM (1 occurrences)
Last logged: 6:53:48 AM

Error while setting up alarmdotcomajax platform for alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 197, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 78, in async_setup_platform
    await alarmdotcom.async_login()
  File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 124, in async_login
    await self._alarm.async_login()
  File "/usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 130, in async_login
    self._systemid = json["data"][0]["id"]
KeyError: 'data'

Camera & thermostat support

Hi,
Currently with ADC, the things I use most are camera feeds (indoor cam + doorbell cam) and thermostat control.
I'm not sure how much of this can be done without a proper API, but any way to get camera feeds and / or thermostat controls would be great. Thanks!

Alarm dot com broken out of nowhere

From my core logs:
2021-08-06 09:47:20 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract system id from Alarm.com 2021-08-06 09:47:20 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcom platform for alarm_control_panel Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform await asyncio.shield(task) File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 96, in async_setup_platform await alarmdotcom.async_login() File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 156, in async_login await self._alarm.async_login() File "/usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 206, in async_login return await self._async_get_system_info() File "/usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 166, in _async_get_system_info self._systemid = json["data"][0]["id"] KeyError: 'data'

Error

I am getting a error message in the log section of home assistant. I am curious as to if this is normal. The message says Can not load state data from Alarm.com. it has shown up 6 times. I am kinda new and do not know much about coding or programing.

Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:233
First occurred: 3:15:13 AM (6 occurrences)
Last logged: 3:31:13 AM

Can not load state data from Alarm.com

Also I have noticed that when I restart Home Assistant I get a warning that states this:

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:476
First occurred: 3:15:09 AM (6 occurrences)
Last logged: 3:31:09 AM

Update of alarm_control_panel.alarm_com is taking over 10 seconds

Everything is functioning fine though. I do not have any issues with the alarm arming and disarming in automations or manually from Home Assistnat.

If these are normal then I can ignore them and be ok with that. Just want to be sure.

thank you guys for all your help

LinkInteractive Alarm.com error on restart and constant login messages

I've added the alarmdotcom integration via HACS and followed the instructions to modify the configuration.yaml file. Here's the relevant section:

alarm_control_panel:
  - platform: alarmdotcom
    username: !secret alarm_username
    password: !secret alarm_password

I have confirmed the username and password in my secrets.yaml are correct.

When I restart Home Assistant, I get the following log entries:

Logger: homeassistant.components.alarm_control_panel
Source: custom_components/alarmdotcom/alarm_control_panel.py:156
Integration: Alarm control panel (documentation, issues)
First occurred: 10:22:02 AM (1 occurrences)
Last logged: 10:22:02 AM

Error while setting up alarmdotcom platform for alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 96, in async_setup_platform
    await alarmdotcom.async_login()
  File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 156, in async_login
    await self._alarm.async_login()
  File "/usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 206, in async_login
    return await self._async_get_system_info()
  File "/usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 166, in _async_get_system_info
    self._systemid = json["data"][0]["id"]
KeyError: 'data'

And my email gets spammed with emails letting me know there was a successful login. After 3 restarts, I now have 177 emails.

Am I missing something with the configuration? My provider is Link Interactive. I tried adding adt: true and that actually failed the login (as I expected).

Loading Integration Broke After Upgrading from 0.1.6 to 0.1.7/0.1.8

Hi There,

After upgrading to the build with 0.1.7 or 0.1.8 my component fails to start.
If I grab the source for the 0.1.6 build my component loads.

Here's the stack trace in the HA logs from 0.1.8

2020-12-15 12:47:55 DEBUG (MainThread) [custom_components.alarmdotcom.alarm_control_panel] Setting up Alarm.com...
2020-12-15 12:47:55 DEBUG (MainThread) [custom_components.alarmdotcom.alarm_control_panel] Using hass websession.
2020-12-15 12:48:13 WARNING (MainThread) [homeassistant.components.alarm_control_panel] Setup of alarm_control_panel platform alarmdotcom is taking over 10 seconds.
2020-12-15 12:48:13 WARNING (MainThread) [homeassistant.components.alarm_control_panel] Setup of alarm_control_panel platform alexa_media is taking over 10 seconds.
2020-12-15 12:48:13 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Can not load login page from Alarm.com
2020-12-15 12:48:23 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcom platform for alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 199, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 95, in async_setup_platform
    await alarmdotcom.async_login()
  File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 155, in async_login
    await self._alarm.async_login()
  File "/usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 202, in async_login
    await self._async_get_system_info()
  File "/usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 160, in _async_get_system_info
    async with self._websession.get(
  File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 1124, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 549, in _request
    resp = await req.send(conn)
  File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 668, in send
    await writer.write_headers(status_line, self.headers)
  File "/usr/local/lib/python3.8/site-packages/aiohttp/http_writer.py", line 118, in write_headers
    buf = _serialize_headers(status_line, headers)
  File "aiohttp/_http_writer.pyx", line 137, in aiohttp._http_writer._serialize_headers
  File "aiohttp/_http_writer.pyx", line 109, in aiohttp._http_writer.to_str
TypeError: Cannot serialize non-str key None

Not working

Hi,
Im kinda new at HA. I have recently went from a Honeywell alarm panel to an Alarm.com panel. It is great and all but I can not seem to get it integrated into HA.... Any ideas. I am running HA version 0.114.3

Cannot import AlarmdotcomADT error on last build

I don't have adt on my alarm.com so I set adt to false and got the error bellow. I delete the adt from my config and still got the error.
I reverterted to the commit before the adt commit (sep 2 if am not mistaken) and error is gone

Logger: homeassistant.components.hassio
Source: components/hassio/init.py:407
Integration: Hass.io (documentation, issues)
First occurred: November 19, 2020, 8:23:14 PM (5 occurrences)
Last logged: 6:30:45 PM

Platform error alarm_control_panel.alarmdotcomajax - cannot import name 'AlarmdotcomADT' from 'pyalarmdotcomajax' (/usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/init.py)

Cannot arm

Alarm.com integration, ADT. I integrated the code and have a working card on my panel. It successfully logs into alarm.com. When I restart HA I see a successful login on my alarm.com activity monitor. It gather's the correct state of the alarm and shows the usual buttons for Arm Home, Arm Away and Arm Night. Also has one for custom bypass. Not using a code at this time.

Issue: cannot arm the system from HA. If I arm the system from the web HA gets the proper state and displays the "Disarm". I can press the disarm on HA and it successfully disarms the system.

I have the new IQ 2 Plus panel and it has the capability to have partitions. I had two partitions on my panel and I thought that was the issue. I removed partition support from the panel and all my sensors were available as one unit. The only option on the web portal was to press arm home or arm away. Still no luck arming from HA.

Any insight?

Activating takes long time / not working

Hi,

Pretty new to this but doing my best. I use this integration for my alarm and I also Homekit integration. I got all the sensors working and showing correct (and fast) data. But when I try to arm my alarm, both in HA dashboard and in Homekit, it takes 'forever' (long time), sometimes it sucess but usually not.

When I go in to my alarm.com app, and arm "night" mode, I directly get a 'push' from my homeapp that the alarm state is changed - no lag or so.

Is there something I can to to speedup / sucess with arming the alarm thru HA?

Thx

Lock support

Hi,

I was going to ask about supporting locks. Then, I started looking at the code.

I have now made this dual personality, both a home assistant lock and an alarm. The accompagnying pyalarmdotcomajax also had to be modified.

This now works in my home assistant, but I need to wrap it up and maybe do some small refactoring before I submit a pull request.

No communication with Alarm.com

No error on logs or anything related to Alarmdotcom.
On home assistant I'm able to arm disarm within home assistant, everything acts nromal but doesn't seem to send command to my actual alarm.com account. Also if I arm/disarm from alarm.com, in home assistant doesn't react.

Like if nothing is communication between alarmdotcom and alarm.com website.
This was working fine yesterday. Stopped working after I did a restore of a snapshot of home assistant.

Just for the fun of it I changed my password of this integration in home assistant. And it acted normally saying wrong password and can't connect to alarm.com.

So with my real password, eveything seems to connect but not acting. WHat should I do?

Arming without code input

Good Afternoon. Awesome plugin. I've been attempting to get this plugin to allow for arming the alarm without inputting the code and am having zero luck. I am confident the code in the code section is correct.

Configuration.yaml looks like this:

alarm_control_panel:
platform: alarmdotcom
username: !secret alarmdotcom-username
password: !secret alarmdotcom-password
code: !secret alarmdotcom-code
force_bypass: "false"
no_entry_delay: "false"
silent_arming: "false"
two_factor_cookie: !secret alarmdotcom-2FA

Secrets.yaml

alarmdotcom-username: username
alarmdotcom-password: asdfghjkl
alarmdotcom-2FA: "AABBCCDD"
alarmdotcom-code: "1234"

Customize.yaml

alarm_control_panel.alarm_com:
code_arm_required: false

Any reason why this wouldn't be working? Error log just says:

2021-07-12 16:32:30 WARNING (MainThread) [custom_components.alarmdotcom.alarm_control_panel] Wrong code entered

Other errors I'm seeing that I don't think are related are:

2021-07-12 18:38:06 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Can not load state data from Alarm.com
2021-07-12 18:38:28 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Can not load state data from Alarm.com
2021-07-12 18:38:58 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract state data from Alarm.com

Unable to extract partition id from Alarm.com

Hello Folks,
I am running Home Assistant 0.110.2 (docker instance on Ubuntu Server).
I have the following in configuration.yaml:
alarm_control_panel:

  • platform: alarmdotcomajax
    name: Alarm.com
    username: !secret
    password: !secret

I get the following log on home-assistant:
2020-05-25 18:33:04 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract partition id from Alarm.com
2020-05-25 18:33:04 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcomajax platform for alarm_control_panel
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 178, in _async_setup_platform
await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
return fut.result()
File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 78, in async_setup_platform
await alarmdotcom.async_login()
File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 124, in async_login
await self._alarm.async_login()
File "/usr/local/lib/python3.7/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 149, in async_login
self._partitionid = json["data"]["relationships"]["partitions"]["data"][0][
IndexError: list index out of range

Please pardon me if this is not the right mode of raising issue with this module.
Thanks

Error After update 5 days ago.

Just installed today and recieving error stating

Logger: homeassistant.components.homeassistant
Source: components/homeassistant/init.py:113
Integration: Home Assistant Core Integration (documentation, issues)
First occurred: 1:27:15 PM (1 occurrences)
Last logged: 1:27:15 PM
Platform error alarm_control_panel.alarmdotcom - No module named 'pyalarmdotcomajax'

Suggest changing CONF_CODE to string

Hello,

I have been testing various combinations of codes and notice anything with a leading zero fails due to the zero being stripped off. If conf code is changed to string, it works for codes with leading zeros. Here is what my updated alarm_control_panel.py looks like:

#vol.Optional(CONF_CODE): cv.positive_int,
vol.Optional(CONF_CODE): cv.string,

For the configuration.yaml, if using leading zero, enclose in quotes:
code: "01234"

Thoughts?

Sensor Integration

When trying to integrate the door sensors and motion detectors I'm running into a little issue. I get the following error:

Invalid config for [alarm_control_panel.alarmdotcomajax]: [binary_sensor] is an invalid option for [alarm_control_panel.alarmdotcomajax]. Check: alarm_control_panel.alarmdotcomajax->binary_sensor. (See ?, line ?).

The motion sensor appears to show up just fine - just the door sensor that arent playing well. Any thoughts?

cannot load state data from Alarm.com

Is the issue below normal? My alarm still operates via my automations but curious if I'm missing something that needs to be configured to remove the error.

WARNING (MainThread) [homeassistant.helpers.entity] Update of alarm_control_panel.alarm_com is taking over 10 seconds
ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Can not load state data from Alarm.com

HACS integration

more of a request then an issue, can you integrate this with HACS? just for install and updating ease?

Unable to setup system ID error

Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:148
First occurred: 4:52:14 PM (1 occurrences)
Last logged: 4:52:14 PM

Unable to extract system id from Alarm.com

I am assuming that is also what is causing the error below. Issue popped up in the last 24 hours.

Source: custom_components/alarmdotcomajax/alarm_control_panel.py:133
Integration: Alarm control panel (documentation, issues)
First occurred: 4:52:14 PM (1 occurrences)
Last logged: 4:52:14 PM

Error while setting up alarmdotcomajax platform for alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 200, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 85, in async_setup_platform
    await alarmdotcom.async_login()
  File "/config/custom_components/alarmdotcomajax/alarm_control_panel.py", line 133, in async_login
    await self._alarm.async_login()
  File "/usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 143, in async_login
    self._systemid = json["data"][0]["id"]
KeyError: 'data'```

Change device_state_attributes to extra_state_attributes

Just a heads up that on 2021.12.0b0, seeing these errors:

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:543
First occurred: December 3, 2021, 9:07:53 PM (2405 occurrences)
Last logged: 7:08:25 AM

Entity alarm_control_panel.alarm_com (<class 'custom_components.alarmdotcom.alarm_control_panel.AlarmDotCom'>) implements device_state_attributes. Please report it to the custom component author.

This should provide the fix:
https://discord.com/channels/330944238910963714/427516175237382144/916624064301391892
or the actual comment:
device_state_attributes -> extra_state_attributes, is a name change... its really just that

Not connecting anymore

Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:375
First occurred: 11:09:10 PM (1 occurrences)
Last logged: 11:09:10 PM

Arming parameters: force_bypass = True, no_entry_delay = True, silent_arming = True

And this error as well.

Logger: pyalarmdotcomajax.pyalarmdotcomajax
Source: /usr/local/lib/python3.9/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py:374
First occurred: 11:09:10 PM (1 occurrences)
Last logged: 11:09:10 PM

Arm+Stay failed with HTTP code 422

Thanks

Versioning will be required in future versions of Home Assistant

Logger: homeassistant.loader
Source: loader.py:802
First occurred: 4:52:07 PM (1 occurrences)
Last logged: 4:52:07 PM

No 'version' key in the manifest file for custom integration 'alarmdotcomajax'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'alarmdotcomajax'

Unable to extract system id from Alarm.com

I restarted my system today, after not making any changes (to the best of my knowledge) to anything related to the alarmdotcom module, but it suddenly stopped working with the following errors in my log:

2020-12-08 11:58:14 ERROR (MainThread) [pyalarmdotcomajax.pyalarmdotcomajax] Unable to extract system id from Alarm.com
2020-12-08 11:58:14 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up alarmdotcom platform for alarm_control_panel
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 199, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 85, in async_setup_platform
await alarmdotcom.async_login()
File "/config/custom_components/alarmdotcom/alarm_control_panel.py", line 133, in async_login
await self._alarm.async_login()
File "/usr/local/lib/python3.8/site-packages/pyalarmdotcomajax/pyalarmdotcomajax.py", line 143, in async_login
self._systemid = json["data"][0]["id"]
KeyError: 'data'

Thoughts? It's been working without issue for about 6 months up until now, and I've manually added this repo to my HACS integration repositories to help keep it up to date.

Multiple locations / accounts not working correctly

Environment:

- Running on Ubuntu 18.04.4 LTS on a NUC / Docker
- Supervisor 209
- HA version 106.2

I have Alarm.com setup for two locations, our home and our office (work). The (now removed from HA) 'old' version used to allow this setup and treat them individually.

Configuration.yaml:

alarm_control_panel:
  - platform: alarmdotcomajax
    name: work
    username: !secret alarmdotcom_user_work
    password: !secret alarmdotcom_pass_work
  - platform: alarmdotcomajax
    name: home
    username: !secret alarmdotcom_user_home
    password: !secret alarmdotcom_pass_home

If I view my alarm_control_panel entries, you'll notice it's duplicating / combining them - instead of treating them as two separate locations:
image

Worth pointing out these logins are each unique to ONLY the location and don't have access to the other.

Two Factor Authentication

Thank you for this. It works but I had to disable two factor authentication. Can this be avoided?

Question: Is there a way to control Z-Wave devices?

I’ve set up all the doors and motion sensors in Home Assistant but now my question is, can I connect my Z-Wave door lock to Home Assistant?

I have the lock connected into my Alarm.com system.

Thanks a ton!

New to Home Assistant

Hello all! Im new to Home Assistant and I have been at ADC for 3 days now and have had to restart my raspberry pi because I deleted something I shouldn't have.

Anyways! Could I get some clarification about how to set this up more?

Where and what format does the "Description of configuration parameters" need to go?

I have everything downloaded via HACS and typed this into configuration..yaml:

Example configuration.yaml entry

alarm_control_panel:

  • platform: alarmdotcom
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    code: "01234"
    force_bypass: "true"
    no_entry_delay: "home"
    silent_arming: "false"

Gives me this notification:
This entity ('alarm_control_panel.home') does not have a unique ID, therefore its settings cannot be managed from the UI. See the documentation for more detail.

You can overwrite some attributes in the entity customizations section.

alarmdotcom entity not available in alarm panel card with 2fa off

I installed from hacs and followed setup
Logged into alarm.com, setup 2fa, found key
Setup config.yaml and restarted
Everything worked and I could add the entity in the alarm panel card
BUT
I was getting a phone notice of web login every 30 seconds

Logged into alarm.com and disabled 2fa
Restarted HA and received (1) phone notice of web login
Entity no longer available in alarm panel card

Question: How to create certain sensors?

FIrst, the integration is fantastic! Thank you for the amazing work! I saw the examples for creating sensors for doors and motion, and from the examples I figured out how to create sensors for windows and glass break, smoke, etc.. But I'm not sure how to create sensors for the following when the alarm is actually triggered. Meaning, if someone breaks in and the alarm sounds, how do I detect that?

Below is my status. Would you mind helping me out? And perhaps adding these examples to the readme might be helpful to others. Thank you so much!

sensor_status: System OK, 126D57 - 1 is Closed, 126D57 - 2 is Closed, 126D57 - 3 is Closed, 126D57 - 4 is Closed, 126D57 - 5 is Closed, 126D57 - 6 is Closed, 126D57 - 7 is Closed, 126D57 - 8 is Closed, Back Door is Closed, Bedroom Window is Closed, Downstairs CO is Closed, Downstairs Heat is Not Reset, Downstairs Smoke is Not Reset, Front Door is Closed, Glass Break is Closed, Kitchen Door is Closed, Kitchen Window is Closed, LIV KIT Window is Closed, Master Window is Closed, Office Window is Closed, Panel Camera is Idle, System is Closed, Upstairs CO is Closed, Upstairs Heat is Not Reset, Upstairs Smoke is Not Reset, Upstairs Window 1 is Closed, Upstairs Window 2 is Closed

Possible to clean up alarm states

Love this custom component. Works awesome. Any chance the state of the alarm could be cleaned up?
disarmed to Disarmed
armed_home to Armed Home
armed_away to Armed Away.

I tried to change this with a template sensor but then lose the ability to arm/disarm from the UI without some sort of yonky tap/hold action.

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.