Home AMX User Forum AMX General Discussion

GE ITI Advent Panel Problems

I wonder if anybody out there has used the PASSTHRU= command with the GE ITI Abvent Security Panel. I am trying to emplement the keyfob command functionality which is not part of the AMX ITI module, but is described in the ITI protocol docummentation included with the module. The docummentation states that the module adds the required start transmit byte and checksum for all commands. The panel is working fine with the commands from the module, but in order to do the ARMHOME, ARMAWAY, DISARM functions, we need to include the security system CODE in the Netlinx code what can be a serious security breach. I have used this same panel 5 years ago with Landmark and they did a good job on the zoom file by including all the keyfob commands.

The command format from the ITI protocol is:

[LI] 40h [PN] [AN] [KP1]...[Kpn] [CS]

LI = last index (4+ number of keys)
40h = keypress command
PN = Partition Naumber
AN = Area Number
kp1...KPn = key press 1 through n (in my case only one key)
CS = Checksum (Which is calculated automaticaly by the module)

Sample Key commands from ITI protocol:
21h = keyfob arm
20h = keyfob disarm

Note: all this information is on page 40 of the ITI protocol


I tried: send_command vdvDevice, "'PASSTHRU =', $05,$40,$01,$00,$20" as described on the module documentation but it does not work.





  • Options
    GSLogicGSLogic Posts: 562
    In Netlinx try using the "Diagnostics/Control a Device" window to test your commands. This is much faster than having to reboot the master to test new commands. (As you probably know) Set the device address, port and the system number to 1 unless you've changed it.

    Try sending: PASSTHRU = $05,$40,$01,$00,$20 without any single or double quotes then try just single quotes. Some older modules look at the PASSTHRU command differently.
  • Options
    Thanks for the reply. I do use the "Diagnostics/Control a Device" window to test my commands and I do have communications between the module and GE ITI security panel and 4 G4 panels. The problem I am having is with the PASSTHROU= commands, which I haven't had lucky yet. If anybody out there has used the PASSTHROU = commands with the panel please let me know. Maybe there is something I am missing. With a single example I can figure out all the rest. Again, the reason to use the PASSTHROU commands is to avoid using the MODULE ARM and DISARM commands, which need the security system access code to work, which can be a big security breach, since the alarm code will be visible through the Netlinx's code. Thanks,

  • Options
    Not trying to state the obvious, but... syntax is everything.
    There have been some inconsistencies in your posts about the command you've tried.


    No space between "U" and "=".
    THRU, not THROU.

    Just an observation.
    I have used the passthru command successfully with other equipment and modules.
  • Options
    Sorry, I mistyped PASSTHRU= in the previous message, but I am using it correctly with the module. I have also used the PASSTHRU= successfully with other equipment and modules, but haven't had success with the GE ITI module yet and I am just asking everybody out there for a little help. Thanks,

  • Options
    Check the COMM document caerfully, I was having a similar issue with passing thru commands via a Duet module. After further inspection the command was clearly stated as PASSTHRU- not PASSTHRU= just a hunch.
  • Options
    Thanks, but in this case PASSTHRU= is the correct syntax. I can see it being processed when I use CONTROL A DEVIVE with ENABLE ASYCHRONOUS NOTIFICATIONS on.

    What I need help with is to format a correct string from the ITI RS-232 protocol which is included with the downloaded module (page 40). I followed the module instructions and it doesn't work. I am trying PASSTHRU=$40,$01,$00,$21 for the arm keypad function but no luck.

    Again, the way the module is set up, you need to code the security system alarm code in Netlinx in order for it to work, what I think is a SERIOUS BREACH OF SECURITY. I wish the name and e-mail of the AMX engineer that worked in the last revision of the module would be available in the module docummentation. Since in the last revision (v3.2) of 6/11/04, they implemented the PASSTHRU= capability, they should have tested it and know the correct syntax to use it. I am hoping somebody out there who used the module to help me on this. Thanks again for all of your input,

  • Options
    Spire_JeffSpire_Jeff Posts: 1,917

    First a posibility, Have you tried sending everything as ascii? "'PASSTHRU=','40','01','00','21'" //split for readability

    I just looked at the documentation and found the following:
    An 8-bit binary value is sent as two upper-case ASCII digits (?0?...?9?, ?A?...?F?).

    To expand the 8 bit binary value 3Ch into its ASCII representation:

    Send ASCII '3' (33h)
    Send ASCII 'C' (43h)

    NOTE: Control characters (ACK, NAK, and LF) are sent as a single byte, and not converted into ASCII pairs.

    The use of control characters and ASCII data permits software flow control. Only sixteen ASCII characters '0'...'9', 'A'...'F' are used to transfer "data." If binary data were transmitted, the use of hardware flow control, timing specifications, or a byte-stuffing scheme would be required. The control characters and ASCII data protocol was chosen because its advantage in simplicity outweighs the slight loss of efficiency.

    My interpretation of this is would be to use ASCII chars to form the hex values.

    Hope this helps,
  • Options

    I tried your recommendation but didn't work either. here is what the ENABLE ASYCHRONOUS NOTIFICATIONS shows when I send the command below:
    SEND_COMMAND vdvITIAdvent,"'PASSTHRU=','40','01','00','20'"

    Notification window shows:

    Line 2 :: Command To [33005:1:1]-[PASSTHRU=40010020] - 12:45:24
    Line 3 :: String To [5001:5:1]-[$0A09343030313030323090] - 12:45:24
    //Module is processing the passthru, but command is incorrect

    This is a valid command proceed by the module:

    Line1 :: Command To [33005:1:1]-[KPBTN=1:J] - 12:50:51
    Line2 :: String To [5001:5:1]-[$0A05400100145A] - 12:50:51
    //Module processed correctly the command

    By playing with this for hours, I was able to find out that the J character sent through the module using the KPBTN=1:J disarms the system. However, there are a number of other commands that are not implemented through the module that require the PASSTHRU and ITI protocol. Note the following, and see if you can come up with any ideas:
    [$0A09343030313030323090] - when trying the PASSTHRU
    [$0A05400100145A] - Successfull command processed by the module

    0A = Start transmit, present in all commands through module and PASSTHRU
    05 = LI (Last Index / 4+number of keys / as noted on p.40 of protocol)
    40 = (Keypress Command (40h) / as noted on p.40 of protocol)
    01 = (Partition Number = 01)
    00 = (Area Number = 00, since system is set as partitions)
    14 = (Ascii of 20h)
    5A = (??? - Maybe Checksum of all preceding bytes in the message)

    I hope you can see a correlation, which my brain is missing after working hours on this. Thanks a lot for trying to help me,

  • Options
    DHawthorneDHawthorne Posts: 4,584
    Forget about the passthrough and send the raw command strings to the device. It looks to me like the module isn't processing them properly anyway - if you know what they are supposed to look like, send them direct.

    As an aside, I would never offer a customer a disarm function through a contol interface, I would insist they need to be on site at the alarm keypad to disarm the system. As secure as you can make it, it only opens up one more avenue by which customer error can make the system vulnerable. I would just as well not be the means by which such a vulnerability was exposed.
  • Options
    Joe HebertJoe Hebert Posts: 2,159
    Note the following, and see if you can come up with any ideas:
    [$0A09343030313030323090] - when trying the PASSTHRU
    [$0A05400100145A] - Successfull command processed by the module
    Hi Ricardo,

    In order to get:

    Send the following in code:
    SEND_COMMAND vdvITIAdvent, "'PASSTHRU=',$40,$01,$00,$14"

    Or as a quick test SEND the following COMMAND to the vdv in Control a Device? (make sure String Expression is checked)

    If you look in the notifications window (a great tool) you will see:
    Line 3 :: Command To [33001:1:702]-[PASSTHRU=@$01$00$14] - 23:32:09
    Line 4 :: Command From [33001:1:702]-[PASSTHRU=@$01$00$14] - 23:32:09
    Line 5 :: String To [5001:1:702]-[$0A05400100145A] - 23:32:09

    The PASSTHRU command of the module is not a true PASSTHRU command (at least not in my mind.) Aside from adding on the $0A at the beginning of the command and calculating and appending the checksum (which the module doc says it does) it also looks like it is calculating the LI byte and converting the hex bytes to the 2 byte ASCII representation. Hardly a PASSTHRU but hopefully you should be able to get up and running now that you have a working example.

    <soapbox>IMHO a PASSTHRU should do just that. The module should send the command to the device exactly as I pass it. Don?t tack on any headers or don?t append checksums for me or don?t do anything else. Just send it. The only thing the module should be responsible for is to queue the command and that?s it.</soapbox>

    I would avoid doing a SEND_STRING to dvITIAdvent directly if at all possible since it could step on polling commands that the module sends.

    Let us know if we have a happy ending. :)
  • Options

    Thanks a lot for getting back to me. I just had a nasal septo deviation surgery yesterday and when I get back to my office next week, I will try your recommendation on a NI-4000 and a GE ITI Abvent panel currently connected in my office for testing. Thanks again,

  • Options
    Thanks a lot Joe. Your PASSTHRU command recommendation works. I just have one more question, I keep getting the message below sent to the NI serial port where the ITI module is assigned every 4 seconds:

    Line 1 :: String To [5001:5:1]-[$06] - 11:32:19
    Line 2 :: String To [5001:5:1]-[$06] - 11:32:23
    Line 3 :: String To [5001:5:1]-[$06] - 11:32:27
    Line 4 :: String To [5001:5:1]-[$06] - 11:32:31
    Line 5 :: String To [5001:5:1]-[$06] - 11:32:35
    Line 6 :: String To [5001:5:1]-[$06] - 11:32:39
    Line 7 :: String To [5001:5:1]-[$06] - 11:32:43

    I have the code block below in my code that should kill the keep alive hearbeat timeline, but it looks like it is not working. Any ideas why am I getting the 'String To [5001:5:1]-[$06]' every 4 seconds.

    WAIT 10
    SEND_COMMAND vdvITIAdvent, 'DEBUG=0'

    //SEND_COMMAND vdvITIAdvent, 'MODE=1'



    Let me know what you think. Thanks,

  • Options
    Joe HebertJoe Hebert Posts: 2,159
    I have the code block below in my code that should kill the keep alive hearbeat timeline, but it looks like it is not working. Any ideas why am I getting the 'String To [5001:5:1]-[$06]' every 4 seconds.
    According to the documentation the command you are sending looks correct. I did notice in the supplied UI module that the ?KILL_TIMELINE=1' is commented out. Do you get back a ?KILL_TIMELINE=1:0? from the module when you send the ?KILL_TIMELINE=1' command? If not then maybe the command isn?t working properly and that?s why it?s commented out. That?s just a pure guess on my part since I?ve never used the panel before.

    Glad to see you are feeling better and back to work. Sorry I couldn?t be of more help.
  • Options
    I have sent the following message to AMX and I am posting it here as well just in case anyone of you guys have any ideas.

    To AMX Tech,

    I was able to use the Diagnostics tool on the NI-4000 / GE ITI Abvent Panel and capture the strings below, which show that every 4 seconds the NI-4000 receives the "$A,'0322052A'" from the panel. I hope this helps you on identifying a possible problem in the module KILL_TIMELINE command. Let me know when it is a good time to contact you. Thanks,

    Ricardo W. Siqueira
    Advanced Anomaly

    09/02/2005 07:28:39.800 RECV STRING[5001:5:1] Type=CHAR Length=9 "$A,'0322052A'"
    09/02/2005 07:28:39.804 SEND STRING[5001:5:1] Type=CHAR Length=1 "$6"
    09/02/2005 07:28:43.763 RECV STRING[5001:5:1] Type=CHAR Length=9 "$A,'0322052A'"
    09/02/2005 07:28:43.771 SEND STRING[5001:5:1] Type=CHAR Length=1 "$6"
    09/02/2005 07:28:47.746 RECV STRING[5001:5:1] Type=CHAR Length=9 "$A,'0322052A'"
    09/02/2005 07:28:47.756 SEND STRING[5001:5:1] Type=CHAR Length=1 "$6"
    09/02/2005 07:28:51.760 RECV STRING[5001:5:1] Type=CHAR Length=9 "$A,'0322052A'"
    09/02/2005 07:28:51.765 SEND STRING[5001:5:1] Type=CHAR Length=1 "$6"
    09/02/2005 07:28:55.794 RECV STRING[5001:5:1] Type=CHAR Length=9 "$A,'0322052A'"
    09/02/2005 07:28:55.799 SEND STRING[5001:5:1] Type=CHAR Length=1 "$6"
    09/02/2005 07:28:59.767 RECV STRING[5001:5:1] Type=CHAR Length=9 "$A,'0322052A'"
  • Options
    The Diagnostics strings you sent us - they show the Advent polling the AMX system, and AMX responding to the poll with an ack ($06).
    Turning off the ACKALL flag doesn't mean the AMX system won't ack any message from the Advent, it just means it won't ack messages indiscriminately - as it apparently did in the earliest versions of this code.

    The heartbeat timeline is turned off, otherwise you would see addition ack's from AMX not necessarily in sync with these.

    This appears to be normal operation...unless you are having other symptoms, these acks should remain.
    Does the Advent appear to be functioning normally?
Sign In or Register to comment.