Ahhhh!!! You may have hit the nail on the head with your last comment!
Motion Detectors for Arduino’s come in two flavors… Active HIGH and Active LOW. This behavior is user selectable when creating the IS_Motion device in your Arduino sketch’s setup() routine.
In the ST_Anything_Multiples_EthernetW5100.ino example sketch you will find the following line of code defining the first motion detector device:
static st::IS_Motion sensor9(F("motion1"), PIN_MOTION_1, HIGH, false, 500);
If you read the comment at the top of the IS_Motion.h or .cpp file you will find the instructions that explain each of the arguments:
// Create an instance of this class in your sketch's global variable section
// For Example: st::IS_Motion sensor5("motion1", PIN_MOTION, HIGH, false, 500);
// st::IS_Motion() constructor requires the following arguments
// - String &name - REQUIRED - the name of the object - must match the Groovy ST_Anything DeviceType tile name
// - byte pin - REQUIRED - the Arduino Pin to be used as a digital output
// - bool iState - OPTIONAL - LOW or HIGH - determines which value indicates the interrupt is true
// - bool internalPullup - OPTIONAL - true == INTERNAL_PULLUP
// - long numReqCounts - OPTIONAL - number of counts before changing state of input (prevent false alarms)
So, the default example expects a HIGH voltage (5V for Arduino MEGA) to be applied to the pin to activate the motion device. Since your motion detector is most likely a simple set of dry contacts, this will not work for your old alarm system motion detectors. Instead, change your sketch’s code to look similar to the following:
static st::IS_Motion sensor9(F("motion1"), PIN_MOTION_1, LOW, true, 500);
LOW means that applying GND to the input pin will trigger the device to be active.
true means to use the Arduino’s Internal PullUp resistor which will supply 5V on the digital input pin.
This combination should have the same result as all of the contact sensors. That is, by simply jumpering GND on the Arduino to the digital pin for the motion detector, you should see motion device in SmartThings change from “inactive” to “active”.