This page last changed on Feb 20, 2011 by juha.

I'm working on java code for the X10 CM15A USB interface and have started looking at how to integrate it with OR.  The CM15A is capable of transmitting both Powerline X10 commands, and RF versions of the X10 Command, X10 RF TV Remote, X10 RF Cameras, X10 RF Security Sensors and X10 Security Commands.

The current OR X10 command set implementation (CM11A) is small and each of these commands are typed in manually in the UI Designer.  It would need to be expanded so that the user can identify the media for command transmission (Powerline or RF).

Since the CM15A interface would introduce a lot of new commands, and the user wouldn't necessarily want to type in each and every one, what is the preferred way to introduce a default command set into the UI designer for a new protocol, so that the user could simply have a drop-down list of commands to select from?  Or, a complete default set of commands imported into the design space?

I looked at Beehive with the LIRC commands, but didn't dig into the code for it yet.  Is this implementation flexible enough to use for a (non IR) command set for a new protocol?

Denny Sheirer

How is the CM15A introducing additional commands?

The X10 command set is very limited: Overview of X10 Protocol and should not change between implementations so they can be embedded into the protocol implementation, rather than going through Beehive. Is CM15 changing this somehow?

The designer dialog can be fitted with a drop-down menu as part of the protocol XML definition (should already be implemented but not yet deployed):

https://openremote.svn.sourceforge.net/svnroot/openremote/trunk/UIDesigner/protocols/protocols/x10.xml

The media (PL/RF) for commands can be added as another property – the current X10 library for example abstracts both CM11 (PL over serial) and CM17 (RF over serial) as a singular SerialGateway : https://openremote.svn.sourceforge.net/svnroot/openremote/trunk/Controller/src/org/openremote/controller/protocol/x10/X10ControllerManager.java

Same should be possible for CM15 vs CM19 ?

Posted by juha at Feb 20, 2011 12:54

How is the CM15A introducing additional commands?

The CM15A doesn't introduce new Powerline commands.  The CM15A implements the same powerline command set that the CM11A supported, and what is also supported in Jesse Peterson's code.

The CM17A implementation in Jesse's code only supports the RF version of a subset of the X10 powerline command set (On, Off, Dim, Bright).  It's possible that the CM17A supports the full X10 RF protocol, but Jesse's code currently does not.

The CM15A transmits on either PL, RF, or Both.  It also handles the full RF protocol, compared to the subset implemented in Jesse Peterson's CM17A code.  It seems that the CM15A will transmit over RF whatever bytes you tell it to transmit.  And the CM19A, although I haven't test it yet, I think it should be capable of transmitting the full X10 RF protocol, like the CM15A.  The X10 RF protocol includes a full set of TV Remote control commands used with the RF to IR converter (Remote Sender) and also supports wireless camera control and wireless security systems.

I started mapping out the CM15A interface and consolidating the X10 RF protocol here.

The designer dialog can be fitted with a drop-down menu as part of the protocol XML definition (should already be implemented but not yet deployed):

That is what I was hoping you would say.  Since the protocol is static, it would be easy to implement it in the X10.xml version of protocol.xsd as a set of default values for a drop-down list.  Is the new designer code in one of the tags/branches?

The media (PL/RF) for commands can be added as another property - the current X10 library for example abstracts both CM11 (PL over serial) and CM17 (RF over serial) as a singular SerialGateway : https://openremote.svn.sourceforge.net/svnroot/openremote/trunk/Controller/src/org/openremote/controller/protocol/x10/X10ControllerManager.java

Same should be possible for CM15 vs CM19 ?

Yes, I think it's possible.  The CM15A and CM19A appear to simply be USB variants of the serial CM11A and CM17A.  I think I can combine my code with the Jesse Peterson code in the X10ControllerManager.class.  I don't have a CM11A or CM17A to test against.  I only have the CM15A and CM19A.

Denny

Posted by dsheirer at Feb 20, 2011 13:57

Ok sounds good.

On sending serial or infrared commands, are these extensions on particular vendor's product or does a specification on X10/RF for infrared/serial exist that is implemented by multiple vendors and is publicly available?

Infrared format would hopefully be in a format that is already widely used (CCF) or easily converted to CCF. Serial commands obviously are device specific and we've planned on collecting them to Beehive for some time – this would not be specific to X10 though as they will be just byte arrays. Beehive still needs to be cleaned up to production-grade before adding features there, I haven't gotten that far in my spring cleaning yet.

Posted by juha at Feb 21, 2011 09:17

I don't have any of the X10 RF to IR converter devices, but looking at the user manuals on the x10 website, it looks like the devices can be setup to control a variety of IR devices.  The x10 RF command set is complete, but limited (ie Power, Menu, Live TV, 1-9, left, right, etc.).  The RF remote control address space is defined by 1 byte, which provides space for 256 total commands for TV Remotes and Wireless Cameras combined.

I was able to get the OR modeler installed locally running on Tomcat.  I built the Modeler_gwt_Branch:3456 version, which includes the new drop-down option list feature that you mentioned.  I modified the x10.xml protocol definition and was able to create attribute drop-down option lists for House Code, Device Code, Medium, Command Type (Command, Camera, Security or TV Remote), and then drop downs for each of the Command Types with the available commands corresponding to each type.

I debated on combining all of the Command, Camera, Security and TV Remote commands under one drop down box, but this approach has it's merits as well -- pick the command type, and then select the command from one of the 4 command drop down boxes.

I tried attaching screenshots, but they wouldn't render after being attached.

I'm going to start working on expanding the x10 protocol in the controller next.

Denny

Posted by dsheirer at Feb 22, 2011 22:35
Document generated by Confluence on Jun 05, 2016 09:29