Mochad Reference
From mochad
mochad Command Reference
Contents[hide] |
Commands
The following commands cause the CM15A/CM19A to send on power line or radio frequency.
Abbreviations
<H> = A..P House code
<U> = 1..16 Unit/device code
<Dims> = 0..31 Dim/bright range
<Xdims> = 0x00..0xFF Extended Preset dim range
<SecAddr8> = 0x00..0xFF RF security 8 bit address
<SecAddr17> = hh:hh:hh where h = hexideciaml digit 0-9a-f
RF Security 17 bit address. Valid bits are defined by
the mask FF:FF:80
The following are use in the extended_code_1 command
<Type> Command type 0..15
0 = Shutters, sunshades, blinds
1 = Sensors
2 = reserved
3 = Control modules (dimmers and appliances)
4 = Extended secure addressing
5 = Extended secure address for groups
6 - 15 = not specified
<Func> Command function 0..15
<Param> Command parameter 0..255
See the X10 Extended Code document target:ftp://ftp.x10.com/pub/manuals/xtdcode.pdf for functions and data values available for each command type.
PL = power line
RF = radio frequency
Tx = transmit
Rx = receive
Power Line Commands
pl <H><U>
pl <H><U> on
pl <H><U> off
pl <H><U> dim <Dims>
pl <H><U> bright <Dims>
pl <H><U> xdim <Xdims>
pl <H><U> status_on
pl <H><U> status_off
pl <H><U> status_request
pl <H><U> extended_code_1 <Type> <Func> <Param>
pl <H> on
pl <H> off
pl <H> dim <Dims>
pl <H> bright <Dims>
pl <H> xdim <Xdims>
pl <H> all_units_off
pl <H> all_lights_on
pl <H> all_lights_off
Radio Frequency Commands
rf <H><U> on
rf <H><U> off
rf <H><U> dim
rf <H><U> bright
RF Security Commands
rfsec <Secaddr8> arm
rfsec <Secaddr8> arm_home_min
rfsec <Secaddr8> arm_away_min
rfsec <Secaddr8> arm_home_max
rfsec <Secaddr8> arm_away_max
rfsec <Secaddr8> disarm
rfsec <Secaddr8> panic
rfsec <Secaddr8> lights_on
rfsec <Secaddr8> lights_off
rfsec <Secaddr17> arm
rfsec <Secaddr17> disarm
rfsec <Secaddr17> panic
rfsec <Secaddr17> lights_on
rfsec <Secaddr17> lights_off
RF Camera Commands
rfcam <H> camup
rfcam <H> camdown
rfcam <H> camleft
rfcam <H> camright
rfcam <H> camcenter
rfcam <H> camsweep
rfcam <H> campreset1
rfcam <H> campreset2
rfcam <H> campreset3
rfcam <H> campreset4
rfcam <H> campreset5
rfcam <H> campreset6
rfcam <H> campreset7
rfcam <H> campreset8
rfcam <H> campreset9
rfcam <H> cameditpreset1
rfcam <H> cameditpreset2
rfcam <H> cameditpreset3
rfcam <H> cameditpreset4
rfcam <H> cameditpreset5
rfcam <H> cameditpreset6
rfcam <H> cameditpreset7
rfcam <H> cameditpreset8
rfcam <H> cameditpreset9
RF to PL repeater
By default, received RF X10 commands are repeated on the PL interface for all house codes. This can be changed using the rftopl command (RF to PL repeater).
rftopl * -- enable all house codes (default)
rftopl abc -- enable for house codes A, B, and C. Disable for all others.
rftopl 0 -- disable for all house codes. This is useful if more than
one CM15A is in use. Leaving both enabled will result in
PL collisions and redundant commands.
Pass through
For testing, the passthrough command will pass raw binary data to the USB controller. This can be used to send vendor-specific or custom commands.
pt hh hh ... hh -- h is a hexidecimal digit [0-9A-F]. Each pair of
hex digits must be separated by 1 or more spaces.
Device status
st -- Get status of X10 devices including security sensors st 0 -- Clear device status
The output is designed to be easily parsed on embedded systems without using external libraries. Use the Perl split() function or something similar.
12/17 12:03:45 Device selected 12/17 12:03:45 House A: 1 12/17 12:03:45 House B: 5 12/17 12:03:45 Device status 12/17 12:03:45 House A: 1=1 12/17 12:03:45 House B: 1=0,2=0,3=0,4=0,5=0 12/17 12:03:45 Security sensor status 12/17 12:03:45 Sensor addr: 569E80 Last: 39:09 Motion_normal_MS10A 12/17 12:03:45 Sensor addr: 9FAA00 Last: 50:02 Contact_alert_min_DS10A 12/17 12:03:45 End status
The first section starts with "Device selected". For each house code, the number of devices seen by mochad on PL or RF is shown. "House A: 1" means one device was seen using house code A. The next section lists which unit/device codes were seen. "House B: 5" means five devices were seen using house code B. This information could be used to allocate memory or print HTML table headers.
The next section starts with "Device status". For each house code, and for each unit/device was seen, the device status is shown. "House A: 1=1" means for house code A, unit/device 1 is ON (=1). "House B: 1=0,2=0,3=0,4=0,5=0" means for house code B unit/devices 1 through 5 are OFF (=0).
WARNING: The on/off status is not completely accurate. There are many X10 commands including ON, OFF, ALL_LIGHTS_ON, ALL_LIGHTS_OFF, ALL_UNITS_OFF, etc. and X10 devices respond to some but not all commands. mochad does not know the capabilities of each X10 device so can only guess whether the device is really ON or OFF. Very few X10 devices report their status (RR501 is one) so this feature is mostly useful for determining which X10 house/unit codes are in use.
mochad watching PL and RF packets for ON/OFF commands.
The last section starts with "Security sensor status".
Sensor addr: 569E80 Last: 39:09 Motion_normal_MS10A
This means an update from an MS10A was received 39 minutes and 09 seconds ago. The MS10A is in its normal (no motion detected) state. The sensor address is 569E80.
Sensor addr: 9FAA00 Last: 50:02 Contact_alert_min_DS10A
This means an update from a DS10A was received 50 minutes and 02 seconds ago. The DS10A is in its alert (door or window open) state. The sensor address is 9FAA00.
The last section is ends with "End status".
Event Messages
mochad sends the following event messages to all TCP clients when the CM15A/CM19A controller receives or sends on PL or RF.
Receive event messages
For example, the A1 ON button is pressed on an RF remote control (KR19A) and the RF packet is received by a CM15A. The following receive (Rx) event message will be sent to all clients.
12/17 01:24:04 Tx RF HouseUnit: A1 Func: On
Power Line
mm/dd hh:mm:ss Rx PL HouseUnit: <H><U>
mm/dd hh:mm:ss Rx PL House: <H> Func: All units off
mm/dd hh:mm:ss Rx PL House: <H> Func: All lights on
mm/dd hh:mm:ss Rx PL House: <H> Func: On
mm/dd hh:mm:ss Rx PL House: <H> Func: Off
mm/dd hh:mm:ss Rx PL House: <H> Func: Dim <Dims>
mm/dd hh:mm:ss Rx PL House: <H> Func: Bright <Dims>
mm/dd hh:mm:ss Rx PL House: <H> Func: Ext code 1 Data: <Xdims> Command: 31
mm/dd hh:mm:ss Rx PL House: <H> Func: All lights off
mm/dd hh:mm:ss Rx PL House: <H> Func: Status on
mm/dd hh:mm:ss Rx PL House: <H> Func: Status off
mm/dd hh:mm:ss Rx PL House: <H> Func: Status request
Radio Frequency
mm/dd hh:mm:ss Rx RF House: <H><U> Func: On
mm/dd hh:mm:ss Rx RF House: <H><U> Func: Off
mm/dd hh:mm:ss Rx RF House: <H><U> Func: Dim
mm/dd hh:mm:ss Rx RF House: <H><U> Func: Bright
RF Security
Older devices send an 8 bit address.
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Arm_Home_min_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Arm_Away_min_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Arm_Home_max_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Arm_Away_max_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Disarm_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Panic_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Lights_On_SH624
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr8> Func: Lights_Off_SH624
Newer devices send a 17 bit address.
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Motion_alert_MS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Motion_normal_MS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_alert_min_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_normal_min_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_alert_max_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_normal_max_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_alert_min_low_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_normal_min_low_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_alert_max_low_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Contact_normal_max_low_DS10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Arm_KR10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Disarm_KR10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Lights_On_KR10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Lights_Off_KR10A
mm/dd hh:mm:ss Rx RFSEC Addr: <Secaddr17> Func: Panic_KR10A
RF Camera
mm/dd hh:mm:ss Rx RFCAM <H> CAMUP
mm/dd hh:mm:ss Rx RFCAM <H> CAMDOWN
mm/dd hh:mm:ss Rx RFCAM <H> CAMLEFT
mm/dd hh:mm:ss Rx RFCAM <H> CAMRIGHT
mm/dd hh:mm:ss Rx RFCAM <H> CAMCENTER
mm/dd hh:mm:ss Rx RFCAM <H> CAMSWEEP
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET1
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET2
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET3
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET4
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET5
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET6
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET7
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET8
mm/dd hh:mm:ss Rx RFCAM <H> CAMPRESET9
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET1
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET2
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET3
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET4
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET5
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET6
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET7
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET8
mm/dd hh:mm:ss Rx RFCAM <H> CAMEDITPRESET9
Transmit event messages
When a command is processed resulting in the controller sending on PL or RF, a transmit (Tx) event message is generated identical the messages in the previous section except Rx is replaced with Tx.
For example, a client sends the command "pl a1 on\n". All clients will receive notification that the CM15A transmitted via the following two lines.
12/17 01:19:50 Tx PL HouseUnit: A1 12/17 01:19:50 Tx PL House: A Func: On