ADT Pulse integration

My alarm control panel will NOT show up in HASS. I have no clue why. My sensors are also not polling/scanning often enough for my preference, my goal is to have alexa announce when the door opens/closes.

I was trying to get this set up, and I have been trying the MQTT variant as well as the HACS variant.

For the MQTT version, I guess I need a n00b step by step on how to do this. I added the repository to Hass.io section, but do I need to download the repository and put it somewhere? How exactly do I configure the pulse_login (is this done in the configuration.yaml, or is it inside of the files that get downloaded and put somewhere?)

For the HACS variant, I have this installed, and I added this to my configuraiton.yaml:

adtpulse:
 username: !secret pulse_username
 password: !secret pulse_pass

Upon reboot after install, I get the following errors:

2020-01-16 10:32:24 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2020-01-16 10:32:24 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for adtpulse which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2020-01-16 10:32:32 WARNING (SyncWorker_11) [custom_components.adtpulse.binary_sensor] Ignoring unsupported ADT Pulse sensor type ['sensor', 'fire']
2020-01-16 10:32:32 WARNING (SyncWorker_11) [custom_components.adtpulse.binary_sensor] Ignoring unsupported ADT Pulse sensor type ['sensor', 'glass']
2020-01-16 10:32:32 WARNING (SyncWorker_11) [custom_components.adtpulse.binary_sensor] Ignoring unsupported ADT Pulse sensor type ['camera', 'ip']
2020-01-16 10:32:33 ERROR (MainThread) [homeassistant.components.alarm_control_panel] Error while setting up platform adtpulse
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 158, 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 "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/adtpulse/alarm_control_panel.py", line 25, in setup_platform
    alarm_devices.append( ADTPulseAlarm(hass, adt_service, site) )
TypeError: Can't instantiate abstract class ADTPulseAlarm with abstract methods supported_features

When I open a door, the binary sensors do change state, but they are slow to respond (typically 20-60 seconds) and I am curious if this is the normal response time?

I understand that the glass, fire and camera may not be supported, but it would be nice if the control panel portion worked. Any idea on what can be done here?

UPDATE:
Apparently I am an idiot, I figured out how to install the MQTT version after adding the repository (some idiot didnā€™t realize it would populate in the list below after adding the repository to Hass.io :man_facepalming:)

I got the MQTT version up and running, door sensors working and arm/disarm working as well, so I am good!

Iā€™m having the same error. Followed the steps from Ryanā€™s Github. Installed via HACS. Anyone hear of a fix for this yet?

Thanks,

I have the same issue. I cannot get the alarm control panel to work after HACS install. I had it working via MQTT but since the change over to HACS. Alarm panel is not even an option.

So I have attempted to add this. I keep getting the ole "** The following integrations and platforms could not be set up: adtpulse

Please check your config.**

I have double checked the custom components, it is there. Indents are correct? Any ideas?

So I got it narrowed down to this. I assume this is just a broken component at this point. Any ideas?

  File "/config/custom_components/adtpulse/__init__.py", line 63, in setup
    service.set_api_host(host)
AttributeError: 'PyADTPulse' object has no attribute 'set_api_host'

It looks like your pyadtpulse library is not the latest version for some reason. The last commit added set_api_host. A commit to change the required version of pyadtpulse >=0.1.0 for hass-adtpulse was done around the same time.

Sorry, I donā€™t run HACS and Iā€™m not familiar with how updates are done. My only other suggestion is to open an issue on the github repo. Ryanā€™s status is set to ā€œon vacationā€, though.

I am not installing this via HACS. I am simply downloading the files and adding them to the custom_components/adtpulse folder. Then adding adtpulse: and the Username / Password there.

checked my version of pyadtpulse it is 0.1.0.

bash-5.0# pip3 install pyadtpulse
 Requirement already satisfied: pyadtpulse in /usr/local/lib/python3.7/site-packages (0.1.0)

Lots of people are getting this same error related to homeassistant.components.alarm_control_panel. I had a ticket open for this on Github and the author summarily closed it without really addressing the problem. Does anyone have a solution at all?

Ryan,
Long time! Things are really different now.
That said, I just got it up and running and everything seems to be working. I have a couple of minor issues, Iā€™m hoping you have quick answers:

  1. It did not register my garage door opener. The MQTT version does, but this one didnā€™t create a sensor for it
  2. All of the binary_sensors were created as windows, that includes the two smoke detectors

I just changed the icons for the binary_sensors, but am bummed that the Garage Door isnā€™t showing up.

Any thoughts?

Can you turn on debugging for the component, the garage door opener SHOULD be possible, but I donā€™t know what device class ADT sets that as. However, the logs should tell usā€¦I just uploaded a new version to master that has more logging at the INFO level. Can you enable that log level and look at what it might be saying about the sensors that donā€™t seem to be working right for you.

For #2, the supported device classes are, same issue I think, the logs will tell us:

ADT_DEVICE_CLASS_TAG_MAP = {                                                                                                                                                                                              
    'doorWindow': 'door',                                                                                                                                                                                                 
    'motion':     'motion',                                                                                                                                                                                               
    'smoke':      'smoke'                                                                                                                                                                                                 
}                               

Set this in your YAML config:

logger:
  logs:
     custom_components.adtpulse: debug
     custom_components.adtpulse.binary_sensor: debug

Ryan

Hey, I am seeing some pretty consistent log warnings from pyadtpulse (SyncWorker_10) [pyadtpulse] Sync check didn't match expected format, forcing re-authentication and notifying of updates they I get it about every 10-25 minutes. Have not noticed any issues arming/disarming and sensor states look good, just seeing a bunch in the logs. Anyone else have this issue or seen it before? I saw someone a few months ago post about it but I didnā€™t see any real responses.

Hi all. Would this work for ADT customer based in Australia? We use ADT but the web portal service we are using here is different (https://www.alarm.com/web/system/home).

Alarm.com is a different monitoring service than ADTā€™s monitoring service even though it might be using ADT-branded equipment. I could not find an existing Home Assistant integration for alarm.com, but it is supported by Google Assistant.

1 Like

I canā€™t get past the log in. I created a new user for ADT Pulse, Iā€™ve tested it in the web page and it works but when I start the service the log indicates Error: Connection refused: Not authorized.

Any ideas what Iā€™m doing wrong?

Iā€™m getting the exact same thing. did you ever figure out how to get it to work?

Robert,

It will probably be more efficient help you troubleshoot the problem if you will open an issue on Github with some more details on your setup, excerpt from logs, and configuration (scrubbed of any sensitive information).

ADT made some significant changes to their portal in the past couple of months so please make sure you are using the latest version.

Okay, here are the relevant ā€˜adtpulseā€™ lines from my log:

2020-06-27 16:20:21 WARNING (MainThread) [homeassistant.loader] You are using a 
custom integration for adtpulse which has not been tested by Home Assistant. Thi
s component might cause stability problems, be sure to disable it if you experie
nce issues with Home Assistant.
2020-06-27 16:20:24 INFO (MainThread) [homeassistant.setup] Setting up adtpulse
2020-06-27 16:20:29 WARNING (SyncWorker_1) [pyadtpulse.site] Unknown sensor type
 for 'Downstairs Perimeter', defaulting to doorWindow
2020-06-27 16:20:29 WARNING (SyncWorker_1) [pyadtpulse.site] Unknown sensor type
 for 'Upper Bedroom Bathroom', defaulting to doorWindow
2020-06-27 16:20:29 DEBUG (SyncWorker_1) [custom_components.adtpulse] Using ADT 
Pulse API host portal.adtpulse.com
2020-06-27 16:20:29 INFO (MainThread) [homeassistant.setup] Setup of domain adtp
ulse took 4.6 seconds.
2020-06-27 16:20:29 INFO (MainThread) [homeassistant.components.binary_sensor] S
etting up binary_sensor.adtpulse
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Dining Living Window device class window from ADT Pulse service c
onfigured tags ['sensor', 'doorWindow']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'window' sensor 'Dining Living Window'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Downstairs Perimeter device class door from ADT Pulse service con
figured tags ['sensor', 'doorWindow']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'door' sensor 'Downstairs Perimeter'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Family Motion Detector device class motion from ADT Pulse service
 configured tags ['sensor', 'motion']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'motion' sensor 'Family Motion Detector'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Front Garage Door device class door from ADT Pulse service config
ured tags ['sensor', 'doorWindow']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'door' sensor 'Front Garage Door'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Kitchen Smoke device class smoke from ADT Pulse service configure
d tags ['sensor', 'smoke']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'smoke' sensor 'Kitchen Smoke'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Master Bedroom Window device class window from ADT Pulse service 
configured tags ['sensor', 'doorWindow']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'window' sensor 'Master Bedroom Window'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Up Hall Motion device class motion from ADT Pulse service configu
red tags ['sensor', 'motion']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'motion' sensor 'Up Hall Motion'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Up Hall Smoke device class smoke from ADT Pulse service configure
d tags ['sensor', 'smoke']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'smoke' sensor 'Up Hall Smoke'
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Determined Upper Bedroom Bathroom device class door from ADT Pulse service c
onfigured tags ['sensor', 'doorWindow']
2020-06-27 16:20:29 INFO (SyncWorker_15) [custom_components.adtpulse.binary_sens
or] Created ADT Pulse 'door' sensor 'Upper Bedroom Bathroom'
2020-06-27 16:20:29 INFO (MainThread) [homeassistant.components.alarm_control_pa
nel] Setting up alarm_control_panel.adtpulse
2020-06-27 16:20:42 DEBUG (SyncWorker_4) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:20:43 WARNING (SyncWorker_4) [pyadtpulse.site] Unknown sensor type
 for 'Downstairs Perimeter', defaulting to doorWindow
2020-06-27 16:20:43 WARNING (SyncWorker_4) [pyadtpulse.site] Unknown sensor type
 for 'Upper Bedroom Bathroom', defaulting to doorWindow
2020-06-27 16:20:47 DEBUG (SyncWorker_24) [custom_components.adtpulse] Checking 
ADT Pulse cloud service for updates
2020-06-27 16:20:48 WARNING (SyncWorker_24) [pyadtpulse.site] Unknown sensor typ
e for 'Downstairs Perimeter', defaulting to doorWindow
2020-06-27 16:20:48 WARNING (SyncWorker_24) [pyadtpulse.site] Unknown sensor typ
e for 'Upper Bedroom Bathroom', defaulting to doorWindow
2020-06-27 16:20:53 DEBUG (SyncWorker_15) [custom_components.adtpulse] Checking 
ADT Pulse cloud service for updates
2020-06-27 16:20:58 DEBUG (SyncWorker_19) [custom_components.adtpulse] Checking 
ADT Pulse cloud service for updates
2020-06-27 16:21:04 DEBUG (SyncWorker_5) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:21:10 DEBUG (SyncWorker_9) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:21:16 DEBUG (SyncWorker_25) [custom_components.adtpulse] Checking 
ADT Pulse cloud service for updates
2020-06-27 16:21:22 DEBUG (SyncWorker_0) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:21:27 DEBUG (SyncWorker_4) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:21:32 DEBUG (SyncWorker_8) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:21:38 DEBUG (SyncWorker_30) [custom_components.adtpulse] Checking 
ADT Pulse cloud service for updates
2020-06-27 16:21:44 DEBUG (SyncWorker_28) [custom_components.adtpulse] Checking 
ADT Pulse cloud service for updates
2020-06-27 16:21:49 DEBUG (SyncWorker_9) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates
2020-06-27 16:21:55 DEBUG (SyncWorker_4) [custom_components.adtpulse] Checking A
DT Pulse cloud service for updates

My system within the ADT Pulse Portal / Sensors has:

  • Dining Living Window
  • Downstairs Permimeter
  • Front Garage Door
  • Master Bedroom Bathroom
  • Upper Bedroom Bathroom
  • Up Hall Motion
  • Family Motion Detector
  • Up Hall Smoke
  • Kitchen Smoke

However, I also have 2 Cameras, a Garage Door Opener, and a Garage Door Sensor that are all connected over wireless into the ADT Pulse system.

The Garage Door appears under ā€œOther Sensorsā€ but not in the actual ā€œSensorsā€ area.

Thoughts?

I have the integration working and there is an option in the alarm card for a custom bypass what are the settings for this? I set the alarm at night starting with stay and then the no entry delay setting if anyone is still downstairs but once everyone comes up stairs we set it for away with no entry delay. Is it possible to achieve this with the custom bypass button or if there is another way to do no delay that would be great.

Hey guys, so I currently have the add on working but is there a way to set it where it will bypass the open windows then arm like the Pulse app because if one windows is open the add on is useless.