No announcement yet.

xapmcsCM19A - CM19A (Ninja X10 RF Send Receive) xAP Node

  • Filter
  • Time
  • Show
Clear All
new posts

    xapmcsCM19A - CM19A (Ninja X10 RF Send Receive) xAP Node

    xAP implementation to support the CM19A. Contains Ninja commands and X10 RF commands. Supported with a HTTP server for user interaction in addition to xAP messaging.

    PR1 1.1.6 Subaddress contains command for type changed to "ninja" for type
    Attached Files
    Last edited by Michael McSharry; September 1, 2005, 12:24 PM.

    Browser User Interface
    Attached Files


      Very cool Michael, but a couple of questions.

      I unzipped the file and double clicked on the .exe and it created directories. Do I place all of this in the Homeseer root?

      I thought xap was an ethernet interface for devices (plug serial interfaces into a Lantronix ethernet unit). How is this used since the CM19a is USB? I assume the CM19a needs to be installed on the Homeseer computer then?

      So you need the xAP plugin for this to work also?

      Do you still need the X10 Firecracker interface to use this program (this was needed for Case's plugin)?

      Sorry for the newbie questions. Will try this tonight or at least over the upcoming weekend.

      Thanks for this BTW!!

      **** Do You "Cocoon"? ****


        This looks interesting Now I need to read up on xAP


          Can someone explain what xAP is for me?


            xAP is basically a communications standard that would roughly be translated as the Home Automation equivalent of what HTTP is to a Browser. It is a lightweight protocol that has been implemented in PIC and other micro controllers. This means hardware devices can talk xAP just like the CM11A can talk powerline PLC. The most common medium used with xAP is ethernet on a LAN.

            When one is Homeseer-oriented then they think in terms of a memory to memory inteface between two pieces of software on the same PC. For example, a script that uses hs.ExecX10 "A1", "ON" is doing a memory to memory communication using the language defined by HST and supported by the Homeseer object.

            xAP is a messaging communication. It has the equivalent of hs's ExecX10 that looks like "xap-x10.request" / device="A1" / command="ON". The communication is on the LAN and is broadcast so any computer or device will be able to hear it and if it recognizes the "xap-x10.request" as being something it can understand then it will act upon it. Note that all xAP nodes can be on the same PC or they can be distributed over as many PC as desired with no difference in the behavior.

            xapmcsCM19A is a conduit application that bridges the USB interface of the CM19A to the LAN. Had the CM19A been IP-based and had the xAP protocol in its microcode then there would be no need for xapmcsCM19A. It does mean that this xAP application needs to run on the same computer on which the CM19A is installed. Status and Control of the Ninja is available anywhere on the LAN, but this applicaiton needs to be on the PC with the CM19A hardware.

            xammcsCM19A knows three xAP language dialects where a language dialect is another name for the computer-speek of schema. One is xap-x10. One is Basic Status and Control (BSC). The third is Roles. The first two are approved schema and the third I use as part of a redundancy managment approach.

            xap-x10 is used to for the ON/OFF/DIM/BRIGHT support contained within the CM19A. When the CM19A hears an "A1/ON" in the airwaves it will be be translated into a xAP message "xap-x10.event". When one want to sent a Firecracker-equivalent "A1/ON" then they will do it with an "xap-x10.request" xAP message. When they want to rotate the ninja base left they will use "xAPBSC.Cmd" "Kitchen_Camera/Left".

            Homeseer has a xAP plugin that understands various xAP schema, including xap-x10 and xapBSC. This plugin will map the xAP messages into Homeseer devices. You can then use Homeseer methods to change the devices and equivalent xAP messages will be generated. Likwise the device state will be updated based upon received xAP messages. I extened the xapBSC schema by adding "xapBSC.Values". When the xapmcsCM19A is queried (xapBSC.query) it will send a message of the device state as well as the association of values with text. These value-pairs are used by Homeseer to provide the user interface to select "down" rather than using a hs.deviceValue method to command the ninja to move down. Since this is not a standard extension of the schema it will not be part of the posted Homeseer xAP plugin and will only be available with my xAP plugin.

            An HTTP / Web / Browser interface is also provided in xapmcsCM19A. This allows Internet Browser control of the CM19A interface. When an HTTP action is taken then the hardware will be commanded and an xAP event message will be delivered so everyone on the LAN that is interested can be kept informed of the change. The Browser interface also provides the primary means to access the setup options. There is also a GUI setup to deal with the situation where the Server port needs to be changed and access cannot be achieved at the current port.

            xapmcsCM19A follows the same pattern of all my xAP nodes. It can be installed in any folder. It is generally good to maintain folder independence to eliminate same-name overwrites. This application has subfolders to support the Browser interface so when unzipped it should be unzipped with the folder names maintained. It will use the subfolder conventions adopted for Homeseer, but will not need to be installed in the Homeseer root. I included the .ocx developed by Case in the \Bin folder. If you already have this .ocx installed in registered then there is no need to do anything with this one I provided. If this .ocx is not already present somewhere on the PC then the one I provided should be registed (via regsvr32 or equivalent). It can be moved to the Window's system directory if that is your organizational style or left intact before registering.

            The default Browser URL is http://localhost:8012/status. The tray icon is a left-facing missle that will blink with RF activity. The browser or gui can be reached with mouse clicks on the icon. The System Config/System Status and /Help icon options are placeholders.

            The CM19A using the xap-x10 schema has been in service for more than a year. I recently added the ninja and browser elements to it to provide an option to those that want an alternative to the HS1 plugin. I have the Ninja controlled using the asp page originally introduced by John P and have updated it for xAP messaging.


              Doesn't seem to work the CM19a

              I bought a new CM19a that I installed on a non HS pc. (I installed the drivers from x10 first). I installed you xap module for the cm19a and it seems to be talking to HS just fine since the HS xap plugin recognized the hardware right away.

              The problem I am having is that the CM19a itself doesn't seem to be receiving or sending any RF signals. Also, the only menu options that work on the module are browser and gui setup.

              Running HS 3 on Win10 .


                Use the xAP viewer to observe messages from xapmcsCM19A. The log messages will use the Homeseer.Event / Event.Log schema. Also look in the \Data folder tree for a text file that will give startup error logging.

                The system status and system config menu items are disabled intentionally. The Help is sometimes populated, but the help will be no more than an HTML version of the manual.


                  EventGhost XPL plugin to xapCM19A

                  I have xapCM19A installed on the same machine with EventGhost.
                  What parameters shoould I use in EventGhost to communicate to xapCM19A in the following dialog box:



                    The are two bridges to cross. The first is tranlation between xpl and xap schema. I'm on vacation an do not have source for xapmcsCM19A with me so I'm not certain about the ninja commands, but the standard X10 ones will use xap-x10. This schema is defined at So if you are sending a command to control an x10 device via xapmcsCM19A you will need eventghost to produce a message with the referenced xap-10.request

                    The second is xAP communicates on different ports than xPL. There are dual-hubs available that will forward one port to the other and in some cases translate schema. xapmcsHub does some of this, but it was a very focused implementation. There should be others that are a more complete rosetta stone.

                    I only dabbled in the xPL world many years ago and I do not have direct experience with what you are trying to accomplish.


                      Oops I see.
                      Thanks for your response.
                      Still learning and enjoy doing so.

                      Thanks again,