Core: Alarm.com Not Working On 0.64

Created on 26 Feb 2018  路  19Comments  路  Source: home-assistant/core

Make sure you are running the latest version of Home Assistant before reporting an issue.

You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:

Home Assistant release (hass --version):
0.64
0.63.3 after downgrade no longer works
On HASSIO Suppervisor 0.94

Python release (python3 --version):
3.6.3

Component/platform:
alarm.com

Description of problem:

Error initializing component 
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pyalarmdotcom/pyalarmdotcom.py", line 164, in async_login
    self.state = tree.select(self.ALARM_STATE)[0].get_text()
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py", line 84, in async_setup
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)
  File "/usr/lib/python3.6/asyncio/tasks.py", line 358, in wait_for
    return fut.result()
  File "/usr/lib/python3.6/asyncio/futures.py", line 245, in result
    raise self._exception
  File "/usr/lib/python3.6/asyncio/tasks.py", line 180, in _step
    result = coro.send(None)
  File "/usr/lib/python3.6/site-packages/homeassistant/components/alarm_control_panel/alarmdotcom.py", line 43, in async_setup_platform
    yield from alarmdotcom.async_login()
  File "/usr/lib/python3.6/site-packages/homeassistant/components/alarm_control_panel/alarmdotcom.py", line 67, in async_login
    yield from self._alarm.async_login()
  File "/usr/lib/python3.6/site-packages/pyalarmdotcom/pyalarmdotcom.py", line 170, in async_login
    '#{}'.format(self.ERROR_CONTROL))[0].attrs.get('value')

Expected:
It starts and authenticates.

Problem-relevant configuration.yaml entries and steps to reproduce:




    1. 2.
  1. 3.

Traceback (if applicable):


Additional info:
This began after my upgrade to 0.64, I attempted to downgrade to 0.63.3 and it still occurs.
I'm running on a hassio environment .
I verified that I can login to alarm.com/pda with the credentials.

Most helpful comment

I may have a bit of a solution that could help.
When you go to Alarm.com/pda/ it redirects to https://www.alarm.com/pda/[SESSION_ID]/default.aspx
Once you log in it takes you to the
https://www.alarm.com/web/system/home
If you replace the url with the following
https://www.alarm.com/pda/[SESSION_ID]/main.aspx
Where the Sesion id is the one that was in the query on the original redirect.
You are taken to the old PDA screen where there is a state displayed and buttons to disarm and arm the alarm, without needing to scrape the new rich page...
The session was validated and authenticated when taken to web/system/home

All 19 comments

I'm getting the same thing and I'm on 0.63. As an added note the WrapAPI's for HomeBridge have also stopped working. This makes me think something has changed on the Alarm.com side.

2018-02-26 11:37:57 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setti
Traceback (most recent call last):                                                                     
  File "/srv/homeassistant/lib/python3.5/site-packages/pyalarmdotcom/pyalarmdotcom.py", line 164, in as
    self.state = tree.select(self.ALARM_STATE)[0].get_text()                                           
IndexError: list index out of range                                                                    

During handling of the above exception, another exception occurred:                                                                                                                                                

Traceback (most recent call last):                                                                                                                                                                                 
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 84, in async_setup                                                                                          
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)                                                                                                                                                                           
  File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for                                                                                                                                                
    return fut.result()                                                                                                                                                                                            
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result                                                                                                                                                
    raise self._exception                                                                                                                                                                                          
  File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step                                                                                                                                                   
    result = coro.send(None)                                                                                                                                                                                       
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/alarm_control_panel/alarmdotcom.py", line 43, in async_setup_platform                                                              
    yield from alarmdotcom.async_login()                                                                                                                                                                           
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/alarm_control_panel/alarmdotcom.py", line 67, in async_login                                                                       
    yield from self._alarm.async_login()                                                                                                                                                                           
  File "/srv/homeassistant/lib/python3.5/site-packages/pyalarmdotcom/pyalarmdotcom.py", line 170, in async_login                                                                                                   
    '#{}'.format(self.ERROR_CONTROL))[0].attrs.get('value')                                                                                                                                                        
IndexError: list index out of range                                                                                                                                                                                
2018-02-26 11:37:57 INFO (MainThread) [homeassistant.core] Bus:Handling <Event system_log_event[L]: timestamp=1519663077.9181125, message=Error while setting up platform alarmdotcom, level=ERROR, source=componen
ts/alarm_control_panel/alarmdotcom.py, exception=Traceback (most recent call last):                                                                                                                                
  File "/srv/homeassistant/lib/python3.5/site-packages/pyalarmdotcom/pyalarmdotcom.py", line 164, in async_login                                                                                                   
    self.state = tree.select(self.ALARM_STATE)[0].get_text()                                                                                                                                                       
IndexError: list index out of range                                                                                                                                                                                

During handling of the above exception, another exception occurred:                                                                                                                                                

Traceback (most recent call last):                                                                                                                                                                                 
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 84, in async_setup                                                                                          
    SLOW_SETUP_MAX_WAIT, loop=hass.loop)                                                                                                                                                                           
  File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for                                                                                                                                                
    return fut.result()                                                                                                                                                                                            
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result                                                                                                                                                
    raise self._exception                                                                                                                                                                                          
  File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step                                                                                                                                                   
    result = coro.send(None)                                                                                                                                                                                       
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/alarm_control_panel/alarmdotcom.py", line 43, in async_setup_platform                                                              
    yield from alarmdotcom.async_login()                                                                                                                                                                           
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/alarm_control_panel/alarmdotcom.py", line 67, in async_login                                                                       
    yield from self._alarm.async_login()                                                                                                                                                                           
  File "/srv/homeassistant/lib/python3.5/site-packages/pyalarmdotcom/pyalarmdotcom.py", line 170, in async_login                                                                                                   
    '#{}'.format(self.ERROR_CONTROL))[0].attrs.get('value')                                                                                                                                                        
IndexError: list index out of range

Definitely appears to be changes from Alarm.com's side that caused this.
The Smartthings integration with alarm.com also appears to have broken today
https://github.com/schwark/smartthings-alarmcom/issues/11

Same issues here.
Upgrade HassIO version 0.64 broke alarmdotcom and Homebridge

It stopped working on my 0.63. I don't think it has anything to do with the upgrade to 0.64. It looks like Alarm.com changed something.

Getting the same thing here. Hopefully someone can fix this soon! This is a huge part of my automations.

ditto here. I think mine broke with .63

This similar thread on the same issue via the Homebridge plugin for Alarm.com seems to point to web site changes. Posting in case it helps who ever may be working on this issue for the Home Assistant component.

https://github.com/bryan-bartow/homebridge-alarm.com/issues/67

they seem to have it almost fixed in the homebridge-alarm.com plugin thread posted above.

@adamomg yes, but keep in mind while their approach may also work for home assistant it will not be automatic. It will only work within homebridge.

Unfortunatly I am having this same issue. Ironically I did the same upgrade to 64 then revert but I agree this doesn't seem to have anything to do with the upgrade. Also to note I have a smartthings hub that has alarm dot com integration that no longer works either.

Schwark has fixed the smartthings hub integration so hopefully a fix for Hass.io is not far behind.

Is this being worked on? Some how I think homebridge will do the same thing. Just not sure if it can report results to Home Assistant.

As an FYI somebody needs to report an issue (or patch) to the upstream library that the HASS uses for this component -- pyalarmdotcom. It doesn't use a wrapapi interface like the linked Homebridge issue

https://github.com/Xorso/pyalarmdotcom

Xorso responded that he is aware of the situation but extremely busy and may not get to it in a timely manner. I am willing to help in anyway I can but a programmer I am not.

Yah I looked at the code.... it was using alarm.com/pda -- which according to the other posts elsewhere was a lightweight interface. /pda has gone away and now redirects to their more robust UI. Def looks like real work to fix.

Is anybody good at beautifulsoup and screen scraping?

I may have a bit of a solution that could help.
When you go to Alarm.com/pda/ it redirects to https://www.alarm.com/pda/[SESSION_ID]/default.aspx
Once you log in it takes you to the
https://www.alarm.com/web/system/home
If you replace the url with the following
https://www.alarm.com/pda/[SESSION_ID]/main.aspx
Where the Sesion id is the one that was in the query on the original redirect.
You are taken to the old PDA screen where there is a state displayed and buttons to disarm and arm the alarm, without needing to scrape the new rich page...
The session was validated and authenticated when taken to web/system/home

You should probably post that here

https://github.com/Xorso/pyalarmdotcom/issues/6

Sorry for the delay guys. I have finally pushed a new version to Pypi that should solve our troubles. If someone wants to create a PR for it in home-assistant to bump the version we should be back in business.

PR submitted, thanks @Xorso !

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sibbl picture sibbl  路  3Comments

arangates picture arangates  路  3Comments

Elmardus picture Elmardus  路  3Comments

Konstigt picture Konstigt  路  3Comments

ofuangka picture ofuangka  路  3Comments