CM11A

From LinuxMCE
Revision as of 08:53, 24 May 2006 by Wikiadmin (Talk | contribs)

Jump to: navigation, search
This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.

Description

CM11A is a device that uses X10 protocol to control lights (and may be other stuff) around the house by injecting data into powerline.

Each X10 device has an address formed as housecode[A..P]+unitcode[1..16]. As powerlines are usually shared between near houses/apartments it's a good idea to choose other housecode than your neighbor, or purchase and properly install a filter.

To control those devices you need a small box which is connected to computer (this one is CM11A), whith it you can send commands to the devices.

The command usually consist of few bytes (command itself and unit to control) and an exchange of checksums needed because the line may be noisy and commands weren't received corectly. In this case the retransmition is required by protocol.

There are several commands the pluto's CM11A implements:

  • CMD_Generic_On will send x10 ON
  • CMD_Generic_Off will send x10 OFF
  • CMD_Set_Level depending on the existing level versus requested level will send DIM or BRIGHT

Some devices may send commands to CM11A device (mostly motion detectors or some other bidirectional devices). We don't have any in the office so even if the code exists, it wasn't tested properly, but it should send SensorTripped event.

Implementation notes

  • CM11A is responsable for getting commands from pluto and transform them in X10 commands
  • DevicePoll will doo all the communication with device (sending commands, checking checksum, etc) and also will treat any InterfacePool requests comming from bidirectional devices.
  • Message will transform unit code from for example 'A9' into internal X10 code '67'. Don't ask why, that translation is required by protocol.