Updated February 4, 2008 07:00 PST
How-to: Bridge Z-Wave and X10 Protocols with Elk M1G
By David Powell
In my last article "Bridge
the Communication Gap Between Z-Wave and X10" I
introduced you to the idea of using software or hardware
to allow Z-Wave and X-10 devices to interact with each other.
In this article I will demonstrate in more detail the steps
required to bridge the gap using an Elk
M1G Home Automation/Security system.
The Elk M1G is a fully functional home security system
that can replace your existing security system while allowing
you to keep your existing security sensors. If you don't
have an existing wired security system, don't worry; the
Elk M1G also supports the use of many different wireless
sensors including X10. To work through this tutorial I am
going to assume you already have an Elk M1G installed. If
this is not the case then follow these video tutorials from
International to learn everything from how to properly
unpack your Elk to programming the logic controller.
What You'll Need (Instruction Manuals)
- Elk M1G (Elk M1)
- Various Z-Wave Devices (On/Off/Dim Switches)
- Primary Z-Wave Controller with group replication (ACT
- Elk-M1XZW (M1 Z-Wave Interface)
- Elk-M1DBHR or ELK-M1DBH (*OPTIONAL* - M1 Data Bus Hub)
- Elk-M1XSP (M1 Lighting / Thermostat & Serial Port
- W800RF32 (X10 RF Receiver)
- Various X10 (DS10A Door Contact, EagleEye Motion Sensor)
Elk Products has done a good job documenting the installation
of all of the above components. (The above hardware is listed
in the order it should be installed.)
In a nutshell here is what you will need to do to install
the hardware. Start by creating a Z-wave network with a
controller that supports group replication. Group replication
is required and as of this reading I only know of the following
(which are primary controllers that support this feature).
- Intermatic HA09 and HA07 (16 Groups)
- Wayne-Dalton Wireless Gateway (3 Groups)
- ACT HomePro ZTH100 (64 Groups)
- ControlThink PC SDK
The ACT HomePro ZTH100 is by far the easiest to use. To
use the PC SDK you must know the Node ID of the devices
you want to copy into the Elk Z-Wave Interface. You'll also
need to do a little bit of C# or VB.net coding. <CLICK
HERE> to open coding sample.
Once you have set up your Z-Wave network you are ready
to install the Elk-M1XZW Z-Wave Interface. There is more
to installing this than just connecting wires. Follow the
instructions carefully as you may need to run the ElkRP
software or set up the hardware through your Elk M1G keypad.
After the Elk-M1XZW Z-Wave Interface is installed you are
ready to copy your primary controller to it. You must put
your primary controller in replication mode. For the ACT
ZTH100 remote you press MENU then arrow over until you see
SETUP on the display. Press OK to enter the setup menu and
arrow over to COPY REMOTE CTRL. Arrow over to Send Information
and press OK. Press OK to start the transfer. That's it!
Now if you are using the ControlThink PC SDK then you simply
plug in your USB stick and edit the code to use your Node
ID then run the application.
Now that your primary controller is in replication mode,
you need to put the Elk-M1XZW into programming mode. Open
the cover of the module and you will notice two circuit
boards. Press the button on the larger board for five seconds.
The button is located on the edge of the circuit board near
the LEDs. After you perform these steps the Elk M1 and Z-Wave
controller will start transferring data. The Elk-M1XZW and
primary remote must be within three feet of each other for
this to work. Read the Elk-M1XZW manual for instructions
on testing the setup using your Elk M1 alarm keypad.
Now you should finish installing the remaining Elk M1 modules.
The Elk-M1DBHR and ELK-M1DBH are optional components and
are used only to make wiring the Serial Expander easier
and with fewer messy wires.
Note that the Elk-M1XZW Z-Wave Interface is displayed as
a Serial Expander in the ElkRP software. If you happen to
wire the Elk-M1XSP Serial Expander incorrectly you will
only see one listing of a serial expander in ElkRP. Figure
1 demonstrates what should appear under serial port expanders.
Since there are two serial expanders on the ElkRP data bus
you will need to make sure the address jumpers on each Serial
Expander are set correctly. If you have been following my
order of installation the Z-Wave Interface should be set
to address 1 and the Serial Expander should be set to address
2. You will also need to ensure the jumpers on the Serial
Expander are set for use with the W800RF32. They are by
[Figure 1: ElkRP Software]
The W800RF32 is connected with a standard nine-pin serial
cable to the Serial Expander. Apply power and you're done.
Get ready to program the Elk M1 using the ElkRP Software.
The ElkRP software can be downloaded from Elk
Products. You'll need to register for a dealer account.
Anyone who owns an Elk M1 can register. All you need is
some personal information and the serial number of your
Setting Up Elk's Logic Engine
In the above list of "what you'll need" I listed
two X10 devices. The EagleEye motion detector and the DS10A
wireless door/window contact sensor. Both devices are readily
available. However, there are two major distinctions in
how you use each to trigger events. The EagleEye uses the
lighting features of Elk and the DS10A uses Text.
I'll start by demonstrating how to configure the EagleEye
motion sensor. But first let's take a step back and talk
about configuring your Z-Wave devices. In ElkRP under the
Automation tree click Lighting. The Elk translates all Z-Wave
groups into their X10 equivalent. So A1 in X10 is equivalent
to Group 1 in Z-Wave and A1 is equivalent to Group 2 and
so forth. Only the devices in groups set up by your primary
controller and copied to the Elk Z-Wave Interface will be
available for you to use in the logic engine. Figure 2 shows
the proper configuration if you copied three groups. Required
fields are Format and Type. Z-Wave support in the Elk does
not allow status reporting so there is no need to check
[Figure 2: Z-Wave Lighting Groups]
Once you have your Z-Wave devices set up you can now write
"rules" in ElkRP. Writing rules is another way
of saying program the logic engine.
Before we write rules you should configure the EagleEye
motion sensor. To do this first follow the instructions
that came with the EagleEye to set the X10 house code and
Device Code. Keep in mind that your Z-Wave Devices are already
using A1 through however many groups you have. In our example
this would be A1 through A3. You should pick something much
higher to allow for expansion of your Z-Wave network. In
this example we will you house code C and device code 1
(C1) for our motion sensor. Figure 3 shows the proper configuration
under lighting for an X10 EagleEye motion sensor. Again,
Format and Type are the required fields.
[Figure 3: X10 Motion Sensor]
Under the same automation tree select rules then Click
New->Whenever->Lighting Change and you will see a
window like the one shown in Figure 4. Select "X10
Motion [33(C1)]" as the device that will trigger your
event. You want the device to trigger the event whenever
it is activated (Turned ON as in Figure 5).
[Figure 4: Whenever X10 Motion Changes]
[Figure 5: Then Control Z-Wave]
You have now set up a rule, which states that whenever
the X10 Motion Sensor is triggered then you want to turn
on a Z-Wave light. You have successfully bridged the gap
between the two protocols. Figure 6 shows what the rule
should look like in Elk RP. You may also want to create
another rule that is triggered when the motion sensor is
turned off so the light will also turn off.
[Figure 6: Elk RP Rule]
Setting up the DS10A is different from the previous setup.
The DS10A sends a wireless signal that the Elk Logic Engine
does not recognize as an X10 lighting command. You will
need to use the incoming text on the Serial Port expander
to determine if your DS10A is sending an On or Off command.
To do this you need to learn a little information about
your DS10A devices. First view this video
from CocoonTech to get a better understanding of the
software you need to download. Then download and install
Demo Software. Disconnect the W800RF32 from the Serial
Expander and connect it directly to your computer's serial
port. This is where owning a laptop comes in handy. If you
don't have a laptop you may want to simply disconnect the
serial cable between your PC and your Elk main board and
use that temporarily.
Now that the W800RF32 is connected directly to your PC,
you can run the W800RF32 Demo Software. Select the correct
port and click apply. Now physically open and close the
DS10A sensor and record the 3RD byte followed by the 1st
byte in that order. There will be a different code for open
and closed so make sure you record both. Back in the ElkRP
software under the automation tree select Text->New and
enter the four-character AlphaNumeric code that you recorded
from the Demo Software. Then click the Insert combo box
and select Carriage Return. Your results should be similar
to Figure 7.
[Figure 7: Create Text String]
Click OK and follow the same steps you did for setting
up a rule for the Motion Sensor except this time instead
of triggering off of lighting changes your need to select
WHENEVER->Text (ASCII) String is Received and configure
the trigger as shown in Figure 8. Finally, Figure 9 demonstrates
how your final rule should appear for a DS10A X10 Contact
Sensor controlling a Z-Wave Lighting Device.
[Figure 8: Text ASCII Trigger]
[Figure 9: DS10A Contact Sensor Rule]
David Powell is the technology editor for ZWaveWorld.com.
You can reach him at firstname.lastname@example.org.