Jump to content

- - - - -

Monitor your X10 DS10A with your Elk M1


X10 DS10A wireless door and window sensorThe X10 DS10A wireless door and window sensor is a great little product which doesn't get enough credit.  Eventho it is made by X10, it uses a wireless signal, instead of relying on your electrical wiring, to transmit the signal to a controller.  The DS10A is not a typical wireless X10 product.  It doesn't send a house/unit code, instead, it sends a 'security code' which gets changed everytime you replace the batteries.  Not many wireless receivers know how to handle these, but the W800RF32 is one of the few (if not the most popular one) which can successfully understand these transmissions.

The goal of this tutorial is to show you how you can monitor these sensors, using an Elk M1, and a W800RF32 attached to an Elk M1 XSP (serial port expander).  I strongly advise against using these devices for real security, but due to the low cost (when they are on sale, you can usually buy 4 or 5 of them for $20 from x10.com), they are extremely useful to monitor non-critical stuff, for home automation purposes.

Some examples:

  • Monitor the status of your shed door
  • Monitor the status of your walk-in closets, so you can turn the lights on whenever the door opens
  • Monitor who is at home (more info)
  • Monitor your mailbox, get notified when new mail arrives

As you can tell, there is a lot of potential.  Many people are already relying on DS10A's, but using a PC based system.  However, did you know it's possible to take the PC out of the loop here, by connecting your W800RF32 to your Elk M1 using a serial port expander module (M1XSP)?  Keep reading for the instructions (with pictures and video) on how to configure your Elk M1.

In this tutorial, we are going to focus on automating a walk-in closet light.  The light switch has been converted to UPB switch(but could be anything, as long as the Elk M1 supports it), and I mounted a DS10A sensor inside the closet, on top of the door trim.

There is also a video version of this tutorial (no audio), which can be found at the end of this article.

  1. First we have to find out what code the DS10A sensor is transmitting.  Go to wgldesigns.com and download their (free) W800 Demo Decoder software, which can be found at the bottom of this page if the direct link doesn't work.
  2. Once you have downloaded the zip file, extract it, and run the installer.
  3. Execute the decoder software once installation has been completed.
  4. Make sure you select the correct serial port, followed by clicking the Apply button.
    W800RF32 Demo Decoder screenshot
  5. Push the TEST button on the DS10A (or open/close the door), and you should see a data appear in your log window, as shown below.
    W800RF32 Demo Decoder screenshot
  6. You should see multiple instances of 4-byte strings in the RAW data column. In this case, we can see  21 DE DD 2D and 20 DE DD 2D (the rest are duplicates, which is normal).  There is 1 string for each 'state' of the sensor (open/closed).  The Elk M1 requires you to add a Text string for each state to the Elk M1 database, but in a different format.
  7. The Elk M1 ASCII string is formed by appending the first byte, which indicates the state of the sensor (20 = open, 21 = closed),  to the 3rd byte (DD in this case), which is the transmitter ID, followed by a Carriage Return and Linefeed (^M^J in Elk M1 'speak').  So the final strings would look like this:
    21 DE DD 2D (closed) changes to DD21^M^J
    20 DE DD 2D (open) changes to DD20^M^J
  8. Now that we have created the final strings, we need to start Elk RP, and add them as a Text.
    Go to the 'Texts' screen
  9. Once in the Texts screen, click the 'New' button, and enter the string we just created for the 'open' state: DD20^M^J.  You could also enter DD20, and use the drop down menu to add the Carriage Return/Linefeed characters, as shown in the screenshot below.
    Enter the string we decoded earlier, make sure you include the ^M^J characters
  10. Do this again for the DD21^M^J string.
  11. It's now time to create the rules in Elk RP.  We will only need 2 rules in order to automate the lighting in the walk-in closet using this DS10A sensor.
  12. Go to the Rules screen, and click the 'New' button to create a new rule.
  13. Select "Text (ASCII) String is Received" for the Whenever condition, and select the DD20^M^J string since we are creating a rule for the 'door opens' condition. You can now pick whatever action you want, but in this example, we'll tell it to turn the closet lights on.
    Create a new rule in Elk RP Rule for the 'open' condition has been completed
  14. Repeat the last step for the DD21^M^J string, but this time, turn the closet lights off.
    All done!

That's it!  If you have trouble following these instructions, there is also a video (in HQ!) on the official YouTube CocoonTech.com channel, which should be easier to follow.

{youtube width="640" height="480"}iA5YVRf9Jdg{/youtube}