I thought I'd round out this thread with some stuff I discovered along the way so that other folks will be able to find this info via search.
The IR543AH (all housecode version) does support extended commands. It does this in a slightly unexpected way though. Before I get into that, I should point out how the IR543AH and it's twin the 7243 accomplish "all housecode" operation.
On a normal IR543 non-AH version there is a small selector wheel on the top of the unit and this is used to set a single fixed housecode (A-P). All transmissions to the powerline use that single fixed housecode. There are no exceptions. An IR remote control transmits 1 of 32 possible functions to the IR543. The first 16 of these are the X10 unit codes. The second group of 16 are the function codes as detailed further up this thread. When the IR543 receives a unit code via IR, it dutifully marries that with the fixed housecode and transmits it to the powerline. Example; you have the housecode wheel set to housecode "G" and you press the "3" button on your IR remote (suitably config'd for X10 IR protocol) and the IR543 sends out a "G3" housecode/unitcode combo. Now at that point, the X10 module at address G3 begins listening attentively for a command. It will wait forever. There is no timeout.
Next you press "CH+" on your IR remote (mapped to the ON function) and the IR543 sees the "ON" function and marries that with the fixed housecode and sends out a GON. At which point, the module at G3 changes to the on state. You can of course, send out multiple unit codes and have all the modules at those addresses be waiting for a cmd. Once you do send a cmd, all modules that are waiting for a cmd, act on it. Example:
Press "1" and G1 is transmitted to the powerline
Press "5" and G5 is transmitted to the powerline
Press "7" and G7 is transmitted to the powerline
Press "CH-" and GOFF is transmitted to the powerline
At that point, all 3 modules turn off; G1, G5 and G7.
You can play tricks by sending dim cmds following multiple unitcodes and get simultaneous dimming, but it only works well if all lamps start at the same dim level.
What the IR543AH does differently, is that it lets you send an IR cmd that effectively changes the fixed housecode to one that is specified by the IR cmd. This does not get transmitted to the powerline at the time of reception, but is merely an over-ride of the fixed housecode wheel setting. It will stay in effect until the next housecode change cmd is received via IR. The IR cmd that changes housecode is formatted as follows in Makehex IRP notation:
Function=0..15
Protocol=X10AH-Housecode
Frequency=40000
Time Base=650
One=7,-7
Zero=2,-13
Form=;*,F:4,~F:4,_
Prefix=8,-8
suffix=23,-8
This is identical to the unitcode/function code format except that it's only 4 bits of function instead of 5. This is already available in upgrade form in the file section under X10-hacked.
As discussed further up this thread, the standard IR543 supports the legacy preset dim 0 and 1 cmds, but they're marginally useful since the dim level must be sent as the housecode and that's a fixed value on the IR543. You do get 2 values since preset dim 0 covers one half of the dim range and preset dim 1 covers the other. PD0 is EFC 100 and PD1 is EFC 164. There is a table in the preceeding post, that outlines what dim levels correspond to what fixed housecodes.
Now with the IR543AH since we can change housecode at will, we can access the full range of 32 preset dim levels. Don't forget to change the housecode back to the normal setting after you've used a different housecode to do some preset dimming. Also bear in mind that far from all of the X10 protocol dimmers out there, will even respond to the preset dim cmds. Most if not all Switchlinc dimmers will, as will PCS dimmers. There are probably others. There is even a line of X10 protocol HVAC thermostat controllers that make extensive use of the preset dim cmds. In any case, here's an example of using preset dim with an IR543AH:
1. Press whatever button you have programmed on your IR remote to set housecode to "G". The IR543AH switches to housecode "G".
2. Press "1" and on reception of that, the IR543AH sends out a "G1" to the powerline.
3. Press "7" and on reception of that, the IR543AH sends out a "G7" to the powerline. Now both G1 and G7 are listening attentively for a cmd.
4. Press whatever button you have programmed on your IR remote to set housecode to "K". Nothing is sent to the powerline at this point.
5. Press whatever button you have programmed on your IR remote to send "PD1". On reception of that, the IR543AH will send out a KPD1 cmd to the powerline. That's housecode "K" and preset dim 1. Since housecode "K" corresponds to 39% dim level for PD1, both modules G1 and G7 immediately go to 39% dim level.
6. Press whatever button you have programmed on your IR remote to set housecode to "G". The IR543AH switches back to housecode "G" for all the following cmds.
Now that's all well and good, but the IR543AH has another trick up it's sleeve in that it supports true extended cmds. These allow preset dimming for modules that don't support the legacy preset dim cmds. This is actually the preferred method going forward.
From the document:
ftp://ftp.x10.com/pub/manuals/xtc798.doc
we can see that the format of an extended cmd is like so:
housecode 4 bits
functioncode 5 bits (XTC)
--------------------------
unitcode 4 bits
data 8 bits
cmd 8 bits
everything above the dotted line is part of any normal X10 cmd. The stuff below the dotted line is the 20 bits of extended info.
From the X10 document above, we can see that the interesting cmd with respect to preset dimming is type 3 with cmd 1 (preset receiver). Additionally, the data byte contains 6 bits of dim level setting. That's 64 possible levels.
Now, the 64,000 dollar question is; how do we get the IR543AH to send the full 29 bits of extended cmd and data out?
The full 29 bits must be sent in one shot with no gaps. The IR543AH does that by listening for a normal X10 IR protocol XTC cmd (EFC 167) and when it receives that, it waits to receive a specially formatted 9 bit IR transmission described in Makehex IRP notation like so:
Function=49
Protocol=X10AH-Housecode
Frequency=40000
Time Base=650
One=7,-7
Zero=2,-13
First Bit=MSB
Form=;*,F:8,0:1,~F:8,1:1,_
Prefix=8,-8
suffix=23,-8
This is simply the 8 bits of extended cmd along with a '1' bit that tells the IR543AH that this is a cmd and not data. The 9 bits are also sent in complement form. In our case, we want to send cmd 0x31, which is decimal 49.
Once the IR543 receives the extended cmd byte, it waits to receive the extended data byte that specifies the desired dim level. That is sent by the IR remote using the same exact protocol as the cmd shown above, but with the '1' bit now '0', telling the IR543AH that this is data and not a cmd. Finally, the IR543AH has all the info it needs to send out the whole 29 bit mess. So, its sends the entire 29 bits of housecode, XTC function, unitcode, data byte, cmd byte in one shot with no gaps. A module properly addressed by the housecode and unitcode, will respond to the extended preset dim cmd by changing dim level to the commanded value. I should point out that although the extended data byte has 8 bits, only the least significant 6 bits are used for dim level.
To summarize, the following IR cmds must be sent to get the IR543AH to send out an extended preset dim cmd:
1. IR remote must set the desired housecode per the IR543AH housecode protocol.
2. IR remote must send X10 IR protocol XTC (EFC 167)
3. IR remote must send the extended 8 bit function cmd plus 1 bit cmd specifier per the protocol described above. For our case, that's 0x31 + the '1' bit.
4. IR remote must send the extended 8 bit data plus 0 bit data specifier per the protocol described above. Only the 6 LSBs of the data are used.
The IR543AH having received all that, will marry the current 4 bit housecode setting with the 5 bit XTC cmd and send that out, followed immediately by the 4 bit unitcode, followed immediately by the 8 bit extended data, followed immediatley by the 8 bit extended cmd. There is no specific timing requirement on the reception of the IR codes. There can be a large gap between transmissions, as the IR543AH will wait until everything has been received, before sending anything out on the powerline.
There are numerous other fancy group cmds that can be sent via the IR543AH in the same manner. Refer to the X10 doc referenced above for details of these.
A.A.