ADT Pulse integration


Question - how do I query the state of home/alarm/state?

I’m using node-red. I’m new to mqtt, not node-red, but I don’t know how to or what the best way is to trigger the output of “home/alarm/state” I have the mqtt nodes in and out setup, with the debug node, but what string do I use?


Thanks for sharing, but I can’t get this to work.

The switchs show up, but trying to flip them on does nothing and it just flips back off.

Any ideas?


Hi folks,
Version is out. @digitalcraig contributed an optional config field for the folks who like to use MQTT urls directly. mqtt_host still works. Also the added a
Give it a spin let us know if there are any issues.



I don’t know how I missed this thread before, and didn’t see the MQTT version. I have been using my own ADT Pulse sensor integration for Home Assistant and just posted it, in case someone wants to use it. I’ve only ever used it within my environment so your mileage may vary.


Is there any way I could use this as a docker container? I’m in the process of moving my hass over and this is the one add-on that keeps me on since it is the backbone of most of my automations. Thanks for all of your hard work on this.


Yes, I migrated from hassio to Docker myself. Normally you would have a repo on Docker Hub that would build the images from the github repo, but the hassio buid system allows for local builds so it’s not required.

To do your own local build:

  • Clone a copy of the github repository (
  • Use to build a local image of adt-pulse-mqtt
  • Create the container (I use docker compose so everything comes up in the right order)

If you don’t use, run this docker command from the directory containing the Dockerfile (change amd64 to your architecture is different) :

docker build --build-arg BUILD_FROM=“homeassistant/amd64-base:latest” -t local/adt-pulse-mqtt .

The relevant part of my docker-compose.yaml:

container_name: pulse-adt-mqtt
image: local/pulse-adt-mqtt
- /share/Container/pulse-adt-mqtt-config:/data
- /share/Container/mosquitto-ssl:/ssl

The downside is you have to pull down the git updates, remove the container, and repeat the build whenever there is an update. If there is enough interest, getting an automated build on Docker Hub set up shouldn’t be too difficult.


I’ll give this a try a little later, thanks!


I have this addon installed and it seems to be working. Thank you so much for this!!

I do have a question though. I am trying to get motion detection from the camera but the output from the camera events isn’t very clear to understand. Specifically they look like pretty much the exact same message for camera detect motion and camera stop motion. In the trace below the first time the camera message comes up it is detecting motion. The second time it comes up the motion stopped. The website interprets this and shows the correct event information but I am not sure how to get this into Hass. Any help?

adt/zone/Camera/state {“id”:“camera-25”,“devIndex”:“FAC9E9”,“name”:“Camera”,“tags”:“camera,ip”,“status”:“devStatOKcamera”,“statusTxt”:“Camera\nLast Activity: Today 4:48 PM”,“activityTs”:1538340497271}
adt/zone/LaundryDoor/state {“id”:“sensor-12”,“devIndex”:“E1VER1”,“name”:“LaundryDoor”,“tags”:“sensor,doorWindow”,“status”:“devStatOK”,“statusTxt”:“LaundryDoor - Closed\nLast Activity: Today 4:48 PM”,“activityTs”:1538340523303}
adt/zone/Camera/state {“id”:“camera-25”,“devIndex”:“FAC9E9”,“name”:“Camera”,“tags”:“camera,ip”,“status”:“devStatOKcamera”,“statusTxt”:“Camera\nLast Activity: Today 4:52 PM”,“activityTs”:1538340735798}


I’ve set up an automated build on Docker Hub (digitalcraig/adt-pulse-mqtt/) that occurs whenever commits are made to my github repository. It was relatively easy to do once I set a default base image in the Dockerfile. Just needs to be test to make sure that doesn’t break the Hassio add-on.


For any device/zone, you would need to determine the status messages for when the binary sensor is “on” and “off”. I have a camera as well and I haven’t been able to determine the correct payload either. I think what you’re saying is that there was motion and it did publish a message, but the status was the same?

Here is an example of the configuration that I use:

  • platform: mqtt
    name: “Camera Motion”
    state_topic: “adt/zone/Camera/state”
    payload_on: “devStatOpen” # Use devStatTamper for shock devices
    payload_off: “devStatOKCamera” #
    device_class: motion
    retain: true

Has anyone seen anything different?


I don’t think that will work since the messages I see for both motion and motion stop both have the “status” set to “devStatOKcamera”.


Thanks for this, so I’m going to admit that I’m totally clueless when it comes to the finer points of docker. What type of commands would I need to do to pull this build and make sure it has the proper settings besides giving it a name, etc…


Thanks for this, so I’m going to admit that I’m totally clueless when it comes to the finer points of docker. What type of commands would I need to do to pull this build and make sure it has the proper settings besides giving it a name, etc…

What I’ve found to be the work best is to create a docker-compose.yml file which defines all of the containers and their dependencies. Then you run “docker-compose up -d” in the directory with docker-compose.yml to bring up all of the services. If the containers don’t exist, it will create them. When I need to upgrade to a new version of Home Assistant, I change image version number, remove the existing containers, and re-run docker-compose.

Here is my docker-compose.yml:

version: '3'
      container_name: influxdb
      image: influxdb
        - /share/Container/influxdb-data:/var/lib/influxdb
       - "8086:8086"
      container_name: mqtt
      image: eclipse-mosquitto:latest
       - /share/Container/mosquitto-config:/mosquitto/config
       - /share/Container/mosquitto-ssl:/ssl
       - "8883:8883"
       - "1883:1883"
     container_name: pulse-adt-mqtt
     image: digitalcraig/adt-pulse-mqtt:latest
     - /share/Container/adt-pulse-mqtt-config:/data
     - /share/Container/mosquitto-ssl:/ssl
     container_name: home-assistant
     image: homeassistant/home-assistant:0.78.3
       - /share/Container/hassio-config:/config
       - /share/Container/mosquitto-ssl:/ssl
       - /etc/localtime:/etc/localtime:ro
    - mqtt
    - influxdb
  restart: always
    - "8123:8123"
     container_name: node-red
     image: nodered/node-red-docker:0.19.4-v8
       - homeassistant
       - /share/Container/nodered-data:/data
      - "1880:1880"
      - "1820:1820"
     container_name: nginx-certbot
     image: really/nginx-certbot
       - homeassistant
        - /share/Container/nginx-config:/etc/nginx/conf.d:rw
        - /share/Container/nginx-ssl:/etc/letsencrypt
        - /share/Container/nginx-html:/var/www/html
        - "81:80"
        - "443:443"


I’ve installed this addon, and am getting this in the logs:

018-10-18 11:21:32 Pulse: Authentication bad response error:{“code”:“EAI_AGAIN”,“errno”:“EAI_AGAIN”,“syscall”:“getaddrinfo”,“hostname”:“”,“host”:“”,“port”:443}

Any suggestions? version


Can your HA installation access to ?
This error tells you’re having internet connectivity issues.


Yes, I can ping it, but get a SSL error when i try and Curl it


For further troubleshooting, curl works when i force sslv3


Very interesting. It maybe specific to curl and ssl version support.
You might want to test it out in node.js if you can access to page.


not sure how to do that on Hassio.


I am a little lost on how to run node.js from hassio