GE ITI Advent Panel Problems
RicardoSiqueira
Posts: 373
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
HOW SHOULD I FORMAT THE 'PASSTHRU' command?
I tried: send_command vdvDevice, "'PASSTHRU =', $05,$40,$01,$00,$20" as described on the module documentation but it does not work.
HELP PLEASE!
Thanks,
Ricardo
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
HOW SHOULD I FORMAT THE 'PASSTHRU' command?
I tried: send_command vdvDevice, "'PASSTHRU =', $05,$40,$01,$00,$20" as described on the module documentation but it does not work.
HELP PLEASE!
Thanks,
Ricardo
0
Comments
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.
Ricardo
There have been some inconsistencies in your posts about the command you've tried.
PASSTHRU=<string>
No space between "U" and "=".
THRU, not THROU.
Just an observation.
I have used the passthru command successfully with other equipment and modules.
Ricardo
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,
Ricardo
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:
My interpretation of this is would be to use ASCII chars to form the hex values.
Hope this helps,
Jeff
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,
Ricardo
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.
In order to get:
[$0A05400100145A]
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)
"'PASSTHRU=',$40,$01,$00,$14"
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.
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,
Ricardo
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.
DATA_EVENT[vdvITIAdvent]
{
ONLINE:
{
WAIT 10
{
// ENABLE DEBUGGING, DEFAULT IS 0
SEND_COMMAND vdvITIAdvent, 'DEBUG=0'
// PARTITION MODE=1, AREA MODE=2, DEFAULT IS 1
//SEND_COMMAND vdvITIAdvent, 'MODE=1'
// STOP 2 SECOND ACK TIMELINE
SEND_COMMAND vdvITIAdvent, 'KILL_TIMELINE=1'
// WILL SEND ACK AFTER EVERYTHING SENT FROM
// THE PANEL, DEFAULT IS 0
SEND_COMMAND vdvITIAdvent, 'ACKALL=0'
}
}
}
Let me know what you think. Thanks,
Ricardo
Glad to see you are feeling better and back to work. Sorry I couldn?t be of more help.
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'"
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?