[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: translation question



nobody@xxxxxxxxxxxx (Dave Houston) wrote:

>It will simplify things for the translators if the X-10 codes which are to
>be translated to/from Insteon or UPB are segregated by housecode with any
>specific housecode limited to 100% X-10 devices or to Insteon and/or UPB
>devices.

To add a bit of background, the BX24-AHT was designed so users could decide
what action to take in response to X-10 RF commands. Anyone interested in
this discussion who is not already familiar with the earlier device can read
the users manual which Jeff Volp has on his web site at...

     http://jeffvolp.home.att.net/bx24-aht/manual.pdf

Most of the X-10 RF commands include both the Address and Function in a
single code which, measuring from the start of the first copy of the RF
code, takes <75ms to receive and decode. Most RF devices send 5 copies of
the RF code which takes about 525ms. There is ample time (usually ~450ms) to
do a lookup and decide whether to take any user programmed action or just
send the default X-10 PLC code.

Translating X-10 PLC commands originating from a controller like the JDS
Stargate (or any other controller that was designed to interface with a
TW523) into Insteon, UPB or other commands is significantly different. There
are separate commands for the address and function, both take far longer to
transmit and there's not much time between codes to do lookups, etc.

Limiting the discussion to standard codes, it takes 22 half cycles of the
powerline to transmit a single copy of a code. Two copies are transmitted.
The earliest that the translator can know the address is 183ms after the
initiation of the code. It takes another 183ms for the controller to
transmit the second copy of the PLC code. Then (usually) there's a 6
half-cycle gap (50ms) followed by the function code which, again takes 183ms
for each of the 2 copies.

If all addresses are "in play", the translator has to wait until half-way
through the function code to do its lookup. If the desired action is to
merely send the command to the powerline "as is", it means that all X-10
commands are delayed by 600ms or more. Someway to shortcut this is
necessary. It's desirable to make the transmit/translate decision much
earlier in the process.

Both Insteon and UPB codes resemble X-10 RF codes more than they resemble
X-10 PLC codes. They include the address, function and (usually) the level
in a single command. There is no easy 1:1 correspondence between them and
X-10 PLC codes so whatever methodology is employed to translate is going to
be somewhat artificial and awkward.

Assigning Insteon and/or UPB devices to unused housecodes simplifies things
but also introduces some restrictions. The translator is going to perform
only minimal logic operations on the codes. It will mostly just present them
as received as shown below.

02/25/06 09:01:21 <T1:06 06                  'A1 from Stargate
02/25/06 09:01:22 >T2:06 06                  'A1 to TW523
02/25/06 09:02:27 <S1:65 3B 24 1E            'RF Thermostat input
02/25/06 09:07:03 <S2:2D 22 04 FB			'X-10 Security RF code input

Users will be able to assign default actions and specific actions for
specific inputs on a port by port basis for the serial ports and on a
housecode basis for the TW523 ports.

The translator can know that it should transmit an incoming TW523 code "as
is" as soon as it has the housecode which is halfway through the first copy
of the code. For the Insteon/UPB housecodes it can do its lookup as soon as
it has the first code. It can transmit all PLC codes (X-10, Insteon & UPB)
with a minimal delay.

It will be necessary to add delays in the controller program to allow time
for the translator to do its thing. I suspect that most of the controller
program will get moved to the translator with minimal inputs from the
controller.

The biggest problem is that there may not be enough unused X-10 housecodes.
The simplest way to organize the traslation is to assign an Insteon "state"
to an X-10 address or function code. For example, A1 could mean to set an
Insteon controlled light to a specific level. This means there will only be
32 possibilities for each housecode. If a controller can send extended X-10
codes, they can increase the total and also lend themselves to a more 1:1
relationship with Insteon & UPB codes.



comp.home.automation Main Index | comp.home.automation Thread Index | comp.home.automation Home | Archives Home