Difference between revisions of "CM11A"
Perspectoff (Talk | contribs) |
Perspectoff (Talk | contribs) (→Description) |
||
Line 3: | Line 3: | ||
''For setup information see [[CM11]] | ''For setup information see [[CM11]] | ||
== Description == | == Description == | ||
− | CM11A is a device that uses [http://hypermetrics.com/rubyhacker/x10proto.html X10] protocol to control lights (and | + | CM11A is a device that uses the[http://hypermetrics.com/rubyhacker/x10proto.html X10] protocol to control lights (and maybe other stuff) around the house by transmitting data over powerlines. |
− | Each X10 device has an address formed as ''housecode''[A..P]+''unitcode''[1..16]. As powerlines are | + | Each X10 device has an address formed as ''housecode''[A..P]+''unitcode''[1..16]. As powerlines are often shared by neighboring houses and apartments, so it's a good idea to choose a housecode different from your neighbor's. Otherwise, purchase and properly install a filter. |
− | To control those devices you need a small box which is connected to computer ( | + | To control those devices you will need a small interface box which is connected to computer (the CM11A)). With it you can send commands from the computer to the devices. |
− | The command usually consist of few bytes (command itself and unit to control) | + | The command usually consist of a few bytes (the command itself and the address of the unit to control). An exchange of checksums is needed because the lines are often noisy and commands may not be received correctly. In noisy conditions, retransmission is required by protocol. |
− | There are several commands | + | There are several commands that LinuxMCE's CM11A wrapper implements: |
* '''CMD_Generic_On''' will send x10 ON | * '''CMD_Generic_On''' will send x10 ON | ||
* '''CMD_Generic_Off''' will send x10 OFF | * '''CMD_Generic_Off''' will send x10 OFF | ||
− | * '''CMD_Set_Level''' depending on the existing level | + | * '''CMD_Set_Level''' depending on the existing level. The requested levels 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 | + | Some devices may send commands to CM11A device (mostly motion detectors or some other bidirectional devices). We don't have any in our office, so even if the code exists, we were not able to test it properly. It should be able to send a SensorTripped event. |
== Implementation notes == | == Implementation notes == |
Revision as of 05:30, 29 May 2008
For setup information see CM11
Description
CM11A is a device that uses theX10 protocol to control lights (and maybe other stuff) around the house by transmitting data over powerlines.
Each X10 device has an address formed as housecode[A..P]+unitcode[1..16]. As powerlines are often shared by neighboring houses and apartments, so it's a good idea to choose a housecode different from your neighbor's. Otherwise, purchase and properly install a filter.
To control those devices you will need a small interface box which is connected to computer (the CM11A)). With it you can send commands from the computer to the devices.
The command usually consist of a few bytes (the command itself and the address of the unit to control). An exchange of checksums is needed because the lines are often noisy and commands may not be received correctly. In noisy conditions, retransmission is required by protocol.
There are several commands that LinuxMCE's CM11A wrapper implements:
- CMD_Generic_On will send x10 ON
- CMD_Generic_Off will send x10 OFF
- CMD_Set_Level depending on the existing level. The requested levels 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 our office, so even if the code exists, we were not able to test it properly. It should be able to send a SensorTripped event.
Implementation notes
- CM11A is responsible for getting commands from LinuxMCE and transform them in X10 commands
- DevicePoll will do all the communication with device (sending commands, checking checksum, etc) and also will treat any InterfacePool requests coming 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.