ADT Integration

Thanks! the terminology was confusing as it wasn’t clear that device type and device handler were the same thing. And knowing the REST endpoints need to be in their own app helps also.

Yes, the upstream path is pretty straight forward. The downstream is not quite though. To send commands from ST to your device (Mac) you have tree options:

  1. Create a separate “command” endpoint in the smart app and poll it for periodically. Disadvantage - latency.
  2. Create a REST endpoint in your Mac and call it from the smart app. Disadvantage - need to punch a hole in the firewall and have a public domain name or a static IP.
  3. Create a REST endpoint in your Mac and send commands through the hub using sendHubCommand API. You’ll need a local static IP for your Mac or try using Bonjour zeroconf.

Thanks, again! Option 3 should work fine. The mac already has a static address (well, a dhcp defined static address but it amounts to the same :)).

Progress Update:

I’ve got prototype code working where the ADT contact sensors update virtual contact sensors on ST so as a proof of concept I think it’s been successful. Still lots to do (handle other señor types, allow arming/disarming, etc.) but it looks like this will work!

3 Likes

Tonight I got all the basic alarm functionality completed. There are 6 custom device types (contact, motion, smoke, alarm controller, chime and alarm) and a smartapp along with a mac program.

It doesn’t yet handle low battery notifications because I’m not sure what they look like yet. The smartapp doesn’t have any UI of its own yet though I may make it old a combined view of the important panel info but that wasn’t needed for basic ST integration.

The mac program is also pretty simplistic right now. It has only minimal UI which could potentially be expanded to at least handle device configuration without requiring it to be hardcoded into a data structure.

As a prototype, though, it should be complete enough to see how works.

I’m going to let it run for a few days and see how it goes. If nothing major pops up I’ll post a link to the code early next week.

3 Likes

This is interesting - I like the idea of having a professionally fitted monitored alarm that is nonetheless accessible from ST.

Looking forward to seeing what you’ve put together, Linda. I’ve got an AD2PI wired into my Vista 10se panel and have Girder (from Promixis) receiving messages from it via a ser2net implementation. I plan to have it do the work that you’ve got your Mac doing, and be able to use your device types in ST. Can’t wait to see your next update!

I created a new thread for the integration I did to keep the support for @craig’s version separate. You can find it at:

The idea of integrating my Vista P20 panel into ST is exciting. I wonder though, what do these “alarm decoder” modules really do? The AD2USB / AD2Pi / Honeywell 4232CBM modules are not cheap.

I have connected directly to the panel serial lines using an RS 485 adapter and can see a periodic dump of hex characters (every 3 seconds or so). When I trigger the alarm or arm it, another dump of characters is put on the wire immediately (outside of the periodic stream) . Does anyone know if the data on this line is encrypted? I cannot see any pattern but there certainly are repeating portions to the string. Can it be parsed without having to spend the $88 to $145 cost for a “decoder”?

A way easier method is to use eyez-on evl-3, a windows pc (linux, mac, or raspberry pi) to run alarmserver, and ethomasii configuration for contact/motion/smoke sensors and arm/disarm.

my windows pc runs alarmserver with no issues, i have about 30 contacts working, wired and wireless on my dsc system. evl-3 works on honeywell vista20p and is way easier than creating your own hardware.

I am getting the following message: Parsing received message: catchall: 0104 0000 01 01 0140 00 B522 00 00 0000 0B 01 0A00 from ADT when I send the Chime off. I don’t get any error messages. Everything “looks” correct, Ideas? Thanks for the help!

1 Like

@thehands1,

Glad to see you making progress with the AD2SmartThings integration. Is the chime turning on and off as expected? I pulled up the device type code and do not see the text that you are reporting. Can you provide some additional info. You mention you are getting this from “ADT”. Are you seeing this on your mobile device in the message window (just below the zone tiles) or in your api.graph.smartthings.com “Live Logging” or on your device type “Activity” log? Also, what is the exact wording prior to the catchall: 0104 0000 01 01 0140 00 B522 00 00 0000 0B 01 0A00. Is there a icon that says “debug” or “info” before the message?

If you can provide a bit more specific info, I can try to track it down.

No the chime doesn’t change. Here is the message: info Parsing received message: catchall: 0104 0000 01 01 0140 00 B522 00 00 0000 0B 01 0A00

It is in the Live Logging. The device Activity Log only says: ADT Alarm chime is chimeOff.

There is no message below the tiles either.

Hi Larry,

My initial though is that you are just getting a generic message from the AD2Pi and you may not have it communicating with the panel. Have you set the AD2Pi address and/or enabled an additional keypad on your system? If you have a Vista 10se or 20se, there is no need to program the Vista system, however you need to set AD2Pi address to 31 using the preferences in my device type and tapping the AD2Pi Config tile to send it over. If you have a Vista 20p or similar, you need to first activate a new keypad on the ADT system and then set the address on AD2Pi to match, using the preferences on the device type and the AD2Pi Config tile (note default AD2Pi address is 18 which I think matches keypad #3 on a Vista20p system). There are really good videos at alarm decoder.com and I provide links in my ReadMe. All this is covered in the ReadMe.

Second, I am still puzzled by how the message is generated. I have a statement in the code (line 154 of code ver 1.32) that logs the catchall: // log.info “Parsing: ${description}” However, as you can see, its commented out and the descriptive intro (“Parsing:”) does not match your descriptor (“Parsing received message:” In fact, I don’t see how the descriptor would be generated anywhere in the code. Please make sure you are using my the latest code from github which is ver 1.32. You’ll need this version to be sure that you have the latest functionality and the ability to configure the AD2Pi

Hope all the above helps.
Stan

hi can you link all of the components to buy to do this integration? to be honest I love the idea and concept of smartthings just need the for dummies guide

You are correct. I enabled the command so it logs the message. It currently it is : 12:11:29 AM: info Parsing: catchall: 0104 0000 01 01 0140 00 B522 00 00 0000 0B 01 0A00
I thought I enabled the keypad # 3 by using this comment: 63218001911099
Is there a way to check to see if it is really activated? The documentation says that the first panel is always address 16 but mine seems to be set to 17 How I checked was Holding the 1 and 3 on the keypad and it says 17. Ideas? In your software I did send the command ADDRESS=18 to the ADPI but I am not sure it received it.

Larry,

I still think your alarm panel has not been configured to allow the AD2Pi to communicate. Have you verified the panel model number? If it’s a Vista 20p then you are correct that the command to activate keypad 3 is *19110.

To do this you must first be in installers programming mode. To enter programming mode, enter the four digit installers code immediately followed by 800. For example, ####800. You should then see 20 displayed on the screen. It’s then ok to enter *19110. Exit by *99

Looking at your reply, you are using 6321 as your installers code. Is that right or is it your homeowner access code? If it’s the latter, you need to use the installer code ( and you might want to change since you just published it to the world). The Vista default code is usually 4112.

If you do not know your installers code and 4112 does not work, you can enter by using the following

(1)Power the system down by disconnecting battery and pulling out the power transformer.
(2)Plug the transformer back in and immediately press * and # simultaneously. Hold them until you see a “20” displayed.
(3) enter #20 and the display will read out your existing installer code, scrolling it out in two-digit numbers: For example, if the code is 1-2-3-4, it will scroll 01-02-03-04. That gives you the code to get into programming again without having to power down and back up.
(4) To change the installer code, press * and the 4-digit code you want (Ex. 1-2-3-4), and * again.
(4) Return the programing to factory defaults by entering *97
(5)Leave programming by entering *99
WARNING: If you leave programming by entering *98, you cannot get back into programming with the Installer Code, which might be what happened. Use only *99 to exit programming.
(6) Read the Installation Manual thoroughly.

A couple other notes:
Default ADTPi address is already set to 18 so no need to program. When you do try to send an address to the AD2Pi you have to enter the address in the preferences of the device type and you must then hit the Configure AD2 tile.

The keypad you are working with is at address 17 which is not an issue as long as there is not a keypad at adress 18.v

Yes it is a Vista 20p. There are many sites that show the code since it is a default and what I say is my code but not really :). Also in the actual code (Arduino Sketch) the code to enter is it the installer code or a valid user code?

When I enter the code ####800 it shows the 20 then I entered *19110 and it beeped twice and displayed a 0 I then entered *99. Does that mean it worked?