##Integrate Your Honeywell or Ademco Alarm Panel Into Your SmartThings Physical Graph##

ADT / Honeywell / Ademco / Vista / Alarm / SmartThings / Alarm Panel / Home Alarm

###A project by Stan Dotson and Michael Ritchie###

Wish you could use your existing home alarm sensors with SmartThings? Do you hate the hassle arming your panel and having to rush to disarm? Wish you could control your alarm panel on our smartphone but dont want to pay the higher monthly service bill? Do you want to install another keypad and don’t want to deal with your alarm company? Do you have an alarm panel and never use it?

This is a relatively simple project that effectively integrates your Honeywell or Ademco alarm panel with SmartThings. These panels are typically installed by ADT or other alarm companies. Its your choice whether you still want to continue or cancel your ADT monitoring service. This project works either way.

After installing this project, control of your alarm panel becomes intuitive and automagic!

  • Arm and disarm your system directly from your mobile device
  • Monitor the status of your home alarm zones (up to 39 zones)
  • Activate a PANIC alarm from your smart phone or other integrated device
  • Use Goodbye and Welcome Home modes to arm your panel after everyone has left the house, and have it disarm when someone arrives.
  • Use automation to turn on your alarm when you go to bed and turn off when you wake up
    Control your alarm panel via your smartphone, Alexa or a MiniMote or activate from other sensors or devices.
  • Use your smartphone, Alexa or Minimote to send a panic alarm when there is danger.
    Integrate all your existing home alarm sensors as virtual sensors in SmartThings. You can then link them to other automations
  • Turns your entire alarm panel into a virtual sensor that can be monitored by SmartThings Home Monitor. This provides an alternative to use Scout as you home monitoring solution instead of your existing service.
  • Immediately get alerts if alarm is triggered via notifications and text messages. Even see them on your Apple watch!
  • There are many more integration ideas posted on our project forum.
  • This project is supported by a community that has been active for over 2 years
  • Simple to construct using an ArduinoMega, ThingShield and AD2Pi logic board

###Home Screen###

###View Active Zones###

###Check Your Recent History###

###Preferences Page To Enter Your Alarm Code And Customize Your Experience###


All of the code for the project and step by step instructions can be found on github. We have also included easy to follow detailed instructions to complete the project. This is one of our most used SmartThings integrations. Once its been set up, managing your home security is effortless.


  • Lots of good ideas from SmartThings @craig, @obycode and @Vassilis
  • Thanks to @ogiewon and his son for contributing the ST_Anything version of the SmartThings library that provides full support for the Arduino Mega. You guys rock!
  • Thanks to Sean Matthews from AlarmDecoder for jumping in to help out with the AD2Pi integration and @kevin_nutech for contributing support to the community.
  • Thanks for Community members for sharing their questions and suggestions. Your participation and feedback made the project stronger!!!

I’m just curious. I had a project very similar did you start from scratch or did you by chance take a look at my project? I don’t care either way, I’m curious to understand what areas you improved upon compared to what I already have.

Hi @craig,

First, thanks for contributing your project to the community and depositing your code in github. When I started the project, I was actually confused about my alarm system and had started down the DSC Alarm integration path using code form @vassilis using some improvements made by @obycode. When I realized my alarm panel was a Honeywell system, your contribution was helpful for me to change directions. If I remember right, your implementation has has a bunch of extra code for a debugging mode, that was probably useful for you to parse out the AD2Pi messages, however that made it difficult to start from your code base. I also tried to continue with code from @obycode however the differences between the IT-100 and AD2PI code made that challenging as well. In the end, I have a bit of a mashup. The logic for reading the AD2Pi buffer and the ArduinoMega SmartThing Shield library are from @vassalis. I also used the device-type architecture similar to @vassilis. I leveraged some of your hard work building a parser to translate the messages from the AD2Pi into usable events and adopted your syntax for sending commands from the device type to the Arduino. I also thought the way you created a 3-tile wide message bar was cool and incorporated that feature as well.

Here is my assessment of where the project has evolved vs your contribution :

  1. A more minimilast use of the Arduino, although I could still cut out
  2. Addressed an excessive redundant logging issue by having
    the Arduino only pass on messages that are new and also at 10 min intervals
  3. Added support for up to 36 zones
  4. Added the ability to trigger the alarm from the device type, which
    will be useful to enable other SmartThings to trigger an alarm
  5. Added a PANIC tile (triggers alarm after 3X presses)
  6. Additional message support to trouble shoot
  7. Moved password to the device type preference vs hard coded. Makes it easier to change the password without having to go back and reprogram the Arduino
  8. Added the ability to configure the AD2Pi address from the device type
  9. Improved the readme instructions, although yours were pretty good.

I definitely appreciated your contributions as well as @vassilis and @obycode and call them out in the ReadMe file, my release files and in the header of my code files and have now added a credit section to this project posting.

This is awesome!!! I’ll have to take a look when I get some time and see if it’s worth retiring mine and looking at the latest and greatest!

I’m curious if you solved an issue I had.

I created “virtual” devices for all the zones in my system so I can use them in apps. So I have several “virtual” contacts and one motion. The contacts work great but the motion seems to constantly have issues. any chance you figured out a way around this?

Hey Craig, What kind of issues do you see with your motions? Mine have always worked well.

can you add links to the exact things to buy besides the smartthings shield. I am a complete novice at this but totally want this ASAP

I’ll post my code later but it seems the “activate” motion on my virtual detector works great. I can see the “inactive” command coming in from the App but it doesn’t actually reset the virtual title until I manually update it. This means none of my apps that use this motion sensor work.

I’m sure it’s something stupid I just honestly had enough time to troubleshoot it. If you have a working version of a virtual motion sensor that can be set from an app I’d love to see the code.

Yeah, you can check out my code on GitHub - You’ll see the SmartApp that creates the devices (AlarmThingManager.groovy) and the virtual motion device (VirtualMotion.groovy). These seem to work well. I haven’t had a chance to look at yours to see what is different.

Hi @d8adrvn,

I’m trying to get all of this setup on my Vista 20SE, which I think it the same that you have, and been hitting a brick wall. I’ve checked, checked and checked again my wiring, but I just don’t see to get a proper response from the AD2PI. Here is the logs when I hit AD2Pi Config:

a4ef2901-7b1d-4a17-a982-dbaac6a54025 ‎10‎:‎48‎:‎35‎ ‎PM: debug Parse returned [Home Alarm msg is , Home Alarm chime is chimeOff]
a4ef2901-7b1d-4a17-a982-dbaac6a54025 ‎10‎:‎48‎:‎35‎ ‎PM: info Alarm Message:
a4ef2901-7b1d-4a17-a982-dbaac6a54025 ‎10‎:‎48‎:‎34‎ ‎PM: debug sending AD2Pi Config Command: ADDRESS=31

My wiring:

3.3v (Shield) -> Pin1 (AD2PI)
Ground (Shield) -> Pin6 (AD2PI)
TX2 16 -> TX1 (Shield)
RX2 17 -> RX0 (Shield)
TX1 18 -> Pin8 (AD2PI)
RX1 19 -> Pin10 (AD2PI)

And of course AD2PI is wired to the Vista Panel, Black (4), Red (5), D0/Yellow (6), D1/Green (7)

And I’ve tried reuploading the sketch to Arduino. I’ve run out of ideas. Thoughts on how I can troubleshoot further?

Thanks in advance!

Hi @jlt1267,

Another possibility to trouble shoot is the SmartThings ThingShield configuration. The shield has a DIP switch that allows it to either read serial commands via pins 0/1 or pins 2/3. For this project, the ThingShield is reading the Serial commands from the ArduinoMega through the ThingShield pins 0/1. Check that the DIP switch is set to D0/D1. Attached is a pic to help guide you.

Version 2.1 addresses this issue by simplifying the hardware construction and uses the DIP switches as D2/D3, which is the typical default setting.

1 Like

Thanks @d8adrvn. That was it! The Readme on GitHub says it needs to be on D2/D3, so that was why I had it set that way. Once I switched it, everything tests out good.

Thanks again for the help!!


Glad to hear its working! My bad on the Readme file. I copied parts of the README over from another project which used the other setting. I have updated the Readme file and added some trouble shooting to the FAQ.

1 Like

A new question I have, do you have (or recommend) a SmartApp that separates each zone into a separate " virtual things". I’ve tried to get @obycode 's to work, as well as some other shared SmartApps, but haven’t had much luck. Before I go reinvent the wheel and write my own, I wanted to see if there is one out there that works without majorly recoding.

I believe @johnlcox had some luck building something for AD2Pi based on my work. Maybe he can post it?

I got a PM from @johnlcox. Thanks @obycode. Time to go get hacky. :smile:

1 Like


I just decided to start this project and try to integrate my VISTA 20HWSE panel with SmartThings following your excellent tutorial, but I can’t find the SmartThings Arduino Shield for purchase anywhere – to include on the Product site. Anyone have any ideas? Has this Shield been discontinued?

Thanks much-

Looks like there are a couple other threads that mention the thingshields have been going out of stock. They don’t accept back orders so the add to cart button just disappears. @mager has a thread gauging interest.

Hey there,

Just curious if you had any success getting @johnlcox’s code working to separate each zone into a separate virtual thing? i.e. that way you can utilize each zone as triggers. For example, if someone opens the front door zone after a certain hour, turn on the lights, etc.

I’d be very interested to hear how you’ve made out with this effort.

Thanks in advance!

I just received word that they’re expecting the SmartThings Shields back in stock by the end of the month. I have everything I need except the Shield and am excited to get started!

Thanks for all your hard work!

Glad to hear that the ThingShields will be restocked…hopefully SmartThings can keep ahead of demand in the future. I am not aware of a turnkey solution to virtualize the zones. In the current SmartThings architecture it will require creating a virtual device for each zone then creating a single SmartApp that listens and integrates the virtual and physical devices. There are a handful of related code bases that one can start from. Its on my short list to get to in the near future or maybe someone in the community will give it a try.