I have libusb working with the CM15A to receive all data communication between the CM15A and my computer. It can see security devices (door/window/motion sensors) and the remote controls.
I couldn't get it to work at first, because I had uninstalled AHP. But after I re-installed AHP with ActiveAlert, then I could start getting all communication, even if those modules aren't in AHP. In fact, AHP is even running while my program is.
I'm on windows, so I'm using libusb-win32. I got it work on both Windows XP and Windows Vista, although Vista is much harder.
Libusb will work with many programming languages. I'm using Java, but it works for c/c++, VB, etc.
In my experience, getting Java to talk to libusb was the easy part. The hard part was getting libusb setup, and then the CM15A working with the libusb driver. I used a wrapper project called "Java libusb-win32".
http://libusbjava.sourceforge.net/wp/?page_id=8 That is specific to Java. If you are using another language, you probably only need libusb-win32. See the link for the info on how to get what you need and how to set it up. It involves placing some dlls into c:\windows\system32. It is easier to get working on Windows XP - much harder to get it work on Vista. If you are installing on XP, use the link above. But, very important, if you want to use Vista, then use this installation instead:
http://www.fileden.com/files/2006/8/22/180346/LIBUSB64Fix.zipOnce that's installed, you use a script called INF WIZARD to create an inf file for the driver installation for the CM15A device. The CM15A device will show up as "X10 USB ActiveHome (ACPI-Compliant)" Use the control panel -> device manager to change the driver to point to the INF file created by the wizard. Once you do that, the CM15A will work with libusb, but I don't think it will work in AHP anymore. You can switch the driver back and forth using the device manager when you want to use AHP, but I couldn't get AHP and libusb to work at the same time. That's fine for me, because I plan to control everything with my program, so I won't be using AHP.
Once libusb is working, you are now working with the raw byte data between the CM15A and your computer. You'll see data like this for a sensor opening, then closing:
Data: 0x5d 0x29 0x39 0x36 0x00 0xff 0x10 0x80
Data: 0x5d 0x29 0x39 0x36 0x80 0x7f 0x10 0x80
In the data above, 0x5d means RF received. Not sure about 0x29.
0x39 0x36 is the id for the sensor device.
0x00 0xff is command for open max delay, and 0x80 0x7f is the command for close max delay.
Not sure about 0x10 0x80.
You can find some info on the CM15A protocol here:
http://www.linuxha.com/athome/common/cm15d/cm15a.htmlDISCLAIMER: I don't take responsibility for any of these programs, links, or what they might do to your computer