MarkJames Posted July 6, 2016 Posted July 6, 2016 (edited) Sorry if this seems a tad lazy but I'm trying to write the event handler for the different kinds of data that Elk can send. I'm reading through the ISY-WS-SDK-ELK.pdf and it has all the 'basic' actions and node names but when it gets to the detailed info it says 'elkobjs.xsd' schema which I can't find. So far I've been picking it apart by watching the websocket data that scrolls by and making notes of what happens when each action is performed but that's a slow and plodding way to do it. I've also downloaded the Elk M1 RS232 protocol but it has an overwhelming amount of info that a) I don't need and 2) is in 'physical format' (ie bitwise values that I'm expected to OR/AND) rather than logical Is there a resource somewhere that has a reference for what the websocket is sending me from Elk - something like 'ze" type '51' has the zone and status 0-7? or what the ae type 2 and 3 are and why there doesn't seem to be a type 1 value? Thanks in advance, mark Edited July 6, 2016 by MarkJames
Scottmichaelj Posted July 6, 2016 Posted July 6, 2016 Can you give us a snippet of what your looking at. My first thought would be those are zone definitions possibly but without more info who knows. You have a link to the resources your referring too? Ill have a look and if need be contact my Elk support tech for insight too. BTW what are you trying to do with this info once you have it?
MarkJames Posted July 6, 2016 Author Posted July 6, 2016 (edited) Well, the code looks something like this case "_19": // Elk event action = data.getElementsByTagName("action")[0].childNodes[0].nodeValue; switch (action) { case "1": console.log("Topology change"); break; case "2": console.log("Area Event"); var eventInfo = data.getElementsByTagName("eventInfo")[0]; if (eventInfo.getElementsByTagName("ae")[0].getAttribute("type") == "2") { // type 2 var thisArea = eventInfo.getElementsByTagName("ae")[0].getAttribute("area"); areaArray[thisArea][0] = eventInfo.getElementsByTagName("ae")[0].getAttribute("val"); } if (eventInfo.getElementsByTagName("ae")[0].getAttribute("type") == "3") { // type 3 var thisArea = eventInfo.getElementsByTagName("ae")[0].getAttribute("area"); areaArray[thisArea][1] = eventInfo.getElementsByTagName("ae")[0].getAttribute("val"); } displayElkStatus(); break; case "3": // zone event var eventInfo = data.getElementsByTagName("eventInfo")[0]; if (eventInfo.getElementsByTagName("ze")[0].getAttribute("type") == "51") { elkZoneStatus(eventInfo.getElementsByTagName("ze")[0].getAttribute("zone"),eventInfo.getElementsByTagName("ze")[0].getAttribute("val")); } break; function elkZoneStatus(thisZone,zoneVal) { for (var i=0; i<zoneList.length; i++) { if (zoneList[i][0] == thisZone) { var elementID = "#"+zoneList[i][1]; switch (zoneVal) { case "0": statusText="Normal"; buttonType = "btn btn-success btn-xs"; break; case "1": statusText="Trouble"; buttonType = "btn btn-danger btn-xs"; break; case "2": statusText="Violated"; buttonType = "btn btn-danger btn-xs"; break; case "3": statusText="Bypass"; buttonType = "btn btn-warning btn-xs"; break; } $(elementID).text(statusText); $(elementID).prop("class",buttonType); } } } The websocket interface sends an xml tag with different attributes - ae for area event, ze for zone event, ke for keyboard event etc. But what it sends after that is dependent on the nature of what it's doing - for instance if it's sending a ze zone event then it sends an xml with type and value. The type for all zone changes is 51 and the value is 0 for normal, 1 for trouble, 2 for violated, 3 for bypassed and I imagine there are other values too. I'm just looking for a reference for all these values. ISY has these as the ISY Elk interface handles them all - so they're out there somewhere - I just can't find them and I'm trying not to re-invent the wheel. Thanks, mark Edited July 6, 2016 by MarkJames
Michel Kohanim Posted July 6, 2016 Posted July 6, 2016 Hi Mark, elkobs.xsd is in WSDK zip file inside the WSDL directory: https://www.universal-devices.com/isy-developers/ With kind regards, Michel
MarkJames Posted July 6, 2016 Author Posted July 6, 2016 Ahhh - there it is! Thanks so much - that will save me literally HOURS! mark
MarkJames Posted July 6, 2016 Author Posted July 6, 2016 Sweet mother of god there's a lot of info in that xsd. You guys at UDI must have spent DAYS compiling this schema. I seem to recall whining about how long it was taking to get an Elk module. I'd like to retroactively apologize Thanks! mark
MarkJames Posted July 7, 2016 Author Posted July 7, 2016 Is there a way to read the Elk log? There's none documented in the ISY-WS-SDK-ELK.pdf. mark
Michel Kohanim Posted July 8, 2016 Posted July 8, 2016 Hi Mark, There's no ELK log! With kind regards, Michel
MarkJames Posted July 8, 2016 Author Posted July 8, 2016 I'm not sure I understand... I look at the Elk log quite often. Are we talking about different things?
Michel Kohanim Posted July 8, 2016 Posted July 8, 2016 Hi Mark, I am not sure. Where do you get your logs from? With kind regards, Michel
MarkJames Posted July 8, 2016 Author Posted July 8, 2016 (edited) When you log in to the Elk through ElkRP there's a menu option for it but it's accessible to external applications as well. A few of the applications I've used to control the Elk can access the log. the mykeypad pro version in the android market does it. So does the UltraM1G plugin for homeseer. Here's a screen grab of the log from homeseer and one from Elk. I can also access it from my phone. It's very useful to access the log. When an alarm state happens in a multi-area home it's hard to tell where and why the alarm triggered. The log tells you everything you need to know. It's also great for tracking people entering and leaving the home - such as cleaners or repair people as it tells you which user armed/disarmed what and when. https://www.dropbox.com/s/1x5nwmbbu3xw9ru/elklog1.png?dl=0 https://www.dropbox.com/s/fs2d8y4yhl1y2pe/elklog2.png?dl=0 mark Edited July 8, 2016 by MarkJames
Michel Kohanim Posted July 8, 2016 Posted July 8, 2016 Hi Mark, That's what I thought. ISY does NOT have APIs to get ELK logs. With kind regards, Michel
MarkJames Posted July 8, 2016 Author Posted July 8, 2016 Any thoughts on how to pull the log from the Elk? I've dug through their serial interface and it seems that if you send it 09ld00100D6 The 09ld (lower case L, lower case D) tells it you want a log entry the 001 is the log entry index number - 1 is the first the 00 is unused the D6 is a checksum Then the Elk will respond with a dump of the information IN that log entry. It keeps up to 511 entries. I've confirmed this by connecting raw via Putty to my Elk on port 2101 and this works. I'm trying to get the data with javascript, though, and not having any success. I can't use ajax because it's port 2101 - it won't allow me to change ports because of 'same origin' policy. There are no TCP socket libraries for javascript that I can find and when I tried to open a websocket it appears that websockets are not supported by the Elk. Is there another way that you can think of? Or perhaps a redirect rule to send requests to my Elk IP to the Elk port? Thanks for your input, mark
MarkJames Posted July 9, 2016 Author Posted July 9, 2016 I figured this out. The answer lies with php. The following code will dump the first 25 lines of the Elk log. In my case the Elk lives at 192.168.0.170. I haven't tried yet but this should be able to be called from ajax and parsed into a useable log file. I leave this for whoever might come along with an interest in such things. mark <?php if(!($sock = socket_create(AF_INET, SOCK_STREAM, 0))) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Couldn't create socket: [$errorcode] $errormsg \n"); } if(!socket_connect($sock , '192.168.0.170' , 2101)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not connect: [$errorcode] $errormsg \n"); } $iter = 1; while($iter <= 25) { $pad = $iter < 10 ? "00" : "0"; $message = "09ld".$pad.$iter."00"; $message = $message . checksum($message) . "\r\n"; //Send the message to the server if( ! socket_send ( $sock , $message , strlen($message) , 0)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not send data: [$errorcode] $errormsg \n"); } //Now receive reply from server if(socket_recv ( $sock , $buf , 32 , MSG_WAITALL ) === FALSE) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not receive data: [$errorcode] $errormsg \n"); } echo $buf; $iter = $iter+1; } function checksum($transmitString) { $bytes = unpack("C*", $transmitString); $cc = 0; for($i = 1; $i <= sizeof($bytes); $i++) { $cc += $bytes[$i]; } $cc = ($cc ^ 255) + 1; $low = dechex($cc & 15); $high = dechex(($cc >> 4) & 15); $sum = strtoupper($high.$low); return $sum; } ?>
MWareman Posted July 9, 2016 Posted July 9, 2016 I figured this out. The answer lies with php. The following code will dump the first 25 lines of the Elk log. In my case the Elk lives at 192.168.0.170. I haven't tried yet but this should be able to be called from ajax and parsed into a useable log file. I leave this for whoever might come along with an interest in such things. mark <?php if(!($sock = socket_create(AF_INET, SOCK_STREAM, 0))) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Couldn't create socket: [$errorcode] $errormsg \n"); } if(!socket_connect($sock , '192.168.0.170' , 2101)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not connect: [$errorcode] $errormsg \n"); } $iter = 1; while($iter <= 25) { $pad = $iter < 10 ? "00" : "0"; $message = "09ld".$pad.$iter."00"; $message = $message . checksum($message) . "\r\n"; //Send the message to the server if( ! socket_send ( $sock , $message , strlen($message) , 0)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not send data: [$errorcode] $errormsg \n"); } //Now receive reply from server if(socket_recv ( $sock , $buf , 32 , MSG_WAITALL ) === FALSE) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not receive data: [$errorcode] $errormsg \n"); } echo $buf; $iter = $iter+1; } function checksum($transmitString) { $bytes = unpack("C*", $transmitString); $cc = 0; for($i = 1; $i <= sizeof($bytes); $i++) { $cc += $bytes[$i]; } $cc = ($cc ^ 255) + 1; $low = dechex($cc & 15); $high = dechex(($cc >> 4) & 15); $sum = strtoupper($high.$low); return $sum; } ?> That, is *very* cool! Mark, I *really* hope you are able to share more of what you are doing here. There are some extremely useful elements that absolutely should be put into a new HTML5 admin interface.... this being one of them (for Elk module owners!)
MarkJames Posted July 9, 2016 Author Posted July 9, 2016 Thanks Mike, The stumbling block was 'same origin policy'. Something about not being able to connect a socket to a different port or ip. I wonder if it would be possible with a similar technique that you used with the rest interface to get around this? Would proxypass allow for this? mark
MarkJames Posted July 9, 2016 Author Posted July 9, 2016 Here's an .xml of all the elk log events if someone needs them. I cut/pasted the text out of the elk RS-232 serial interface and converted it into xml. I can't find a place to add a file to my post so I'll just put it in a code block. If there's a way to simply add a file please let me know and I'll edit out the code block and attach the xml instead. It's kinda long as they track 386 unique log events mark <?xml version="1.0" encoding="UTF-8"?> <elkLogEvents> <Event> <EventID>1000</EventID> <EventDescription> No Event </EventDescription> </Event> <Event> <EventID>1001</EventID> <EventDescription> FIRE ALARM </EventDescription> </Event> <Event> <EventID>1002</EventID> <EventDescription> FIRE SUPERVISORY ALARM </EventDescription> </Event> <Event> <EventID>1003</EventID> <EventDescription> BURGLAR ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1004</EventID> <EventDescription> MEDICAL ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1005</EventID> <EventDescription> POLICE ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1006</EventID> <EventDescription> AUX1 24 HR, ANY AREA </EventDescription> </Event> <Event> <EventID>1007</EventID> <EventDescription> AUX2 24 HR, ANY AREA </EventDescription> </Event> <Event> <EventID>1008</EventID> <EventDescription> CARBON MONOXIDE ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1009</EventID> <EventDescription> EMERGENCY ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1010</EventID> <EventDescription> FREEZE ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1011</EventID> <EventDescription> GAS ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1012</EventID> <EventDescription> HEAT ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1013</EventID> <EventDescription> WATER ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1014</EventID> <EventDescription> ALARM, ANY AREA </EventDescription> </Event> <Event> <EventID>1015</EventID> <EventDescription> BURGLAR ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1016</EventID> <EventDescription> BURGLAR ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1017</EventID> <EventDescription> BURGLAR ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1018</EventID> <EventDescription> BURGLAR ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1019</EventID> <EventDescription> BURGLAR ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1020</EventID> <EventDescription> BURGLAR ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1021</EventID> <EventDescription> BURGLAR ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1022</EventID> <EventDescription> BURGLAR ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1023</EventID> <EventDescription> MEDICAL ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1024</EventID> <EventDescription> MEDICAL ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1025</EventID> <EventDescription> MEDICAL ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1026</EventID> <EventDescription> MEDICAL ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1027</EventID> <EventDescription> MEDICAL ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1028</EventID> <EventDescription> MEDICAL ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1029</EventID> <EventDescription> MEDICAL ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1030</EventID> <EventDescription> MEDICAL ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1031</EventID> <EventDescription> POLICE ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1032</EventID> <EventDescription> POLICE ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1033</EventID> <EventDescription> POLICE ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1034</EventID> <EventDescription> POLICE ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1035</EventID> <EventDescription> POLICE ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1036</EventID> <EventDescription> POLICE ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1037</EventID> <EventDescription> POLICE ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1038</EventID> <EventDescription> POLICE ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1039</EventID> <EventDescription> AUX1 24 HR IN AREA 1 </EventDescription> </Event> <Event> <EventID>1040</EventID> <EventDescription> AUX1 24 HR IN AREA 2 </EventDescription> </Event> <Event> <EventID>1041</EventID> <EventDescription> AUX1 24 HR IN AREA 3 </EventDescription> </Event> <Event> <EventID>1042</EventID> <EventDescription> AUX1 24 HR IN AREA 4 </EventDescription> </Event> <Event> <EventID>1043</EventID> <EventDescription> AUX1 24 HR IN AREA 5 </EventDescription> </Event> <Event> <EventID>1044</EventID> <EventDescription> AUX1 24 HR IN AREA 6 </EventDescription> </Event> <Event> <EventID>1045</EventID> <EventDescription> AUX1 24 HR IN AREA 7 </EventDescription> </Event> <Event> <EventID>1046</EventID> <EventDescription> AUX1 24 HR IN AREA 8 </EventDescription> </Event> <Event> <EventID>1047</EventID> <EventDescription> AUX2 24 HR IN AREA 1 </EventDescription> </Event> <Event> <EventID>1048</EventID> <EventDescription> AUX2 24 HR IN AREA 2 </EventDescription> </Event> <Event> <EventID>1049</EventID> <EventDescription> AUX2 24 HR IN AREA 3 </EventDescription> </Event> <Event> <EventID>1050</EventID> <EventDescription> AUX2 24 HR IN AREA 4 </EventDescription> </Event> <Event> <EventID>1051</EventID> <EventDescription> AUX2 24 HR IN AREA 5 </EventDescription> </Event> <Event> <EventID>1052</EventID> <EventDescription> AUX2 24 HR IN AREA 6 </EventDescription> </Event> <Event> <EventID>1053</EventID> <EventDescription> AUX2 24 HR IN AREA 7 </EventDescription> </Event> <Event> <EventID>1054</EventID> <EventDescription> AUX2 24 HR IN AREA 8 </EventDescription> </Event> <Event> <EventID>1055</EventID> <EventDescription> CO ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1056</EventID> <EventDescription> CO ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1057</EventID> <EventDescription> CO ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1058</EventID> <EventDescription> CO ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1059</EventID> <EventDescription> CO ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1060</EventID> <EventDescription> CO ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1061</EventID> <EventDescription> CO ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1062</EventID> <EventDescription> CO ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1063</EventID> <EventDescription> EMERGENCY ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1064</EventID> <EventDescription> EMERGENCY ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1065</EventID> <EventDescription> EMERGENCY ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1066</EventID> <EventDescription> EMERGENCY ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1067</EventID> <EventDescription> EMERGENCY ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1068</EventID> <EventDescription> EMERGENCY ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1069</EventID> <EventDescription> EMERGENCY ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1070</EventID> <EventDescription> EMERGENCY ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1071</EventID> <EventDescription> FREEZE ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1072</EventID> <EventDescription> FREEZE ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1073</EventID> <EventDescription> FREEZE ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1074</EventID> <EventDescription> FREEZE ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1075</EventID> <EventDescription> FREEZE ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1076</EventID> <EventDescription> FREEZE ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1077</EventID> <EventDescription> FREEZE ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1078</EventID> <EventDescription> FREEZE ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1079</EventID> <EventDescription> GAS ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1080</EventID> <EventDescription> GAS ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1081</EventID> <EventDescription> GAS ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1082</EventID> <EventDescription> GAS ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1083</EventID> <EventDescription> GAS ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1084</EventID> <EventDescription> GAS ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1085</EventID> <EventDescription> GAS ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1086</EventID> <EventDescription> GAS ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1087</EventID> <EventDescription> HEAT ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1088</EventID> <EventDescription> HEAT ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1089</EventID> <EventDescription> HEAT ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1090</EventID> <EventDescription> HEAT ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1091</EventID> <EventDescription> HEAT ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1092</EventID> <EventDescription> HEAT ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1093</EventID> <EventDescription> HEAT ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1094</EventID> <EventDescription> HEAT ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1095</EventID> <EventDescription> WATER ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1096</EventID> <EventDescription> WATER ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1097</EventID> <EventDescription> WATER ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1098</EventID> <EventDescription> WATER ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1099</EventID> <EventDescription> WATER ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1100</EventID> <EventDescription> WATER ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1101</EventID> <EventDescription> WATER ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1102</EventID> <EventDescription> WATER ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1103</EventID> <EventDescription> ANY ALARM IN AREA 1 </EventDescription> </Event> <Event> <EventID>1104</EventID> <EventDescription> ANY ALARM IN AREA 2 </EventDescription> </Event> <Event> <EventID>1105</EventID> <EventDescription> ANY ALARM IN AREA 3 </EventDescription> </Event> <Event> <EventID>1106</EventID> <EventDescription> ANY ALARM IN AREA 4 </EventDescription> </Event> <Event> <EventID>1107</EventID> <EventDescription> ANY ALARM IN AREA 5 </EventDescription> </Event> <Event> <EventID>1108</EventID> <EventDescription> ANY ALARM IN AREA 6 </EventDescription> </Event> <Event> <EventID>1109</EventID> <EventDescription> ANY ALARM IN AREA 7 </EventDescription> </Event> <Event> <EventID>1110</EventID> <EventDescription> ANY ALARM IN AREA 8 </EventDescription> </Event> <Event> <EventID>1111</EventID> <EventDescription> CODE LOCKOUT, ANY KEYPAD </EventDescription> </Event> <Event> <EventID>1112</EventID> <EventDescription> KEYPAD 01 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1113</EventID> <EventDescription> KEYPAD 02 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1114</EventID> <EventDescription> KEYPAD 03 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1115</EventID> <EventDescription> KEYPAD 04 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1116</EventID> <EventDescription> KEYPAD 05 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1117</EventID> <EventDescription> KEYPAD 06 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1118</EventID> <EventDescription> KEYPAD 07 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1119</EventID> <EventDescription> KEYPAD 08 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1120</EventID> <EventDescription> KEYPAD 09 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1121</EventID> <EventDescription> KEYPAD 10 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1122</EventID> <EventDescription> KEYPAD 11 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1123</EventID> <EventDescription> KEYPAD 12 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1124</EventID> <EventDescription> KEYPAD 13 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1125</EventID> <EventDescription> KEYPAD 14 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1126</EventID> <EventDescription> KEYPAD 15 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1127</EventID> <EventDescription> KEYPAD 16 CODE-LOCKOUT </EventDescription> </Event> <Event> <EventID>1128</EventID> <EventDescription> FIRE TROUBLE, ANY ZONE </EventDescription> </Event> <Event> <EventID>1129</EventID> <EventDescription> BURGLAR TROUBLE, ANY ZONE </EventDescription> </Event> <Event> <EventID>1130</EventID> <EventDescription> FAIL TO COMMUNICATE TROUBLE </EventDescription> </Event> <Event> <EventID>1131</EventID> <EventDescription> RF SENSOR LOW BATTERY TROUBLE </EventDescription> </Event> <Event> <EventID>1132</EventID> <EventDescription> LOST ANC MODULE TROUBLE </EventDescription> </Event> <Event> <EventID>1133</EventID> <EventDescription> LOST KEYPAD TROUBLE </EventDescription> </Event> <Event> <EventID>1134</EventID> <EventDescription> LOST INPUT EXPANDER TROUBLE </EventDescription> </Event> <Event> <EventID>1135</EventID> <EventDescription> LOST OUTPUT EXPANDER TROUBLE </EventDescription> </Event> <Event> <EventID>1136</EventID> <EventDescription> EEPROM MEMORY ERROR TROUBLE </EventDescription> </Event> <Event> <EventID>1137</EventID> <EventDescription> FLASH MEMORY ERROR TROUBLE </EventDescription> </Event> <Event> <EventID>1138</EventID> <EventDescription> AC FAILURE TROUBLE </EventDescription> </Event> <Event> <EventID>1139</EventID> <EventDescription> CONTROL LOW BATTERY TROUBLE </EventDescription> </Event> <Event> <EventID>1140</EventID> <EventDescription> CONTROL OVER CURRENT TROUBLE </EventDescription> </Event> <Event> <EventID>1141</EventID> <EventDescription> EXPANSION MODULE TROUBLE </EventDescription> </Event> <Event> <EventID>1142</EventID> <EventDescription> OUTPUT 2 SUPERVISORY TROUBLE </EventDescription> </Event> <Event> <EventID>1143</EventID> <EventDescription> TELEPHONE LINE FAULT TROUBLE</EventDescription> </Event> <Event> <EventID>1144</EventID> <EventDescription>RESTORE FIRE ZONE </EventDescription> </Event> <Event> <EventID>1145</EventID> <EventDescription> RESTORE FIRE SUPERVISORY ZONE </EventDescription> </Event> <Event> <EventID>1146</EventID> <EventDescription> RESTORE BURGLAR ZONE </EventDescription> </Event> <Event> <EventID>1147</EventID> <EventDescription> RESTORE MEDICAL ZONE </EventDescription> </Event> <Event> <EventID>1148</EventID> <EventDescription> RESTORE POLICE ZONE </EventDescription> </Event> <Event> <EventID>1149</EventID> <EventDescription> RESTORE AUX1 24 HR ZONE </EventDescription> </Event> <Event> <EventID>1150</EventID> <EventDescription> RESTORE AUX2 24 HR ZONE </EventDescription> </Event> <Event> <EventID>1151</EventID> <EventDescription> RESTORE CO ZONE </EventDescription> </Event> <Event> <EventID>1152</EventID> <EventDescription> RESTORE EMERGENCY ZONE </EventDescription> </Event> <Event> <EventID>1153</EventID> <EventDescription> RESTORE FREEZE ZONE </EventDescription> </Event> <Event> <EventID>1154</EventID> <EventDescription> RESTORE GAS ZONE </EventDescription> </Event> <Event> <EventID>1155</EventID> <EventDescription> RESTORE HEAT ZONE </EventDescription> </Event> <Event> <EventID>1156</EventID> <EventDescription> RESTORE WATER ZONE </EventDescription> </Event> <Event> <EventID>1157</EventID> <EventDescription> COMMUNICATION FAIL RESTORE </EventDescription> </Event> <Event> <EventID>1158</EventID> <EventDescription> AC FAIL RESTORE </EventDescription> </Event> <Event> <EventID>1159</EventID> <EventDescription> LOW BATTERY RESTORE </EventDescription> </Event> <Event> <EventID>1160</EventID> <EventDescription> CONTROL OVER CURRENT RESTORE </EventDescription> </Event> <Event> <EventID>1161</EventID> <EventDescription> EXPANSION MODULE RESTORE </EventDescription> </Event> <Event> <EventID>1162</EventID> <EventDescription> OUTPUT2 RESTORE </EventDescription> </Event> <Event> <EventID>1163</EventID> <EventDescription> TELEPHONE LINE RESTORE </EventDescription> </Event> <Event> <EventID>1164</EventID> <EventDescription> ALARM MEMORY, ANY AREA </EventDescription> </Event> <Event> <EventID>1165</EventID> <EventDescription> ALARM MEMORY, AREA 1 </EventDescription> </Event> <Event> <EventID>1166</EventID> <EventDescription> ALARM MEMORY, AREA 2 </EventDescription> </Event> <Event> <EventID>1167</EventID> <EventDescription> ALARM MEMORY, AREA 3 </EventDescription> </Event> <Event> <EventID>1168</EventID> <EventDescription> ALARM MEMORY, AREA 4 </EventDescription> </Event> <Event> <EventID>1169</EventID> <EventDescription> ALARM MEMORY, AREA 5 </EventDescription> </Event> <Event> <EventID>1170</EventID> <EventDescription> ALARM MEMORY, AREA 6 </EventDescription> </Event> <Event> <EventID>1171</EventID> <EventDescription> ALARM MEMORY, AREA 7 </EventDescription> </Event> <Event> <EventID>1172</EventID> <EventDescription> ALARM MEMORY, AREA 8 </EventDescription> </Event> <Event> <EventID>1173</EventID> <EventDescription> AREA ARMED </EventDescription> </Event> <Event> <EventID>1174</EventID> <EventDescription> AREA DISARMED </EventDescription> </Event> <Event> <EventID>1175</EventID> <EventDescription> AREA 1 ARM STATE </EventDescription> </Event> <Event> <EventID>1176</EventID> <EventDescription> AREA 2 ARM STATE </EventDescription> </Event> <Event> <EventID>1177</EventID> <EventDescription> AREA 3 ARM STATE </EventDescription> </Event> <Event> <EventID>1178</EventID> <EventDescription> AREA 4 ARM STATE </EventDescription> </Event> <Event> <EventID>1179</EventID> <EventDescription> AREA 5 ARM STATE </EventDescription> </Event> <Event> <EventID>1180</EventID> <EventDescription> AREA 6 ARM STATE </EventDescription> </Event> <Event> <EventID>1181</EventID> <EventDescription> AREA 7 ARM STATE </EventDescription> </Event> <Event> <EventID>1182</EventID> <EventDescription> AREA 8 ARM STATE </EventDescription> </Event> <Event> <EventID>1183</EventID> <EventDescription> AREA 1 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1184</EventID> <EventDescription> AREA 2 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1185</EventID> <EventDescription> AREA 3 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1186</EventID> <EventDescription> AREA 4 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1187</EventID> <EventDescription> AREA 5 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1188</EventID> <EventDescription> AREA 6 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1189</EventID> <EventDescription> AREA 7 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1190</EventID> <EventDescription> AREA 8 IS ARMED AWAY </EventDescription> </Event> <Event> <EventID>1191</EventID> <EventDescription> AREA 1 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1192</EventID> <EventDescription> AREA 2 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1193</EventID> <EventDescription> AREA 3 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1194</EventID> <EventDescription> AREA 4 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1195</EventID> <EventDescription> AREA 5 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1196</EventID> <EventDescription> AREA 6 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1197</EventID> <EventDescription> AREA 7 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1198</EventID> <EventDescription> AREA 8 IS ARMED STAY </EventDescription> </Event> <Event> <EventID>1199</EventID> <EventDescription> AREA 1 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1200</EventID> <EventDescription> AREA 2 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1201</EventID> <EventDescription> AREA 3 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1202</EventID> <EventDescription> AREA 4 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1203</EventID> <EventDescription> AREA 5 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1204</EventID> <EventDescription> AREA 6 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1205</EventID> <EventDescription> AREA 7 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1206</EventID> <EventDescription> AREA 8 IS ARMED STAY INSTANT </EventDescription> </Event> <Event> <EventID>1207</EventID> <EventDescription> AREA 1 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1208</EventID> <EventDescription> AREA 2 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1209</EventID> <EventDescription> AREA 3 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1210</EventID> <EventDescription> AREA 4 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1211</EventID> <EventDescription> AREA 5 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1212</EventID> <EventDescription> AREA 6 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1213</EventID> <EventDescription> AREA 7 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1214</EventID> <EventDescription> AREA 8 IS ARMED NIGHT </EventDescription> </Event> <Event> <EventID>1215</EventID> <EventDescription> AREA 1 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1216</EventID> <EventDescription> AREA 2 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1217</EventID> <EventDescription> AREA 3 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1218</EventID> <EventDescription> AREA 4 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1219</EventID> <EventDescription> AREA 5 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1220</EventID> <EventDescription> AREA 6 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1221</EventID> <EventDescription> AREA 7 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1222</EventID> <EventDescription> AREA 8 IS ARMED NIGHT INSTANT </EventDescription> </Event> <Event> <EventID>1223</EventID> <EventDescription> AREA 1 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1224</EventID> <EventDescription> AREA 2 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1225</EventID> <EventDescription> AREA 3 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1226</EventID> <EventDescription> AREA 4 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1227</EventID> <EventDescription> AREA 5 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1228</EventID> <EventDescription> AREA 6 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1229</EventID> <EventDescription> AREA 7 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1230</EventID> <EventDescription> AREA 8 IS ARMED VACATION </EventDescription> </Event> <Event> <EventID>1231</EventID> <EventDescription> AREA 1 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1232</EventID> <EventDescription> AREA 2 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1233</EventID> <EventDescription> AREA 3 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1234</EventID> <EventDescription> AREA 4 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1235</EventID> <EventDescription> AREA 5 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1236</EventID> <EventDescription> AREA 6 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1237</EventID> <EventDescription> AREA 7 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1238</EventID> <EventDescription> AREA 8 IS FORCE ARMED </EventDescription> </Event> <Event> <EventID>1239</EventID> <EventDescription> ZONE BYPASSED </EventDescription> </Event> <Event> <EventID>1240</EventID> <EventDescription> ZONE UNBYPASSED </EventDescription> </Event> <Event> <EventID>1241</EventID> <EventDescription> ANY BURGLAR ZONE IS FAULTED </EventDescription> </Event> <Event> <EventID>1242</EventID> <EventDescription> BURGLAR STATUS OF ALL AREAS </EventDescription> </Event> <Event> <EventID>1243</EventID> <EventDescription> AREA 1 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1244</EventID> <EventDescription> AREA 2 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1245</EventID> <EventDescription> AREA 3 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1246</EventID> <EventDescription> AREA 4 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1247</EventID> <EventDescription> AREA 5 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1248</EventID> <EventDescription> AREA 6 BURGLAR STATUS</EventDescription> </Event> <Event> <EventID>1249</EventID> <EventDescription> AREA 7 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1250</EventID> <EventDescription> AREA 8 BURGLAR STATUS </EventDescription> </Event> <Event> <EventID>1251</EventID> <EventDescription> AREA 1 CHIME MODE </EventDescription> </Event> <Event> <EventID>1252</EventID> <EventDescription> AREA 2 CHIME MODE </EventDescription> </Event> <Event> <EventID>1253</EventID> <EventDescription> AREA 3 CHIME MODE </EventDescription> </Event> <Event> <EventID>1254</EventID> <EventDescription> AREA 4 CHIME MODE </EventDescription> </Event> <Event> <EventID>1255</EventID> <EventDescription> AREA 5 CHIME MODE </EventDescription> </Event> <Event> <EventID>1256</EventID> <EventDescription> AREA 6 CHIME MODE </EventDescription> </Event> <Event> <EventID>1257</EventID> <EventDescription> AREA 7 CHIME MODE </EventDescription> </Event> <Event> <EventID>1258</EventID> <EventDescription> AREA 8 CHIME MODE </EventDescription> </Event> <Event> <EventID>1259</EventID> <EventDescription> AREA 1 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1260</EventID> <EventDescription> AREA 2 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1261</EventID> <EventDescription> AREA 3 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1262</EventID> <EventDescription> AREA 4 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1263</EventID> <EventDescription> AREA 5 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1264</EventID> <EventDescription> AREA 6 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1265</EventID> <EventDescription> AREA 7 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1266</EventID> <EventDescription> AREA 8 CHIME ALERT </EventDescription> </Event> <Event> <EventID>1267</EventID> <EventDescription> ENTRY DELAY, ANY AREA </EventDescription> </Event> <Event> <EventID>1268</EventID> <EventDescription> AREA 1 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1269</EventID> <EventDescription> AREA 2 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1270</EventID> <EventDescription> AREA 3 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1271</EventID> <EventDescription> AREA 4 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1272</EventID> <EventDescription> AREA 5 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1273</EventID> <EventDescription> AREA 6 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1274</EventID> <EventDescription> AREA 7 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1275</EventID> <EventDescription> AREA 8 ENTRY DELAY </EventDescription> </Event> <Event> <EventID>1276</EventID> <EventDescription> EXIT DELAY, ANY AREA </EventDescription> </Event> <Event> <EventID>1277</EventID> <EventDescription> AREA 1 EXIT DELAY</EventDescription> </Event> <Event> <EventID>1278</EventID> <EventDescription>AREA 2 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1279</EventID> <EventDescription> AREA 3 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1280</EventID> <EventDescription> AREA 4 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1281</EventID> <EventDescription> AREA 5 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1282</EventID> <EventDescription> AREA 6 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1283</EventID> <EventDescription> AREA 7 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1284</EventID> <EventDescription> AREA 8 EXIT DELAY </EventDescription> </Event> <Event> <EventID>1285</EventID> <EventDescription> AREA 1 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1286</EventID> <EventDescription> AREA 2 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1287</EventID> <EventDescription> AREA 3 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1288</EventID> <EventDescription> AREA 4 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1289</EventID> <EventDescription> AREA 5 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1290</EventID> <EventDescription> AREA 6 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1292</EventID> <EventDescription> AREA 8 EXIT DELAY ENDS </EventDescription> </Event> <Event> <EventID>1293</EventID> <EventDescription> AUTOMATIC CLOSING </EventDescription> </Event> <Event> <EventID>1294</EventID> <EventDescription> EARLY CLOSING </EventDescription> </Event> <Event> <EventID>1295</EventID> <EventDescription> CLOSING TIME EXTENDED </EventDescription> </Event> <Event> <EventID>1296</EventID> <EventDescription> FAIL TO CLOSE </EventDescription> </Event> <Event> <EventID>1297</EventID> <EventDescription> LATE TO CLOSE </EventDescription> </Event> <Event> <EventID>1298</EventID> <EventDescription> KEYSWITCH CLOSING </EventDescription> </Event> <Event> <EventID>1299</EventID> <EventDescription> DURESS </EventDescription> </Event> <Event> <EventID>1300</EventID> <EventDescription> EXCEPTION OPENING </EventDescription> </Event> <Event> <EventID>1301</EventID> <EventDescription> EARLY OPENING </EventDescription> </Event> <Event> <EventID>1302</EventID> <EventDescription> FAIL TO OPEN </EventDescription> </Event> <Event> <EventID>1303</EventID> <EventDescription> LATE TO OPEN </EventDescription> </Event> <Event> <EventID>1304</EventID> <EventDescription> KEYSWITCH OPENING </EventDescription> </Event> <Event> <EventID>1305</EventID> <EventDescription> AREA 1 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1306</EventID> <EventDescription> AREA 2 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1307</EventID> <EventDescription> AREA 3 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1308</EventID> <EventDescription> AREA 4 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1309</EventID> <EventDescription> AREA 5 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1310</EventID> <EventDescription> AREA 6 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1311</EventID> <EventDescription> AREA 7 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1312</EventID> <EventDescription> AREA 8 CLOSING RING BACK </EventDescription> </Event> <Event> <EventID>1313</EventID> <EventDescription> ACCESS KEYPAD 01 </EventDescription> </Event> <Event> <EventID>1314</EventID> <EventDescription> ACCESS KEYPAD 02 </EventDescription> </Event> <Event> <EventID>1315</EventID> <EventDescription> ACCESS KEYPAD 03 </EventDescription> </Event> <Event> <EventID>1316</EventID> <EventDescription> ACCESS KEYPAD 04 </EventDescription> </Event> <Event> <EventID>1317</EventID> <EventDescription> ACCESS KEYPAD 05 </EventDescription> </Event> <Event> <EventID>1318</EventID> <EventDescription> ACCESS KEYPAD 06 </EventDescription> </Event> <Event> <EventID>1319</EventID> <EventDescription> ACCESS KEYPAD 07 </EventDescription> </Event> <Event> <EventID>1321</EventID> <EventDescription> ACCESS KEYPAD 09 </EventDescription> </Event> <Event> <EventID>1322</EventID> <EventDescription> ACCESS KEYPAD 10 </EventDescription> </Event> <Event> <EventID>1323</EventID> <EventDescription> ACCESS KEYPAD 11 </EventDescription> </Event> <Event> <EventID>1324</EventID> <EventDescription> ACCESS KEYPAD 12 </EventDescription> </Event> <Event> <EventID>1325</EventID> <EventDescription> ACCESS KEYPAD 13 </EventDescription> </Event> <Event> <EventID>1326</EventID> <EventDescription> ACCESS KEYPAD 14 </EventDescription> </Event> <Event> <EventID>1327</EventID> <EventDescription> ACCESS KEYPAD 15 </EventDescription> </Event> <Event> <EventID>1328</EventID> <EventDescription> ACCESS KEYPAD 16 </EventDescription> </Event> <Event> <EventID>1329</EventID> <EventDescription> ACCESS ANY KEYPAD </EventDescription> </Event> <Event> <EventID>1330</EventID> <EventDescription> BEEP AREA 1 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1331</EventID> <EventDescription> BEEP AREA 2 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1332</EventID> <EventDescription> BEEP AREA 3 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1333</EventID> <EventDescription> BEEP AREA 4 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1334</EventID> <EventDescription> BEEP AREA 5 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1335</EventID> <EventDescription> BEEP AREA 6 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1336</EventID> <EventDescription> BEEP AREA 7 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1337</EventID> <EventDescription> BEEP AREA 8 KEYPAD(S) </EventDescription> </Event> <Event> <EventID>1338</EventID> <EventDescription> AREA 1 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1339</EventID> <EventDescription> AREA 2 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1340</EventID> <EventDescription> AREA 3 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1341</EventID> <EventDescription> AREA 4 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1342</EventID> <EventDescription> AREA 5 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1343</EventID> <EventDescription> AREA 6 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1344</EventID> <EventDescription> AREA 7 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1345</EventID> <EventDescription> AREA 8 EXIT ERROR </EventDescription> </Event> <Event> <EventID>1346</EventID> <EventDescription> AUDIO AMPLIFIER STATUS </EventDescription> </Event> <Event> <EventID>1347</EventID> <EventDescription> CONTROL POWER STATUS </EventDescription> </Event> <Event> <EventID>1348</EventID> <EventDescription> LIGHT </EventDescription> </Event> <Event> <EventID>1349</EventID> <EventDescription> DARK </EventDescription> </Event> <Event> <EventID>1350</EventID> <EventDescription> SECURITY (DAY) ALERT </EventDescription> </Event> <Event> <EventID>1351</EventID> <EventDescription> DIALER ABORT </EventDescription> </Event> <Event> <EventID>1352</EventID> <EventDescription> DIALER CANCEL </EventDescription> </Event> <Event> <EventID>1353</EventID> <EventDescription> DIALER AUTO TEST </EventDescription> </Event> <Event> <EventID>1354</EventID> <EventDescription> LOCAL PROGRAMMING </EventDescription> </Event> <Event> <EventID>1355</EventID> <EventDescription> LOCAL PROGRAMMING ENDS </EventDescription> </Event> <Event> <EventID>1356</EventID> <EventDescription> KEYSWITCH ZN TAMPER ALERT </EventDescription> </Event> <Event> <EventID>1357</EventID> <EventDescription> EVENT LOG, 80% FULL </EventDescription> </Event> <Event> <EventID>1358</EventID> <EventDescription> TELEPHONE LINE IS RINGING </EventDescription> </Event> <Event> <EventID>1359</EventID> <EventDescription> TELEPHONE LINE SEIZE </EventDescription> </Event> <Event> <EventID>1360</EventID> <EventDescription> TELEPHONE LINE OFF/ON HOOK </EventDescription> </Event> <Event> <EventID>1361</EventID> <EventDescription> TELEPHONE LOCAL ACCESS </EventDescription> </Event> <Event> <EventID>1362</EventID> <EventDescription> TELEPHONE REMOTE ACCESS </EventDescription> </Event> <Event> <EventID>1363</EventID> <EventDescription> REMOTE PROGRAMMING </EventDescription> </Event> <Event> <EventID>1364</EventID> <EventDescription> REMOTE PROGRAMMING ENDS </EventDescription> </Event> <Event> <EventID>1365</EventID> <EventDescription> AC FAIL TBL - POWER SUPV ZN </EventDescription> </Event> <Event> <EventID>1366</EventID> <EventDescription> LOW BATTERY TBL - POWER SUPV ZN </EventDescription> </Event> <Event> <EventID>1367</EventID> <EventDescription> SYSTEM START UP </EventDescription> </Event> <Event> <EventID>1368</EventID> <EventDescription> CONTROL LOW VOLTAGE SHUTDOWN </EventDescription> </Event> <Event> <EventID>1369</EventID> <EventDescription> RF KEYFOB BUTTON 1 </EventDescription> </Event> <Event> <EventID>1370</EventID> <EventDescription> RF KEYFOB BUTTON 2 </EventDescription> </Event> <Event> <EventID>1371</EventID> <EventDescription> RF KEYFOB BUTTON 3 </EventDescription> </Event> <Event> <EventID>1372</EventID> <EventDescription> RF KEYFOB BUTTON 4 </EventDescription> </Event> <Event> <EventID>1373</EventID> <EventDescription> RF KEYFOB BUTTON 5 </EventDescription> </Event> <Event> <EventID>1374</EventID> <EventDescription> RF KEYFOB BUTTON 6 </EventDescription> </Event> <Event> <EventID>1375</EventID> <EventDescription> RF KEYFOB BUTTON 7 </EventDescription> </Event> <Event> <EventID>1376</EventID> <EventDescription> RF KEYFOB BUTTON 8 </EventDescription> </Event> <Event> <EventID>1377</EventID> <EventDescription> LOST SERIAL PORT EXPANDER TROUBLE </EventDescription> </Event> <Event> <EventID>1378</EventID> <EventDescription> RULE TRIGGERED VOICE TELEPHONE DIAL </EventDescription> </Event> <Event> <EventID>1379</EventID> <EventDescription> DIALER REPORT CLEARED </EventDescription> </Event> <Event> <EventID>1380</EventID> <EventDescription> CENTRAL STATION KISSOFF </EventDescription> </Event> <Event> <EventID>1381</EventID> <EventDescription> TRANSMITTER SUPERVISION LOSS </EventDescription> </Event> <Event> <EventID>1382</EventID> <EventDescription> 2-WIRE SMOKE DET. CLEAN TRBL </EventDescription> </Event> <Event> <EventID>1383</EventID> <EventDescription> ETHERNET TROUBLE </EventDescription> </Event> <Event> <EventID>1384</EventID> <EventDescription> ETHERNET RESTORE </EventDescription> </Event> <Event> <EventID>1385</EventID> <EventDescription> RESTORE REMOTE AC POWER </EventDescription> </Event> <Event> <EventID>1386</EventID> <EventDescription> RESTORE REMOTE BATTERY </EventDescription> </Event> </elkLogEvents>
MWareman Posted July 9, 2016 Posted July 9, 2016 Thanks Mike, The stumbling block was 'same origin policy'. Something about not being able to connect a socket to a different port or ip. I wonder if it would be possible with a similar technique that you used with the rest interface to get around this? Would proxypass allow for this? mark I don't think it would - the Elk requests and responses are not http - and the Apache proxy mechanisms pretty much only work with the http protocol, without a module. A custom module for adding support for the Elk protocol would have to be written (just like there is a module for websockets).
MarkJames Posted July 9, 2016 Author Posted July 9, 2016 good point. The elk log requests are just listening to the TCP port. I tried it with simple get requests but it didn't work. makr
MarkJames Posted July 10, 2016 Author Posted July 10, 2016 And the final code is in and works - here's some screenshots https://www.dropbox.com/s/cv2yqc0da4z0s2r/log1.png?dl=0 https://www.dropbox.com/s/6vr6qujr8iekpd2/log2.png?dl=0 https://www.dropbox.com/s/aecdcsf2fj26671/log3.png?dl=0 Couldn't be more pleased!
MarkJames Posted July 10, 2016 Author Posted July 10, 2016 Thanks Mike, Still wrestling with the internal errors from the proxy. Been at it for a while now with no real success. I'll leave that for the websockets thread, though. mark
Recommended Posts