Second, there is The IT-100 bridge discovery mode which will search serial ports for any IT-100. Protocol - The protocol used to interact with the DSC Alarm. I want to start a home automation project and want to hook my DSC alarm into it to create a 'virtual keypad' kan anyone help me out with the protocol.
DSC Alarm interface to SmartThings. Able to arm/disarm, monitor zone status and trigger the panic alarm.
Author: Vassilis Varveropoulos, Brice Dobry
Modified by Yves Racine
If you are on a different shard, you need to change the links below for your right shard.As an example, in North America,
replace https://graph.api.smartthings.com/ide/devices by https://graph-na02-useast1.api.smartthings.com
The IT-100 interface is connected to the communication and power lines of the DSC alarm panel (AUX+/AUX- for power and GRN/YEL for data). An Arduino is used to decode the commands from the alarm system and interface with the SmartThings hub. The output of the IT-100 interface is RS232 at 12V levels therefore it can't be directly connected to the Arduino board (it will only accept 5V levels), therefore an RS232 shield is used to convert to the right levels. You may also use a 9v (1A) power adapter connected to the Arduino Mega to have a steady power source.
A SmartThings shield is used to interface with the SmartThings hub and cloud. The Arduino needs to be capable of receiving and transmitting through two serial ports (one for the IT-100 and another for the SmartThings shield). An Arduino Mega was chosen since it has more than two serial ports. An attempt was made to use an Arduino Uno with one hardware and one software serial port but it was not fast enough to handle all communications and as a result messages were lost. The SmartThings serial port is operating a 2400 bps and if a software serial port is used it blocks all other communication while a message is sent to the hub, which at those speeds it could be several ms.
The official SmartThings Arduino library will only support a software serial port, as a result the library had to be modified in order to utilize a hardware serial port.
The order of the shield stacking is the following (from bottom to top), Arduino Mega, SmartThings shield and RS232 shield. Make sure that the SmartThings shield serial port selection switch is set to pins 1,2. By default the RS232 shield will also use pins 1 &2.
All four lines had to be re-routed to the dedicated serial ports of the Arduino Mega. You do it by bending the pins, and running wires to the appropriate ports. The Rx and Tx pins of the RS232 shield are bent, and wires are run to connect Rx to port 19 (Rx1) of the MEGA, and Tx to port 18 (Tx1). Similarly, the Rx and Tx pins of the SmartThings shield are bent and wires are run to pins 17 (Rx2) and 16 (Tx2), respectively. See the pictures (IMG_426*.JPG) for details.
Before programming the Arduino board you will need to modify the SmartthingsDCSAlarm.ino file with your pin code (3 places, see comments), otherwise arming and disarming will not work.
A few pictures of the hardware can be found in the repository.
To load the code onto the Arduino, you will need the Arduino developer environment:
Once the software is installed, the first thing to do is obtain the required libraries.
Timer library was created by Simon Monk as modified by JChristensen. A copy is included in this repository/release for your convenience.
SmartThings Mega library contained in this repository/releaseSoftwareSerial library was default library provided with Arduino IDE
Once you have the required files downloaded you can import them within the Arduino IDE. Go to the Sketch:Import Library;Add Library drop down menu. Once you have added the libraries, they will show up under Sketch:Add Library:Contributed as 'Timer' and 'SmartThingsMega'. Be sure the Timer library is installed named as 'Timer'
You can connect the Arduino Mega to your computer via an USB cable, create a new sketch, paste the code from github into the Arduino IDE and then transfer it to the ArduinoMEGA
Once you have finished transfering the code to the Arduino, you can remove the USB and power the Arduino using a 9V transformer.
Pairing instructions for the Arduino shield to the SmartThings hub can be found at SmartThings.com and are copied here:
“To join the shield to your SmartThings hub, go to “Add SmartThings” mode in theSmartThings app by hitting the “+” icon in the desired location, and then press the Switch button on the shield. You should see the shield appear in the app.
To unpair the shield, press and hold the Switch button for 6 seconds and release. The shield will now be unpaired from your SmartThings Hub.”
The source code for the device type is also provided. You will need to modify this file to setup the proper zone numbers for your system. Use the provided source code and publish the device type. Pair your SmartThings shield to you hub and then manually change its device type to the one you created. You should now be able to see your new device and will be able to arm/disarm, monitor the state of the zones, trigger the panic alarm, etc.
You can also use the smartapp ArduinoAlarmController to create individual sensors as child Devices. Prior to executing the smartapp, you need to create the Open/Close and Motion Detector device types within your own namespace by using the SmartThing code template in the IDE.
In order to do so,
a) Go to https://graph.api.smartthings.com/ide/devices
b) Click on new SmartDevice on the right
c) On the new SmartDevice page, click on the 'From Template' tab
d) Scroll down to Motion Detector
e) Click 'create' at the bottom of the page
f) Click Save and publish on the next page
g) Do the same for Open/Close Sensor
h) Click 'create' at the bottom of the page
i) Click save and publish
Each of your zones defined in SecurityAlarmPanel must then be created in the same order as ArduinoAlarmController, sothat there is a match in the zone event processing.
Ex. In SecurityAlaramPanel, the following sendEvent must match the zone number in ArduinoAlarmController. Pes 2014 java jar 240x320.
So, the zone 4 in SecurityAlarmPanel should be the same zone number in ArduinoAlarmController when you execute itand do the zone configuration.
When [Doug] moved into his new house, he found an old alarm panel set up — but it had no monitoring service any more. Not wanting to pay a monthly fee to have it setup, he decided to try interfacing an Arduino with the system in order to push events to the net!
The cool thing is he was actually inspired by another similar project we shared on Hackaday a few years ago entitled Bending a Home Security Control Panel to Your Will. But that project only showed you how to interface the Arduino with the keypad — [Doug] went the extra mile and interfaced directly with the control board for more features.
He’s using an Arduino Uno and an Ethernet breakout board to hook it up to the network. This allows him to send text messages to himself when the alarm system is armed, disarmed, or triggered. All the code is available on GitHub in case you also have a DSC 1550 alarm system.
It’s a pretty slick hack, so don’t forget to check out the video after the break.