The EZIOxx INSTEON and X10 Messages/Commands Data Sheet 2008-05-08T04:34:53+00:00

HOME Forums General Feedback to Smartenit The EZIOxx INSTEON and X10 Messages/Commands Data Sheet

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • Anonymous
    Post count: 6
    #39943 |

    I’m confused! I’ve studied the “Insteon Details” document by Smarthome.. It describes the Insteon standard-length command as consisting of 10 bytes. 3 for the ‘From’ address, 3 for the “To’ address, 1 “Flag byte, 2 “Command bytes and 1 “CRC” byte. Then I look at messages from an EZIO8SA as reported in my Homeseer’s log:

    1. 5/3/2008 12:45:31 AM ~!~Insteon_ExtDevSupport.vb~!~Received Insteon Data 04 0D 4F E1 09 48 19 20 4A 00
    2. 5/3/2008 12:45:31 AM ~!~Insteon_ExtDevSupport.vb~!~Received Insteon Data ACK 4A 00 04 0D 4F E1 09 48 19 20 4A 00

    These don’t make sense in context with the definition of a standard message. In number 1, there 10 bytes, but the ‘From’ address is bytes 2, 3 and 4, not 1, 2 and 3; the ‘To’ address is bytes 5, 6 and 7, not 4, 5 and 6; etc.. What does the “04” in the first byte represent? Message 2 is even more confusing, there are 15 bytes in it. What do they mean?

    Another thing that is confusing me is the “EZIOxx INSTEON and X10 Messages/Commands” Data Sheet. I don’t understand the meaning of the notation for the various commands. Example:

    Get Sensor Value SD 0x4A 0x00 – 0x03 Sensor Number ACK contains sensor value in Command 2

    “0x4A is a 2 byte hex number as is 0x00. I thought the Cmd1 and Cmd2 were one byte each. I am assuming that the ”x” indicates ‘Don’t Care’.

    Could please tell me where I can get information to clear up this puzzle.

    Thanks
    Bruce

    Anonymous
    Post count: 1001

    The CRC byte (Cyclic Redundancy Check) is used by low levels of hardware and firmware to validate the physical integrity of an Insteon message. It is not passed out as part of the raw Insteon message data, therefore does not appear in a message trace/log.

    The 0x indicates this is a hexadecimal value (base 16 number), compared to a decimal value (base 10 number). A single byte (8 bits) represented in hexadecimal has a range of 0x00 (decimal 0) to 0xFF (decimal 255). Each 4 bits has a range of 0-F (0-15 decimal), with possible values 0-9,A,B,C,D,E,F. Hexadecimal notation is used to show the full range of values possible in a single byte (8 bits).

    The initial 0x04 in your example 1. is not part of a standard-length message. This byte has several possible values. A 0x01 is a new message addressed to the PLC. A 0x02 is a new message not addressed to the PLC. A 0x03 is a duplicate message, where the raw data is generally not displayed. A 0x04 is an ACK message. A 0x05 is a NAK message. I’ve taken some liberties here but that is the general idea. Unless you are looking at Insteon network reliability, this value has little meaning when analyzing Insteon messages.

    Dissecting example 1. ………

    Received Insteon Data 04 0D 4F E1 09 48 19 20 4A 00

    04 – indicates an ACK message
    0D 4F E1 – from Insteon address
    09 48 19 – to Insteon address
    20 – flag byte – ACK of Direct Message
    4A – CMD1 – Get Sensor Value
    00 – CMD2 – Sensor value

    Example 2. appears to be the same message with some interpretation applied by Homeseer. Interpretation starting at flag byte; ACK 4A 00 acknowledge message for command 0x4A (cmd 1) with a sensor value 0f 0x00 (cmd 2); followed by the same raw message from example 1.

    Get Sensor Value SD 0x4A 0x00 – 0x03 Sensor Number ACK contains sensor value in Command 2

    Get Sensor Value – is the name of the command
    0x4A – Get Sensor command (CMD 1) – 1 byte – hexadecimal value 0x4A
    0x00-0x03 – possible CMD 2 values for a Get Sensor command – sensor number when command is issued
    – CMD 2 in the response (ACK) message is the sensor value

    That was a lot to cover. Feel free to post back additional questions if I did not cover everything.

    Anonymous
    Post count: 26

    I might just clarify, the “0x” is merely a prefix that means “The following number is hexadecimal.” It is not actually part of the number.

    The notation comes from programming languages like C++ that require “0x” in front of any number in order to be treated as hexadecimal.

    Anonymous
    Post count: 6

    I’ve been reading data sheets for more than thirty years and that’s the first time i’ve seen hex numbers expressed that way. Sometimes there are “Don’t Care” nibbles that are indicated by an “x” or there is an “H” preceeding the number or somewhere in the document there is a statement that numbers are expressed in hex. That info makes things much clearer.

    Since I don’t have the hardware or software to monitor the power line for INSTEON/X10 traffic, I can only rely on the data from the Homeseer log. Is the leading 04 in example 1 really transmitted by the EZIO8SA or is it added by Homeseer? One other question (for now anyway), What sensor is reported in the four possiblevalues of Cmd 2?

    Anonymous
    Post count: 26

    How is your copy of HomeSeer being connected to the powerline interface? Chances are, whatever you have has a serial port that can already be scoped out. Any time a PLM receives something from a device the PLM is linked to, it sends the command out the serial port(at 19200,n,8,1) without caring what hears it on the other end.

    Anonymous
    Post count: 1001

    The 04 is added by the firmware in the PLC based on the specific message received from the power line. I don’t know what sensors are being queried by the Get Sensor Value command. I was going to ask you that question. 🙂 The 1wire input is being expanded to handle more than a single 1wire device. The last post I saw on the subject said the 1wire multi sensor support was a few months away. Perhaps someone who has used the 1wire input can help with this. It might apply to the analog inputs operating in analog mode but there are only two of those.

    If Homeseer is using the normal PLC/sdm3 interface, there is a blue T icon in the system tray representing the sdm3 interface. Double clicking on that icon will open the sdm3 trace window.

    My first experience with hexadecimal numbers back in the 60’s was in the commercial environment and there we used x’00’ to represent a hex 00. Seems like the 0x00 format is popular in the consumer arena. I do use the x within the value to represent a “don’t care” value. The second x in 0xCx to me says the low order 4 bits are not related/relevant/important to what is being discussed.

    Anonymous
    Post count: 6

    That makes sense. I’ve not worked in any form of C whichis why I didn’t recognize the form. Goes to show that even us old folks can learn something every once-in-a-while.

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.