Smartthings Community I’ve seen tons of people talking about integrating ADT into Smartthings. I’ve seen several threads where users were setting up computers to route the data into smartthings. I personally thought this approach was expensive and required a lot of hardware for such a small task. I went down the path of building an Arduino card integration. I’ve been promising notes / pictures for weeks but still haven’t gotten the chance. However, I did want to post some high level steps on how I performed the task with the plan of posting more details later on.
AD2pi module [http://www.alarmdecoder.com/catalog/product_info.php/products_id/33]. This Raspberry pi card is programmed to interface with an ADT system (specs can be found on the website) through an inbound / outbound serial connection.
Arduino Mega card. Mega is required because both the AD2pi and Smartthings shield require serial ports and the UNO only has one serial port.
Smartthings shield to interface between the arduino card and the smartthings app.
wire (to connect the AD2pi card to both the Arduino card and your ADT panel).
GitHub Gist Link <-- A total of 3 files (Arduino Code, ST App, ST Device Type)
Call ADT and ask them to ignore all alarms for the next X hours.
This will ensure you do not accidentally call the police when you
(and you will) set off the alarm.
Kindly ask your Wife (or Husband) to go shopping. You’ll thank
yourself when you don’t have to deal with the complaints as the
sirens go off when you trigger the alarm (and you will).
Connect the AD2pi to the ADP panel. Please read and
understand your ADT panel wiring. Also please follow all safety
steps as this is a live circuit. I did wire my system hot (so it
can be done) but realize what risks you are taking.
HINT 1: All four connections do need to be wired (learned that after
troubleshooting for awhile) even through 2 connections are related
to power and not communication and the AD2pi will get power from
your arduino card. I believe this is due to ensuring shared ground
for proper circuits.
HINT 2: You may need to configure a new panel address within your
ADT system. This should match the address configured as part of
your AD2pi There are tons of instructions online on how to do this.
You can also find the “installers” code on numerous websites.
Connect the AD2pi serial ports to your Arduino card (as
configured in your Arduino program). Also connect the power (5v /
Grd) from the AD2pi card to the appropriate pins on the Arduino
Program Arduino card to be a straight pass through of
information (in both directions) between two serial ports.
HINT: Both Smartthings and Arduino have great tutorials on how to
get started in programming an Arduino card. I had never done any of
this before starting this project and was able to figure it out
after a few hours of playing around.
Build out a customer device type that properly handles all
of the alarms based on zones. ADT has tons of manuals explaining
all the response codes you get from a panel. I found this extremely
helpful in understanding the base faults. To figure out what zones
applied to what triggers I simply would fire an alarm (i.e. open a
door, run in front of a motion sensor, etc.) see what alarm code
would show on smartthings and build out that tile (device). Once
again I’d never programmed in Groovy before this project. I read
through forums, reviewed the tons of device type examples, etc. to
figure out how Smartthings operated and how to modify the code for
what I was trying to accomplish.
Program custom buttons / commands for special things. I
programmed the ability to turn on / off the chime on my alarm (in
case one person was coming home late). I don’t have much use for
it, but I could see programming quick buttons for disarming certain
zones, manually triggering alarms / sirens, etc.
I configured fake / “Ghost” device types for all my doors,
motion sensors, etc.
I wrote a custom app that reviewed the individual sensors
within the “ADT” Device type and triggered mirroring states on the
ghost device types. This allows me to use trigger modes / apps as
if each individual door was an individual sensor within the