From 72a9d417ecc254301db044e1408b292fcf22a71d Mon Sep 17 00:00:00 2001 From: Sean Mathews Date: Sat, 16 Feb 2019 22:54:48 -0800 Subject: [PATCH] Bump version. Improve LRR detail. added perimeter only and instant flags from section #1 --- alarmdecoder/decoder.py | 22 +- alarmdecoder/messages/lrr/__init__.py | 8 +- alarmdecoder/messages/lrr/events.py | 589 ++++++++++++++------------ alarmdecoder/messages/lrr/message.py | 7 +- alarmdecoder/messages/lrr/system.py | 2 +- setup.py | 2 +- 6 files changed, 341 insertions(+), 289 deletions(-) diff --git a/alarmdecoder/decoder.py b/alarmdecoder/decoder.py index cbefe60..c1b8193 100644 --- a/alarmdecoder/decoder.py +++ b/alarmdecoder/decoder.py @@ -150,6 +150,8 @@ class AlarmDecoder(object): self._alarm_status = None self._bypass_status = {} self._armed_status = None + self._entry_delay_off_status = None + self._perimeter_only_status = None self._armed_stay = False self._fire_status = False self._battery_status = (False, 0) @@ -758,7 +760,8 @@ class AlarmDecoder(object): arm_status = None stay_status = None ready_status = None - + entry_delay_off_status = None + perimeter_only_status = None send_ready = False send_arm = False @@ -766,6 +769,8 @@ class AlarmDecoder(object): arm_status = message.armed_away stay_status = message.armed_home ready_status = message.ready + entry_delay_off_status = message.entry_delay_off + perimeter_only_status = message.perimeter_only if arm_status is None or stay_status is None or ready_status is None: return @@ -773,11 +778,26 @@ class AlarmDecoder(object): self._armed_stay, old_stay = stay_status, self._armed_stay self._armed_status, old_arm = arm_status, self._armed_status self._ready_status, old_ready_status = ready_status, self._ready_status + self._entry_delay_off_status, old_entry_delay_off_status = entry_delay_off_status, self._entry_delay_off_status + self._perimeter_only_status, old_perimeter_only_status = perimeter_only_status, self._perimeter_only_status if old_arm is not None: if arm_status != old_arm or stay_status != old_stay: send_arm = True + # This bit is expected to change only when the ARMED bit changes. + # But just in case watch for it to change + if old_entry_delay_off_status is not None: + if entry_delay_off_status != old_entry_delay_off_status: + send_arm = True + + # This bit can change after the armed bit is set + # this will treat it like AWAY/Stay transition as an additional + # arming event. + if old_perimeter_only_status is not None: + if perimeter_only_status != old_perimeter_only_status: + send_arm = True + if old_ready_status is not None: if ready_status != old_ready_status: send_ready = True diff --git a/alarmdecoder/messages/lrr/__init__.py b/alarmdecoder/messages/lrr/__init__.py index 863cfe2..0475690 100644 --- a/alarmdecoder/messages/lrr/__init__.py +++ b/alarmdecoder/messages/lrr/__init__.py @@ -1,9 +1,9 @@ from .message import LRRMessage from .system import LRRSystem -from .events import get_event_description, get_event_source, LRR_EVENT_TYPE, LRR_EVENT_STATUS, LRR_CID_EVENT, LRR_DSC_EVENT, LRR_ADEMCO_EVENT, \ +from .events import get_event_description, get_event_source, get_event_data_type, LRR_EVENT_TYPE, LRR_EVENT_STATUS, LRR_CID_EVENT, LRR_DSC_EVENT, LRR_ADEMCO_EVENT, \ LRR_ALARMDECODER_EVENT, LRR_UNKNOWN_EVENT, LRR_CID_MAP, LRR_DSC_MAP, LRR_ADEMCO_MAP, \ - LRR_ALARMDECODER_MAP, LRR_UNKNOWN_MAP + LRR_ALARMDECODER_MAP, LRR_UNKNOWN_MAP, LRR_DATA_TYPE -__all__ = ['get_event_description', 'get_event_source', 'LRRMessage', 'LRR_EVENT_TYPE', 'LRR_EVENT_STATUS', 'LRR_CID_EVENT', 'LRR_DSC_EVENT', +__all__ = ['get_event_description', 'get_event_source', 'get_event_data_type', 'LRRMessage', 'LRR_EVENT_TYPE', 'LRR_EVENT_STATUS', 'LRR_CID_EVENT', 'LRR_DSC_EVENT', 'LRR_ADEMCO_EVENT', 'LRR_ALARMDECODER_EVENT', 'LRR_UNKNOWN_EVENT', 'LRR_CID_MAP', - 'LRR_DSC_MAP', 'LRR_ADEMCO_MAP', 'LRR_ALARMDECODER_MAP', 'LRR_UNKNOWN_MAP'] + 'LRR_DSC_MAP', 'LRR_ADEMCO_MAP', 'LRR_ALARMDECODER_MAP', 'LRR_UNKNOWN_MAP', 'LRR_DATA_TYPE'] diff --git a/alarmdecoder/messages/lrr/events.py b/alarmdecoder/messages/lrr/events.py index d2dfe8a..05982ad 100644 --- a/alarmdecoder/messages/lrr/events.py +++ b/alarmdecoder/messages/lrr/events.py @@ -20,9 +20,32 @@ def get_event_description(event_type, event_code): if lookup_map is not None: description = lookup_map.get(event_code, description) - + # Extract the real message if it's a dictionary + if isinstance(description, dict): + description = description.get('message', description) return description +def get_event_data_type(event_type, event_code): + """ + Retrieves the human-readable data type for the LRR event. + + :param event_type: Base LRR event type. Use LRR_EVENT_TYPE.* + :type event_type: int + :param event_code: LRR event code + :type event_code: int + + :returns: string + """ + dtype = '' + lookup_map = LRR_TYPE_MAP.get(event_type, None) + + if lookup_map is not None: + dtype = lookup_map.get(event_code, dtype) + # Extract the event data type if it's a dictionary + if isinstance(dtype, dict): + dtype = dtype.get('dtype', dtype) + return dtype + def get_event_source(prefix): """ Retrieves the LRR_EVENT_TYPE corresponding to the prefix provided.abs @@ -64,6 +87,12 @@ class LRR_EVENT_STATUS: TRIGGER = 1 RESTORE = 3 +class LRR_DATA_TYPE: + """ + LRR Data type for the event + """ + ZONE = 'Z' + USER = 'U' class LRR_CID_EVENT: """ @@ -422,289 +451,289 @@ class LRR_UNKNOWN_EVENT: # Map of ContactID event codes to human-readable text. LRR_CID_MAP = { - LRR_CID_EVENT.MEDICAL: 'Medical Emergency: Non-specific', - LRR_CID_EVENT.MEDICAL_PENDANT: 'Emergency Assistance Request', - LRR_CID_EVENT.MEDICAL_FAIL_TO_REPORT: 'Medical: Failed to activate monitoring device', - LRR_CID_EVENT.TAMPER_ZONE: 'Zone Tamper', - LRR_CID_EVENT.FIRE: 'Fire: Non-specific', - LRR_CID_EVENT.FIRE_SMOKE: 'Fire: Smoke Alarm', - LRR_CID_EVENT.FIRE_COMBUSTION: 'Fire: Combustion', - LRR_CID_EVENT.FIRE_WATER_FLOW: 'Fire: Water Flow', - LRR_CID_EVENT.FIRE_HEAT: 'Fire: Heat', - LRR_CID_EVENT.FIRE_PULL_STATION: 'Fire: Pull Station', - LRR_CID_EVENT.FIRE_DUCT: 'Fire: Duct', - LRR_CID_EVENT.FIRE_FLAME: 'Fire: Flame', - LRR_CID_EVENT.FIRE_NEAR_ALARM: 'Fire: Near Alarm', - LRR_CID_EVENT.PANIC: 'Panic', - LRR_CID_EVENT.PANIC_DURESS: 'Panic: Duress', - LRR_CID_EVENT.PANIC_SILENT: 'Panic: Silent', - LRR_CID_EVENT.PANIC_AUDIBLE: 'Panic: Audible', - LRR_CID_EVENT.PANIC_DURESS_ACCESS_GRANTED: 'Fire: Duress', - LRR_CID_EVENT.PANIC_DURESS_EGRESS_GRANTED: 'Fire: Egress', - LRR_CID_EVENT.PANIC_HOLDUP_SUSPICION: 'Panic: Hold-up, Suspicious Condition', - LRR_CID_EVENT.PANIC_HOLDUP_VERIFIER: 'Panic: Hold-up Verified', - LRR_CID_EVENT.BURGLARY: 'Burglary', - LRR_CID_EVENT.BURGLARY_PERIMETER: 'Burglary: Perimeter', - LRR_CID_EVENT.BURGLARY_INTERIOR: 'Burglary: Interior', - LRR_CID_EVENT.BURGLARY_AUX: 'Burglary: 24 Hour', - LRR_CID_EVENT.BURGLARY_ENTRYEXIT: 'Burglary: Entry/Exit', - LRR_CID_EVENT.BURGLARY_DAYNIGHT: 'Burglary: Day/Night', - LRR_CID_EVENT.BURGLARY_OUTDOOR: 'Burglary: Outdoor', - LRR_CID_EVENT.BURGLARY_TAMPER: 'Burglary: Tamper', - LRR_CID_EVENT.BURGLARY_NEAR_ALARM: 'Burglary: Near Alarm', - LRR_CID_EVENT.BURGLARY_INTRUSION_VERIFIER: 'Burglary: Intrusion Verifier', - LRR_CID_EVENT.ALARM_GENERAL: 'Alarm: General', - LRR_CID_EVENT.ALARM_POLLING_LOOP_OPEN: 'Alarm: Polling Loop Open', - LRR_CID_EVENT.ALARM_POLLING_LOOP_SHORT: 'Alarm: Polling Loop Closed', - LRR_CID_EVENT.ALARM_EXPANSION_MOD_FAILURE: 'Alarm: Expansion Module Failure', - LRR_CID_EVENT.ALARM_SENSOR_TAMPER: 'Alarm: Sensor Tamper', - LRR_CID_EVENT.ALARM_EXPANSION_MOD_TAMPER: 'Alarm: Expansion Module Tamper', - LRR_CID_EVENT.BURGLARY_SILENT: 'Burglary: Silent', - LRR_CID_EVENT.TROUBLE_SENSOR_SUPERVISION: 'Trouble: Sensor Supervision Failure', - LRR_CID_EVENT.ALARM_AUX: 'Alarm: 24 Hour Non-Burglary', - LRR_CID_EVENT.ALARM_GAS_DETECTED: 'Alarm: Gas Detected', - LRR_CID_EVENT.ALARM_REFRIDGERATION: 'Alarm: Refridgeration', - LRR_CID_EVENT.ALARM_LOSS_OF_HEAT: 'Alarm: Loss of Heat', - LRR_CID_EVENT.ALARM_WATER_LEAKAGE: 'Alarm: Water Leakage', - LRR_CID_EVENT.TROUBLE_FOIL_BREAK: 'Trouble: Foil Break', - LRR_CID_EVENT.TROUBLE_DAY_TROUBLE: 'Trouble: Day Trouble', - LRR_CID_EVENT.ALARM_LOW_BOTTLED_GAS_LEVEL: 'Alarm: Low Bottled Gas Level', - LRR_CID_EVENT.ALARM_HIGH_TEMP: 'Alarm: High Temperature', - LRR_CID_EVENT.ALARM_LOW_TEMP: 'Alarm: Low Temperature', - LRR_CID_EVENT.ALARM_LOSS_OF_AIR_FLOW: 'Alarm: Loss of Air Flow', - LRR_CID_EVENT.ALARM_CARBON_MONOXIDE: 'Alarm: Carbon Monoxide', - LRR_CID_EVENT.TROUBLE_TANK_LEVEL: 'Trouble: Tank Level', - LRR_CID_EVENT.TROUBLE_HIGH_HUMIDITY: 'Trouble: High Humidity', - LRR_CID_EVENT.TROUBLE_LOW_HUMIDITY: 'Trouble: Low Humidity', - LRR_CID_EVENT.SUPERVISORY_FIRE: 'Supervisory: Fire', - LRR_CID_EVENT.SUPERVISORY_LOW_PRESSURE: 'Supervisory: Low Water Pressure', - LRR_CID_EVENT.SUPERVISORY_LOW_CO2: 'Supervisory: Low CO2', - LRR_CID_EVENT.SUPERVISORY_GATE_VALVE_SENSOR: 'Supervisory: Gate Valve Sensor', - LRR_CID_EVENT.SUPERVISORY_LOW_WATER_LEVEL: 'Supervisory: Low Water Level', - LRR_CID_EVENT.SUPERVISORY_PUMP_ACTIVATED: 'Supervisory: Pump Activated', - LRR_CID_EVENT.SUPERVISORY_PUMP_FAILURE: 'Supervisory: Pump Failure', - LRR_CID_EVENT.TROUBLE_SYSTEM_TROUBLE: 'Trouble: System Trouble', - LRR_CID_EVENT.TROUBLE_AC_LOSS: 'Trouble: AC Loss', - LRR_CID_EVENT.TROUBLE_LOW_BATTERY: 'Trouble: Low Battery', - LRR_CID_EVENT.TROUBLE_RAM_CHECKSUM_BAD: 'Trouble: RAM Checksum Bad', - LRR_CID_EVENT.TROUBLE_ROM_CHECKSUM_BAD: 'Trouble: ROM Checksum Bad', - LRR_CID_EVENT.TROUBLE_RESET: 'Trouble: System Reset', - LRR_CID_EVENT.TROUBLE_PANEL_PROGRAMMING_CHANGED: 'Trouble: Panel Programming Changed', - LRR_CID_EVENT.TROUBLE_SELF_TEST_FAILURE: 'Trouble: Self-Test Failure', - LRR_CID_EVENT.TROUBLE_SHUTDOWN: 'Trouble: System Shutdown', - LRR_CID_EVENT.TROUBLE_BATTERY_TEST_FAIL: 'Trouble: Battery Test Failure', - LRR_CID_EVENT.TROUBLE_GROUND_FAULT: 'Trouble: Ground Fault', - LRR_CID_EVENT.TROUBLE_BATTERY_MISSING: 'Trouble: Battery Missing', - LRR_CID_EVENT.TROUBLE_POWER_SUPPLY_OVERCURRENT: 'Trouble: Power Supply Overcurrent', - LRR_CID_EVENT.STATUS_ENGINEER_RESET: 'Status: Engineer Reset', - LRR_CID_EVENT.TROUBLE_PRIMARY_POWER_SUPPLY_FAILURE: 'Trouble: Primary Power Supply Failure', - LRR_CID_EVENT.TROUBLE_TAMPER: 'Trouble: System Tamper', - LRR_CID_EVENT.TROUBLE_SOUNDER: 'Trouble: Sounder', - LRR_CID_EVENT.TROUBLE_BELL_1: 'Trouble: Bell 1', - LRR_CID_EVENT.TROUBLE_BELL_2: 'Trouble: Bell 2', - LRR_CID_EVENT.TROUBLE_ALARM_RELAY: 'Trouble: Alarm Relay', - LRR_CID_EVENT.TROUBLE_TROUBLE_RELAY: 'Trouble: Trouble Relay', - LRR_CID_EVENT.TROUBLE_REVERSING_RELAY: 'Trouble: Reversing Relay', - LRR_CID_EVENT.TROUBLE_NOTIFICATION_APPLIANCE_CIRCUIT_3: 'Trouble: Notification Appliance Circuit #3', - LRR_CID_EVENT.TROUBLE_NOTIFICATION_APPLIANCE_CIRCUIT_4: 'Trouble: Notification Appliance Circuit #3', - LRR_CID_EVENT.TROUBLE_SYSTEM_PERIPHERAL: 'Trouble: System Peripheral', - LRR_CID_EVENT.TROUBLE_POLLING_LOOP_OPEN: 'Trouble: Pooling Loop Open', - LRR_CID_EVENT.TROUBLE_POLLING_LOOP_SHORT: 'Trouble: Polling Loop Short', - LRR_CID_EVENT.TROUBLE_EXPANSION_MODULE_FAILURE: 'Trouble: Expansion Module Failure', - LRR_CID_EVENT.TROUBLE_REPEATER_FAILURE: 'Trouble: Repeater Failure', - LRR_CID_EVENT.TROUBLE_LOCAL_PRINTER_PAPER_OUT: 'Trouble: Local Printer Out Of Paper', - LRR_CID_EVENT.TROUBLE_LOCAL_PRINTER_FAILURE: 'Trouble: Local Printer Failure', - LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_DC_LOSS: 'Trouble: Expander Module, DC Power Loss', - LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_LOW_BATTERY: 'Trouble: Expander Module, Low Battery', - LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_RESET: 'Trouble: Expander Module, Reset', - LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_TAMPER: 'Trouble: Expander Module, Tamper', - LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_AC_LOSS: 'Trouble: Expander Module, AC Power Loss', - LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_SELF_TEST_FAIL: 'Trouble: Expander Module, Self-test Failure', - LRR_CID_EVENT.TROUBLE_RF_RECEIVER_JAM_DETECTED: 'Trouble: RF Receiver Jam Detected', - LRR_CID_EVENT.TROUBLE_AES_ENCRYPTION: 'Trouble: AES Encryption', - LRR_CID_EVENT.TROUBLE_COMMUNICATION: 'Trouble: Communication', - LRR_CID_EVENT.TROUBLE_TELCO_1_FAULT: 'Trouble: Telco 1', - LRR_CID_EVENT.TROUBLE_TELCO_2_FAULT: 'Trouble: Telco 2', - LRR_CID_EVENT.TROUBLE_LRR_TRANSMITTER_FAULT: 'Trouble: Long Range Radio Transmitter Fault', - LRR_CID_EVENT.TROUBLE_FAILURE_TO_COMMUNICATE: 'Trouble: Failure To Communicate', - LRR_CID_EVENT.TROUBLE_LOSS_OF_RADIO_SUPERVISION: 'Trouble: Loss of Radio Supervision', - LRR_CID_EVENT.TROUBLE_LOSS_OF_CENTRAL_POLLING: 'Trouble: Loss of Central Polling', - LRR_CID_EVENT.TROUBLE_LRR_TRANSMITTER_VSWR: 'Trouble: Long Range Radio Transmitter/Antenna', - LRR_CID_EVENT.TROUBLE_PERIODIC_COMM_TEST: 'Trouble: Periodic Communication Test', - LRR_CID_EVENT.TROUBLE_PROTECTION_LOOP: 'Trouble: Protection Loop', - LRR_CID_EVENT.TROUBLE_PROTECTION_LOOP_OPEN: 'Trouble: Protection Loop Open', - LRR_CID_EVENT.TROUBLE_PROTECTION_LOOP_SHORT: 'Trouble: Protection Loop Short', - LRR_CID_EVENT.TROUBLE_FIRE: 'Trouble: Fire', - LRR_CID_EVENT.TROUBLE_EXIT_ERROR: 'Trouble: Exit Error', - LRR_CID_EVENT.TROUBLE_PANIC_ZONE_TROUBLE: 'Trouble: Panic', - LRR_CID_EVENT.TROUBLE_HOLDUP_ZONE_TROUBLE: 'Trouble: Hold-up', - LRR_CID_EVENT.TROUBLE_SWINGER_TROUBLE: 'Trouble: Swinger', - LRR_CID_EVENT.TROUBLE_CROSS_ZONE_TROUBLE: 'Trouble: Cross-zone', - LRR_CID_EVENT.TROUBLE_SENSOR_TROUBLE: 'Trouble: Sensor', - LRR_CID_EVENT.TROUBLE_RF_LOSS_OF_SUPERVISION: 'Trouble: RF Loss of Supervision', - LRR_CID_EVENT.TROUBLE_RPM_LOSS_OF_SUPERVISION: 'Trouble: RPM Loss of Supervision', - LRR_CID_EVENT.TROUBLE_SENSOR_TAMPER: 'Trouble: Sensor Tamper', - LRR_CID_EVENT.TROUBLE_RF_LOW_BATTERY: 'Trouble: RF Low Battery', - LRR_CID_EVENT.TROUBLE_SMOKE_HI_SENS: 'Trouble: Smoke Detector, High Sensitivity', - LRR_CID_EVENT.TROUBLE_SMOKE_LO_SENS: 'Trouble: Smoke Detector, Low Sensitivity', - LRR_CID_EVENT.TROUBLE_INTRUSION_HI_SENS: 'Trouble: Intrusion Detector, High Sensitivity', - LRR_CID_EVENT.TROUBLE_INTRUSION_LO_SENS: 'Trouble: Intrusion Detector, Low Sensitivity', - LRR_CID_EVENT.TROUBLE_SELF_TEST_FAIL: 'Trouble: Self-test Failure', - LRR_CID_EVENT.TROUBLE_SENSOR_WATCH_FAIL: 'Trouble: Sensor Watch', - LRR_CID_EVENT.TROUBLE_DRIFT_COMP_ERROR: 'Trouble: Drift Compensation Error', - LRR_CID_EVENT.TROUBLE_MAINTENANCE_ALERT: 'Trouble: Maintenance Alert', - LRR_CID_EVENT.OPENCLOSE: 'Open/Close', - LRR_CID_EVENT.OPENCLOSE_BY_USER: 'Open/Close: By User', - LRR_CID_EVENT.OPENCLOSE_GROUP: 'Open/Close: Group', - LRR_CID_EVENT.OPENCLOSE_AUTOMATIC: 'Open/Close: Automatic', - LRR_CID_EVENT.OPENCLOSE_LATE: 'Open/Close: Late', - LRR_CID_EVENT.OPENCLOSE_DEFERRED: 'Open/Close: Deferred', - LRR_CID_EVENT.OPENCLOSE_CANCEL_BY_USER: 'Open/Close: Cancel', - LRR_CID_EVENT.OPENCLOSE_REMOTE_ARMDISARM: 'Open/Close: Remote', - LRR_CID_EVENT.OPENCLOSE_QUICK_ARM: 'Open/Close: Quick Arm', - LRR_CID_EVENT.OPENCLOSE_KEYSWITCH: 'Open/Close: Keyswitch', - LRR_CID_EVENT.REMOTE_CALLBACK_REQUESTED: 'Remote: Callback Requested', - LRR_CID_EVENT.REMOTE_SUCCESS: 'Remote: Successful Access', - LRR_CID_EVENT.REMOTE_UNSUCCESSFUL: 'Remote: Unsuccessful Access', - LRR_CID_EVENT.REMOTE_SYSTEM_SHUTDOWN: 'Remote: System Shutdown', - LRR_CID_EVENT.REMOTE_DIALER_SHUTDOWN: 'Remote: Dialer Shutdown', - LRR_CID_EVENT.REMOTE_SUCCESSFUL_UPLOAD: 'Remote: Successful Upload', - LRR_CID_EVENT.ACCESS_DENIED: 'Access: Denied', - LRR_CID_EVENT.ACCESS_REPORT_BY_USER: 'Access: Report By User', - LRR_CID_EVENT.ACCESS_FORCED_ACCESS: 'Access: Forced Access', - LRR_CID_EVENT.ACCESS_EGRESS_DENIED: 'Access: Egress Denied', - LRR_CID_EVENT.ACCESS_EGRESS_GRANTED: 'Access: Egress Granted', - LRR_CID_EVENT.ACCESS_DOOR_PROPPED_OPEN: 'Access: Door Propped Open', - LRR_CID_EVENT.ACCESS_POINT_DSM_TROUBLE: 'Access: Door Status Monitor Trouble', - LRR_CID_EVENT.ACCESS_POINT_RTE_TROUBLE: 'Access: Request To Exit Trouble', - LRR_CID_EVENT.ACCESS_PROGRAM_MODE_ENTRY: 'Access: Program Mode Entry', - LRR_CID_EVENT.ACCESS_PROGRAM_MODE_EXIT: 'Access: Program Mode Exit', - LRR_CID_EVENT.ACCESS_THREAT_LEVEL_CHANGE: 'Access: Threat Level Change', - LRR_CID_EVENT.ACCESS_RELAY_FAIL: 'Access: Relay Fail', - LRR_CID_EVENT.ACCESS_RTE_SHUNT: 'Access: Request to Exit Shunt', - LRR_CID_EVENT.ACCESS_DSM_SHUNT: 'Access: Door Status Monitor Shunt', - LRR_CID_EVENT.ACCESS_SECOND_PERSON: 'Access: Second Person Access', - LRR_CID_EVENT.ACCESS_IRREGULAR_ACCESS: 'Access: Irregular Access', - LRR_CID_EVENT.OPENCLOSE_ARMED_STAY: 'Open/Close: Armed Stay', - LRR_CID_EVENT.OPENCLOSE_KEYSWITCH_ARMED_STAY: 'Open/Close: Keyswitch, Armed Stay', - LRR_CID_EVENT.OPENCLOSE_EXCEPTION: 'Open/Close: Armed with Trouble Override', - LRR_CID_EVENT.OPENCLOSE_EARLY: 'Open/Close: Early', - LRR_CID_EVENT.OPENCLOSE_LATE: 'Open/Close: Late', - LRR_CID_EVENT.TROUBLE_FAILED_TO_OPEN: 'Trouble: Failed To Open', - LRR_CID_EVENT.TROUBLE_FAILED_TO_CLOSE: 'Trouble: Failed To Close', - LRR_CID_EVENT.TROUBLE_AUTO_ARM_FAILED: 'Trouble: Auto Arm Failed', - LRR_CID_EVENT.OPENCLOSE_PARTIAL_ARM: 'Open/Close: Partial Arm', - LRR_CID_EVENT.OPENCLOSE_EXIT_ERROR: 'Open/Close: Exit Error', - LRR_CID_EVENT.OPENCLOSE_USER_ON_PREMISES: 'Open/Close: User On Premises', - LRR_CID_EVENT.TROUBLE_RECENT_CLOSE: 'Trouble: Recent Close', - LRR_CID_EVENT.ACCESS_WRONG_CODE_ENTRY: 'Access: Wrong Code', - LRR_CID_EVENT.ACCESS_LEGAL_CODE_ENTRY: 'Access: Legal Code', - LRR_CID_EVENT.STATUS_REARM_AFTER_ALARM: 'Status: Re-arm After Alarm', - LRR_CID_EVENT.STATUS_AUTO_ARM_TIME_EXTENDED: 'Status: Auto-arm Time Extended', - LRR_CID_EVENT.STATUS_PANIC_ALARM_RESET: 'Status: Panic Alarm Reset', - LRR_CID_EVENT.ACCESS_SERVICE_ONOFF_PREMISES: 'Status: Service On/Off Premises', - LRR_CID_EVENT.OPENCLOSE_PARTIAL_CLOSING: 'Open/Close: Partial Closing', - LRR_CID_EVENT.OPENCLOSE_PARTIAL_CLOSE: 'Open/Close: Partial Close', - LRR_CID_EVENT.DISABLE_ACCESS_READER: 'Disable: Access Reader', - LRR_CID_EVENT.DISABLE_SOUNDER: 'Disable: Sounder', - LRR_CID_EVENT.DISABLE_BELL_1: 'Disable: Bell 1', - LRR_CID_EVENT.DISABLE_BELL_2: 'Disable: Bell 2', - LRR_CID_EVENT.DISABLE_ALARM_RELAY: 'Disable: Alarm Relay', - LRR_CID_EVENT.DISABLE_TROUBLE_RELAY: 'Disable: Trouble Relay', - LRR_CID_EVENT.DISABLE_REVERSING_RELAY: 'Disable: Reversing Relay', - LRR_CID_EVENT.DISABLE_NOTIFICATION_APPLIANCE_CIRCUIT_3: 'Disable: Notification Appliance Circuit #3', - LRR_CID_EVENT.DISABLE_NOTIFICATION_APPLIANCE_CIRCUIT_4: 'Disable: Notification Appliance Circuit #4', - LRR_CID_EVENT.SUPERVISORY_MODULE_ADDED: 'Supervisory: Module Added', - LRR_CID_EVENT.SUPERVISORY_MODULE_REMOVED: 'Supervisory: Module Removed', - LRR_CID_EVENT.DISABLE_DIALER: 'Disable: Dialer', - LRR_CID_EVENT.DISABLE_RADIO_TRANSMITTER: 'Disable: Radio Transmitter', - LRR_CID_EVENT.DISABLE_REMOTE_UPLOADDOWNLOAD: 'Disable: Remote Upload/Download', - LRR_CID_EVENT.BYPASS_ZONE: 'Bypass: Zone', - LRR_CID_EVENT.BYPASS_FIRE: 'Bypass: Fire', - LRR_CID_EVENT.BYPASS_24HOUR_ZONE: 'Bypass: 24 Hour Zone', - LRR_CID_EVENT.BYPASS_BURGLARY: 'Bypass: Burglary', - LRR_CID_EVENT.BYPASS_GROUP: 'Bypass: Group', - LRR_CID_EVENT.BYPASS_SWINGER: 'Bypass: Swinger', - LRR_CID_EVENT.BYPASS_ACCESS_ZONE_SHUNT: 'Bypass: Access Zone Shunt', - LRR_CID_EVENT.BYPASS_ACCESS_POINT_BYPASS: 'Bypass: Access Point', - LRR_CID_EVENT.BYPASS_ZONE_VAULT: 'Bypass: Vault', - LRR_CID_EVENT.BYPASS_ZONE_VENT: 'Bypass: Vent', - LRR_CID_EVENT.TEST_MANUAL: 'Test: Manual Trigger', - LRR_CID_EVENT.TEST_PERIODIC: 'Test: Periodic', - LRR_CID_EVENT.TEST_PERIODIC_RF_TRANSMISSION: 'Test: Periodic RF Transmission', - LRR_CID_EVENT.TEST_FIRE: 'Test: Fire', - LRR_CID_EVENT.TEST_FIRE_STATUS: 'Test: Fire, Status Report To Follow', - LRR_CID_EVENT.TEST_LISTENIN_TO_FOLLOW: 'Test: Listen-in To Follow', - LRR_CID_EVENT.TEST_WALK: 'Test: Walk', - LRR_CID_EVENT.TEST_SYSTEM_TROUBLE_PRESENT: 'Test: Periodic Test, System Trouble Present', - LRR_CID_EVENT.TEST_VIDEO_TRANSMITTER_ACTIVE: 'Test: Video Transmitter Active', - LRR_CID_EVENT.TEST_POINT_TESTED_OK: 'Test: Point Tested OK', - LRR_CID_EVENT.TEST_POINT_NOT_TESTED: 'Test: Point Not Tested', - LRR_CID_EVENT.TEST_INTRUSION_ZONE_WALK_TESTED: 'Test: Intrusion Zone Walk Tested', - LRR_CID_EVENT.TEST_FIRE_ZONE_WALK_TESTED: 'Test: Fire Zone Walk Tested', - LRR_CID_EVENT.TEST_PANIC_ZONE_WALK_TESTED: 'Test: Panic Zone Walk Tested', - LRR_CID_EVENT.TROUBLE_SERVICE_REQUEST: 'Trouble: Service Request', - LRR_CID_EVENT.TROUBLE_EVENT_LOG_RESET: 'Trouble: Event Log Reset', - LRR_CID_EVENT.TROUBLE_EVENT_LOG_50PERCENT_FULL: 'Trouble: Event Log 50% Full', - LRR_CID_EVENT.TROUBLE_EVENT_LOG_90PERCENT_FULL: 'Trouble: Event Log 90% Full', - LRR_CID_EVENT.TROUBLE_EVENT_LOG_OVERFLOW: 'Trouble: Event Log Overflow', - LRR_CID_EVENT.TROUBLE_TIMEDATE_RESET: 'Trouble: Time/Date Reset', - LRR_CID_EVENT.TROUBLE_TIMEDATE_INACCURATE: 'Trouble: Time/Date Inaccurate', - LRR_CID_EVENT.TROUBLE_PROGRAM_MODE_ENTRY: 'Trouble: Program Mode Entry', - LRR_CID_EVENT.TROUBLE_PROGRAM_MODE_EXIT: 'Trouble: Program Mode Exit', - LRR_CID_EVENT.TROUBLE_32HOUR_EVENT_LOG_MARKER: 'Trouble: 32 Hour Event Log Marker', - LRR_CID_EVENT.SCHEDULE_CHANGE: 'Schedule: Change', - LRR_CID_EVENT.SCHEDULE_EXCEPTION_SCHEDULE_CHANGE: 'Schedule: Exception Schedule Change', - LRR_CID_EVENT.SCHEDULE_ACCESS_SCHEDULE_CHANGE: 'Schedule: Access Schedule Change', - LRR_CID_EVENT.TROUBLE_SENIOR_WATCH_TROUBLE: 'Schedule: Senior Watch Trouble', - LRR_CID_EVENT.STATUS_LATCHKEY_SUPERVISION: 'Status: Latch-key Supervision', - LRR_CID_EVENT.SPECIAL_ADT_AUTHORIZATION: 'Special: ADT Authorization', - LRR_CID_EVENT.RESERVED_652: 'Reserved: For Ademco Use', - LRR_CID_EVENT.RESERVED_653: 'Reserved: For Ademco Use', - LRR_CID_EVENT.TROUBLE_SYSTEM_INACTIVITY: 'Trouble: System Inactivity', - LRR_CID_EVENT.TROUBLE_UNABLE_TO_OUTPUT_SIGNAL: 'Trouble: Unable To Output Signal (Derived Channel)', - LRR_CID_EVENT.TROUBLE_STU_CONTROLLER_DOWN: 'Trouble: STU Controller Down (Derived Channel)', - LRR_CID_EVENT.REMOTE_DOWNLOAD_ABORT: 'Remote: Download Aborted', - LRR_CID_EVENT.REMOTE_DOWNLOAD_STARTEND: 'Remote: Download Start/End', - LRR_CID_EVENT.REMOTE_DOWNLOAD_INTERRUPTED: 'Remote: Download Interrupted', - LRR_CID_EVENT.REMOTE_CODE_DOWNLOAD_STARTEND: 'Remote: Device Flash Start/End', - LRR_CID_EVENT.REMOTE_CODE_DOWNLOAD_FAILED: 'Remote: Device Flash Failed', - LRR_CID_EVENT.OPENCLOSE_AUTOCLOSE_WITH_BYPASS: 'Open/Close: Auto-Close With Bypass', - LRR_CID_EVENT.OPENCLOSE_BYPASS_CLOSING: 'Open/Close: Bypass Closing', - LRR_CID_EVENT.EVENT_FIRE_ALARM_SILENCED: 'Event: Fire Alarm Silenced', - LRR_CID_EVENT.EVENT_SUPERVISOR_POINT_STARTEND: 'Event: Supervisory Point Test Start/End', - LRR_CID_EVENT.EVENT_HOLDUP_TEST_STARTEND: 'Event: Hold-up Test Start/End', - LRR_CID_EVENT.EVENT_BURGLARY_TEST_PRINT_STARTEND: 'Event: Burglary Test Print Start/End', - LRR_CID_EVENT.EVENT_SUPERVISORY_TEST_PRINT_STARTEND: 'Event: Supervisory Test Print Start/End', - LRR_CID_EVENT.EVENT_BURGLARY_DIAGNOSTICS_STARTEND: 'Event: Burglary Diagnostics Start/End', - LRR_CID_EVENT.EVENT_FIRE_DIAGNOSTICS_STARTEND: 'Event: Fire Diagnostics Start/End', - LRR_CID_EVENT.EVENT_UNTYPED_DIAGNOSTICS: 'Event: Untyped Diagnostics', - LRR_CID_EVENT.EVENT_TROUBLE_CLOSING: 'Event: Trouble Closing', - LRR_CID_EVENT.EVENT_ACCESS_DENIED_CODE_UNKNOWN: 'Event: Access Denied, Code Unknown', - LRR_CID_EVENT.ALARM_SUPERVISORY_POINT: 'Alarm: Supervisory Point', - LRR_CID_EVENT.EVENT_SUPERVISORY_POINT_BYPASS: 'Event: Supervisory Point Bypass', - LRR_CID_EVENT.TROUBLE_SUPERVISORY_POINT: 'Trouble: Supervisory Point', - LRR_CID_EVENT.EVENT_HOLDUP_POINT_BYPASS: 'Event: Hold-up Point Bypass', - LRR_CID_EVENT.EVENT_AC_FAILURE_FOR_4HOURS: 'Event: AC Failure For 4 Hours', - LRR_CID_EVENT.TROUBLE_OUTPUT: 'Trouble: Output Trouble', - LRR_CID_EVENT.EVENT_USER_CODE_FOR_EVENT: 'Event: User Code For Event', - LRR_CID_EVENT.EVENT_LOG_OFF: 'Event: Log-off', - LRR_CID_EVENT.EVENT_CS_CONNECTION_FAILURE: 'Event: Central Station Connection Failure', - LRR_CID_EVENT.EVENT_RECEIVER_DATABASE_CONNECTION: 'Event: Receiver Database Connection', - LRR_CID_EVENT.EVENT_LICENSE_EXPIRATION: 'Event: License Expiration', - LRR_CID_EVENT.OTHER_NO_READ_LOG: 'Other: No Read Log', + LRR_CID_EVENT.MEDICAL: {'message': 'Medical Emergency: Non-specific', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.MEDICAL_PENDANT: {'message': 'Emergency Assistance Request', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.MEDICAL_FAIL_TO_REPORT: {'message': 'Medical: Failed to activate monitoring device', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TAMPER_ZONE: {'message': 'Zone Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE: {'message': 'Fire: Non-specific', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_SMOKE: {'message': 'Fire: Smoke Alarm', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_COMBUSTION: {'message': 'Fire: Combustion', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_WATER_FLOW: {'message': 'Fire: Water Flow', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_HEAT: {'message': 'Fire: Heat', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_PULL_STATION: {'message': 'Fire: Pull Station', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_DUCT: {'message': 'Fire: Duct', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_FLAME: {'message': 'Fire: Flame', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.FIRE_NEAR_ALARM: {'message': 'Fire: Near Alarm', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC: {'message': 'Panic', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC_DURESS: {'message': 'Panic: Duress', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC_SILENT: {'message': 'Panic: Silent', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC_AUDIBLE: {'message': 'Panic: Audible', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC_DURESS_ACCESS_GRANTED: {'message': 'Fire: Duress', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC_DURESS_EGRESS_GRANTED: {'message': 'Fire: Egress', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.PANIC_HOLDUP_SUSPICION: {'message': 'Panic: Hold-up, Suspicious Condition', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.PANIC_HOLDUP_VERIFIER: {'message': 'Panic: Hold-up Verified', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY: {'message': 'Burglary', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_PERIMETER: {'message': 'Burglary: Perimeter', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_INTERIOR: {'message': 'Burglary: Interior', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_AUX: {'message': 'Burglary: 24 Hour', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_ENTRYEXIT: {'message': 'Burglary: Entry/Exit', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_DAYNIGHT: {'message': 'Burglary: Day/Night', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_OUTDOOR: {'message': 'Burglary: Outdoor', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_TAMPER: {'message': 'Burglary: Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_NEAR_ALARM: {'message': 'Burglary: Near Alarm', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_INTRUSION_VERIFIER: {'message': 'Burglary: Intrusion Verifier', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_GENERAL: {'message': 'Alarm: General', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_POLLING_LOOP_OPEN: {'message': 'Alarm: Polling Loop Open', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_POLLING_LOOP_SHORT: {'message': 'Alarm: Polling Loop Closed', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_EXPANSION_MOD_FAILURE: {'message': 'Alarm: Expansion Module Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_SENSOR_TAMPER: {'message': 'Alarm: Sensor Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_EXPANSION_MOD_TAMPER: {'message': 'Alarm: Expansion Module Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BURGLARY_SILENT: {'message': 'Burglary: Silent', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SENSOR_SUPERVISION: {'message': 'Trouble: Sensor Supervision Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_AUX: {'message': 'Alarm: 24 Hour Non-Burglary', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_GAS_DETECTED: {'message': 'Alarm: Gas Detected', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_REFRIDGERATION: {'message': 'Alarm: Refridgeration', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_LOSS_OF_HEAT: {'message': 'Alarm: Loss of Heat', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_WATER_LEAKAGE: {'message': 'Alarm: Water Leakage', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_FOIL_BREAK: {'message': 'Trouble: Foil Break', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_DAY_TROUBLE: {'message': 'Trouble: Day Trouble', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_LOW_BOTTLED_GAS_LEVEL: {'message': 'Alarm: Low Bottled Gas Level', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_HIGH_TEMP: {'message': 'Alarm: High Temperature', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_LOW_TEMP: {'message': 'Alarm: Low Temperature', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_LOSS_OF_AIR_FLOW: {'message': 'Alarm: Loss of Air Flow', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ALARM_CARBON_MONOXIDE: {'message': 'Alarm: Carbon Monoxide', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_TANK_LEVEL: {'message': 'Trouble: Tank Level', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_HIGH_HUMIDITY: {'message': 'Trouble: High Humidity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LOW_HUMIDITY: {'message': 'Trouble: Low Humidity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_FIRE: {'message': 'Supervisory: Fire', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_LOW_PRESSURE: {'message': 'Supervisory: Low Water Pressure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_LOW_CO2: {'message': 'Supervisory: Low CO2', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_GATE_VALVE_SENSOR: {'message': 'Supervisory: Gate Valve Sensor', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_LOW_WATER_LEVEL: {'message': 'Supervisory: Low Water Level', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_PUMP_ACTIVATED: {'message': 'Supervisory: Pump Activated', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_PUMP_FAILURE: {'message': 'Supervisory: Pump Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SYSTEM_TROUBLE: {'message': 'Trouble: System Trouble', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_AC_LOSS: {'message': 'Trouble: AC Loss', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LOW_BATTERY: {'message': 'Trouble: Low Battery', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_RAM_CHECKSUM_BAD: {'message': 'Trouble: RAM Checksum Bad', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_ROM_CHECKSUM_BAD: {'message': 'Trouble: ROM Checksum Bad', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_RESET: {'message': 'Trouble: System Reset', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PANEL_PROGRAMMING_CHANGED: {'message': 'Trouble: Panel Programming Changed', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SELF_TEST_FAILURE: {'message': 'Trouble: Self-Test Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SHUTDOWN: {'message': 'Trouble: System Shutdown', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_BATTERY_TEST_FAIL: {'message': 'Trouble: Battery Test Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_GROUND_FAULT: {'message': 'Trouble: Ground Fault', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_BATTERY_MISSING: {'message': 'Trouble: Battery Missing', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_POWER_SUPPLY_OVERCURRENT: {'message': 'Trouble: Power Supply Overcurrent', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.STATUS_ENGINEER_RESET: {'message': 'Status: Engineer Reset', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_PRIMARY_POWER_SUPPLY_FAILURE: {'message': 'Trouble: Primary Power Supply Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_TAMPER: {'message': 'Trouble: System Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SOUNDER: {'message': 'Trouble: Sounder', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_BELL_1: {'message': 'Trouble: Bell 1', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_BELL_2: {'message': 'Trouble: Bell 2', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_ALARM_RELAY: {'message': 'Trouble: Alarm Relay', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_TROUBLE_RELAY: {'message': 'Trouble: Trouble Relay', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_REVERSING_RELAY: {'message': 'Trouble: Reversing Relay', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_NOTIFICATION_APPLIANCE_CIRCUIT_3: {'message': 'Trouble: Notification Appliance Circuit #3', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_NOTIFICATION_APPLIANCE_CIRCUIT_4: {'message': 'Trouble: Notification Appliance Circuit #3', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SYSTEM_PERIPHERAL: {'message': 'Trouble: System Peripheral', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_POLLING_LOOP_OPEN: {'message': 'Trouble: Pooling Loop Open', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_POLLING_LOOP_SHORT: {'message': 'Trouble: Polling Loop Short', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANSION_MODULE_FAILURE: {'message': 'Trouble: Expansion Module Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_REPEATER_FAILURE: {'message': 'Trouble: Repeater Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LOCAL_PRINTER_PAPER_OUT: {'message': 'Trouble: Local Printer Out Of Paper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LOCAL_PRINTER_FAILURE: {'message': 'Trouble: Local Printer Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_DC_LOSS: {'message': 'Trouble: Expander Module, DC Power Loss', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_LOW_BATTERY: {'message': 'Trouble: Expander Module, Low Battery', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_RESET: {'message': 'Trouble: Expander Module, Reset', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_TAMPER: {'message': 'Trouble: Expander Module, Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_AC_LOSS: {'message': 'Trouble: Expander Module, AC Power Loss', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXPANDER_MODULE_SELF_TEST_FAIL: {'message': 'Trouble: Expander Module, Self-test Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_RF_RECEIVER_JAM_DETECTED: {'message': 'Trouble: RF Receiver Jam Detected', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_AES_ENCRYPTION: {'message': 'Trouble: AES Encryption', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_COMMUNICATION: {'message': 'Trouble: Communication', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_TELCO_1_FAULT: {'message': 'Trouble: Telco 1', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_TELCO_2_FAULT: {'message': 'Trouble: Telco 2', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LRR_TRANSMITTER_FAULT: {'message': 'Trouble: Long Range Radio Transmitter Fault', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_FAILURE_TO_COMMUNICATE: {'message': 'Trouble: Failure To Communicate', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LOSS_OF_RADIO_SUPERVISION: {'message': 'Trouble: Loss of Radio Supervision', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LOSS_OF_CENTRAL_POLLING: {'message': 'Trouble: Loss of Central Polling', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_LRR_TRANSMITTER_VSWR: {'message': 'Trouble: Long Range Radio Transmitter/Antenna', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PERIODIC_COMM_TEST: {'message': 'Trouble: Periodic Communication Test', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PROTECTION_LOOP: {'message': 'Trouble: Protection Loop', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PROTECTION_LOOP_OPEN: {'message': 'Trouble: Protection Loop Open', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PROTECTION_LOOP_SHORT: {'message': 'Trouble: Protection Loop Short', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_FIRE: {'message': 'Trouble: Fire', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EXIT_ERROR: {'message': 'Trouble: Exit Error', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PANIC_ZONE_TROUBLE: {'message': 'Trouble: Panic', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_HOLDUP_ZONE_TROUBLE: {'message': 'Trouble: Hold-up', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SWINGER_TROUBLE: {'message': 'Trouble: Swinger', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_CROSS_ZONE_TROUBLE: {'message': 'Trouble: Cross-zone', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SENSOR_TROUBLE: {'message': 'Trouble: Sensor', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_RF_LOSS_OF_SUPERVISION: {'message': 'Trouble: RF Loss of Supervision', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_RPM_LOSS_OF_SUPERVISION: {'message': 'Trouble: RPM Loss of Supervision', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SENSOR_TAMPER: {'message': 'Trouble: Sensor Tamper', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_RF_LOW_BATTERY: {'message': 'Trouble: RF Low Battery', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SMOKE_HI_SENS: {'message': 'Trouble: Smoke Detector, High Sensitivity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SMOKE_LO_SENS: {'message': 'Trouble: Smoke Detector, Low Sensitivity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_INTRUSION_HI_SENS: {'message': 'Trouble: Intrusion Detector, High Sensitivity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_INTRUSION_LO_SENS: {'message': 'Trouble: Intrusion Detector, Low Sensitivity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SELF_TEST_FAIL: {'message': 'Trouble: Self-test Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SENSOR_WATCH_FAIL: {'message': 'Trouble: Sensor Watch', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_DRIFT_COMP_ERROR: {'message': 'Trouble: Drift Compensation Error', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_MAINTENANCE_ALERT: {'message': 'Trouble: Maintenance Alert', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.OPENCLOSE: {'message': 'Open/Close', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_BY_USER: {'message': 'Open/Close: By User', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_GROUP: {'message': 'Open/Close: Group', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_AUTOMATIC: {'message': 'Open/Close: Automatic', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_LATE: {'message': 'Open/Close: Late', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_DEFERRED: {'message': 'Open/Close: Deferred', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_CANCEL_BY_USER: {'message': 'Open/Close: Cancel', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_REMOTE_ARMDISARM: {'message': 'Open/Close: Remote', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_QUICK_ARM: {'message': 'Open/Close: Quick Arm', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_KEYSWITCH: {'message': 'Open/Close: Keyswitch', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_CALLBACK_REQUESTED: {'message': 'Remote: Callback Requested', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_SUCCESS: {'message': 'Remote: Successful Access', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_UNSUCCESSFUL: {'message': 'Remote: Unsuccessful Access', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_SYSTEM_SHUTDOWN: {'message': 'Remote: System Shutdown', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_DIALER_SHUTDOWN: {'message': 'Remote: Dialer Shutdown', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_SUCCESSFUL_UPLOAD: {'message': 'Remote: Successful Upload', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_DENIED: {'message': 'Access: Denied', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_REPORT_BY_USER: {'message': 'Access: Report By User', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_FORCED_ACCESS: {'message': 'Access: Forced Access', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_EGRESS_DENIED: {'message': 'Access: Egress Denied', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_EGRESS_GRANTED: {'message': 'Access: Egress Granted', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_DOOR_PROPPED_OPEN: {'message': 'Access: Door Propped Open', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_POINT_DSM_TROUBLE: {'message': 'Access: Door Status Monitor Trouble', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_POINT_RTE_TROUBLE: {'message': 'Access: Request To Exit Trouble', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_PROGRAM_MODE_ENTRY: {'message': 'Access: Program Mode Entry', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_PROGRAM_MODE_EXIT: {'message': 'Access: Program Mode Exit', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_THREAT_LEVEL_CHANGE: {'message': 'Access: Threat Level Change', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_RELAY_FAIL: {'message': 'Access: Relay Fail', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_RTE_SHUNT: {'message': 'Access: Request to Exit Shunt', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_DSM_SHUNT: {'message': 'Access: Door Status Monitor Shunt', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_SECOND_PERSON: {'message': 'Access: Second Person Access', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_IRREGULAR_ACCESS: {'message': 'Access: Irregular Access', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_ARMED_STAY: {'message': 'Open/Close: Armed Stay', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_KEYSWITCH_ARMED_STAY: {'message': 'Open/Close: Keyswitch, Armed Stay', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_EXCEPTION: {'message': 'Open/Close: Armed with Trouble Override', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_EARLY: {'message': 'Open/Close: Early', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_LATE: {'message': 'Open/Close: Late', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_FAILED_TO_OPEN: {'message': 'Trouble: Failed To Open', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_FAILED_TO_CLOSE: {'message': 'Trouble: Failed To Close', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_AUTO_ARM_FAILED: {'message': 'Trouble: Auto Arm Failed', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_PARTIAL_ARM: {'message': 'Open/Close: Partial Arm', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_EXIT_ERROR: {'message': 'Open/Close: Exit Error', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_USER_ON_PREMISES: {'message': 'Open/Close: User On Premises', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_RECENT_CLOSE: {'message': 'Trouble: Recent Close', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ACCESS_WRONG_CODE_ENTRY: {'message': 'Access: Wrong Code', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_LEGAL_CODE_ENTRY: {'message': 'Access: Legal Code', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.STATUS_REARM_AFTER_ALARM: {'message': 'Status: Re-arm After Alarm', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.STATUS_AUTO_ARM_TIME_EXTENDED: {'message': 'Status: Auto-arm Time Extended', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.STATUS_PANIC_ALARM_RESET: {'message': 'Status: Panic Alarm Reset', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.ACCESS_SERVICE_ONOFF_PREMISES: {'message': 'Status: Service On/Off Premises', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_PARTIAL_CLOSING: {'message': 'Open/Close: Partial Closing', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.OPENCLOSE_PARTIAL_CLOSE: {'message': 'Open/Close: Partial Close', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.DISABLE_ACCESS_READER: {'message': 'Disable: Access Reader', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_SOUNDER: {'message': 'Disable: Sounder', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_BELL_1: {'message': 'Disable: Bell 1', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_BELL_2: {'message': 'Disable: Bell 2', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_ALARM_RELAY: {'message': 'Disable: Alarm Relay', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_TROUBLE_RELAY: {'message': 'Disable: Trouble Relay', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_REVERSING_RELAY: {'message': 'Disable: Reversing Relay', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_NOTIFICATION_APPLIANCE_CIRCUIT_3: {'message': 'Disable: Notification Appliance Circuit #3', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_NOTIFICATION_APPLIANCE_CIRCUIT_4: {'message': 'Disable: Notification Appliance Circuit #4', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_MODULE_ADDED: {'message': 'Supervisory: Module Added', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SUPERVISORY_MODULE_REMOVED: {'message': 'Supervisory: Module Removed', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_DIALER: {'message': 'Disable: Dialer', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_RADIO_TRANSMITTER: {'message': 'Disable: Radio Transmitter', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.DISABLE_REMOTE_UPLOADDOWNLOAD: {'message': 'Disable: Remote Upload/Download', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_ZONE: {'message': 'Bypass: Zone', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_FIRE: {'message': 'Bypass: Fire', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_24HOUR_ZONE: {'message': 'Bypass: 24 Hour Zone', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_BURGLARY: {'message': 'Bypass: Burglary', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_GROUP: {'message': 'Bypass: Group', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.BYPASS_SWINGER: {'message': 'Bypass: Swinger', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_ACCESS_ZONE_SHUNT: {'message': 'Bypass: Access Zone Shunt', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_ACCESS_POINT_BYPASS: {'message': 'Bypass: Access Point', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_ZONE_VAULT: {'message': 'Bypass: Vault', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.BYPASS_ZONE_VENT: {'message': 'Bypass: Vent', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_MANUAL: {'message': 'Test: Manual Trigger', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_PERIODIC: {'message': 'Test: Periodic', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_PERIODIC_RF_TRANSMISSION: {'message': 'Test: Periodic RF Transmission', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_FIRE: {'message': 'Test: Fire', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TEST_FIRE_STATUS: {'message': 'Test: Fire, Status Report To Follow', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_LISTENIN_TO_FOLLOW: {'message': 'Test: Listen-in To Follow', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_WALK: {'message': 'Test: Walk', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TEST_SYSTEM_TROUBLE_PRESENT: {'message': 'Test: Periodic Test, System Trouble Present', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_VIDEO_TRANSMITTER_ACTIVE: {'message': 'Test: Video Transmitter Active', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_POINT_TESTED_OK: {'message': 'Test: Point Tested OK', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_POINT_NOT_TESTED: {'message': 'Test: Point Not Tested', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_INTRUSION_ZONE_WALK_TESTED: {'message': 'Test: Intrusion Zone Walk Tested', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_FIRE_ZONE_WALK_TESTED: {'message': 'Test: Fire Zone Walk Tested', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TEST_PANIC_ZONE_WALK_TESTED: {'message': 'Test: Panic Zone Walk Tested', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SERVICE_REQUEST: {'message': 'Trouble: Service Request', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EVENT_LOG_RESET: {'message': 'Trouble: Event Log Reset', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EVENT_LOG_50PERCENT_FULL: {'message': 'Trouble: Event Log 50% Full', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EVENT_LOG_90PERCENT_FULL: {'message': 'Trouble: Event Log 90% Full', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_EVENT_LOG_OVERFLOW: {'message': 'Trouble: Event Log Overflow', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_TIMEDATE_RESET: {'message': 'Trouble: Time/Date Reset', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_TIMEDATE_INACCURATE: {'message': 'Trouble: Time/Date Inaccurate', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PROGRAM_MODE_ENTRY: {'message': 'Trouble: Program Mode Entry', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_PROGRAM_MODE_EXIT: {'message': 'Trouble: Program Mode Exit', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_32HOUR_EVENT_LOG_MARKER: {'message': 'Trouble: 32 Hour Event Log Marker', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SCHEDULE_CHANGE: {'message': 'Schedule: Change', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SCHEDULE_EXCEPTION_SCHEDULE_CHANGE: {'message': 'Schedule: Exception Schedule Change', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.SCHEDULE_ACCESS_SCHEDULE_CHANGE: {'message': 'Schedule: Access Schedule Change', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_SENIOR_WATCH_TROUBLE: {'message': 'Schedule: Senior Watch Trouble', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.STATUS_LATCHKEY_SUPERVISION: {'message': 'Status: Latch-key Supervision', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.SPECIAL_ADT_AUTHORIZATION: {'message': 'Special: ADT Authorization', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.RESERVED_652: {'message': 'Reserved: For Ademco Use', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.RESERVED_653: {'message': 'Reserved: For Ademco Use', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_SYSTEM_INACTIVITY: {'message': 'Trouble: System Inactivity', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_UNABLE_TO_OUTPUT_SIGNAL: {'message': 'Trouble: Unable To Output Signal (Derived Channel)', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_STU_CONTROLLER_DOWN: {'message': 'Trouble: STU Controller Down (Derived Channel)', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.REMOTE_DOWNLOAD_ABORT: {'message': 'Remote: Download Aborted', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_DOWNLOAD_STARTEND: {'message': 'Remote: Download Start/End', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_DOWNLOAD_INTERRUPTED: {'message': 'Remote: Download Interrupted', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.REMOTE_CODE_DOWNLOAD_STARTEND: {'message': 'Remote: Device Flash Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.REMOTE_CODE_DOWNLOAD_FAILED: {'message': 'Remote: Device Flash Failed', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.OPENCLOSE_AUTOCLOSE_WITH_BYPASS: {'message': 'Open/Close: Auto-Close With Bypass', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.OPENCLOSE_BYPASS_CLOSING: {'message': 'Open/Close: Bypass Closing', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_FIRE_ALARM_SILENCED: {'message': 'Event: Fire Alarm Silenced', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_SUPERVISOR_POINT_STARTEND: {'message': 'Event: Supervisory Point Test Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_HOLDUP_TEST_STARTEND: {'message': 'Event: Hold-up Test Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_BURGLARY_TEST_PRINT_STARTEND: {'message': 'Event: Burglary Test Print Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_SUPERVISORY_TEST_PRINT_STARTEND: {'message': 'Event: Supervisory Test Print Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_BURGLARY_DIAGNOSTICS_STARTEND: {'message': 'Event: Burglary Diagnostics Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_FIRE_DIAGNOSTICS_STARTEND: {'message': 'Event: Fire Diagnostics Start/End', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_UNTYPED_DIAGNOSTICS: {'message': 'Event: Untyped Diagnostics', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_TROUBLE_CLOSING: {'message': 'Event: Trouble Closing', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.EVENT_ACCESS_DENIED_CODE_UNKNOWN: {'message': 'Event: Access Denied, Code Unknown', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.ALARM_SUPERVISORY_POINT: {'message': 'Alarm: Supervisory Point', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_SUPERVISORY_POINT_BYPASS: {'message': 'Event: Supervisory Point Bypass', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.TROUBLE_SUPERVISORY_POINT: {'message': 'Trouble: Supervisory Point', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_HOLDUP_POINT_BYPASS: {'message': 'Event: Hold-up Point Bypass', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_AC_FAILURE_FOR_4HOURS: {'message': 'Event: AC Failure For 4 Hours', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.TROUBLE_OUTPUT: {'message': 'Trouble: Output Trouble', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_USER_CODE_FOR_EVENT: {'message': 'Event: User Code For Event', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.EVENT_LOG_OFF: {'message': 'Event: Log-off', 'dtype': LRR_DATA_TYPE.USER}, + LRR_CID_EVENT.EVENT_CS_CONNECTION_FAILURE: {'message': 'Event: Central Station Connection Failure', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_RECEIVER_DATABASE_CONNECTION: {'message': 'Event: Receiver Database Connection', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.EVENT_LICENSE_EXPIRATION: {'message': 'Event: License Expiration', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_CID_EVENT.OTHER_NO_READ_LOG: {'message': 'Other: No Read Log', 'dtype': LRR_DATA_TYPE.ZONE}, } # Map of DSC event codes to human-readable text. LRR_DSC_MAP = { - LRR_DSC_EVENT.ZONE_EXPANDER_SUPERVISORY_ALARM: 'Zone Expander Supervisory Alarm', - LRR_DSC_EVENT.ZONE_EXPANDER_SUPERVISORY_RESTORE: 'Zone Expander Supervisory Restore', - LRR_DSC_EVENT.AUX_INPUT_ALARM: 'Auxillary Input Alarm', - LRR_DSC_EVENT.SPECIAL_CLOSING: 'Special Closing', - LRR_DSC_EVENT.CROSS_ZONE_POLICE_CODE_ALARM: 'Cross-zone Police Code Alarm', - LRR_DSC_EVENT.AUTOMATIC_CLOSING: 'Automatic Closing', - LRR_DSC_EVENT.ZONE_BYPASS: 'Zone Bypass', - LRR_DSC_EVENT.REPORT_DSC_USER_LOG_EVENT: 'Report DSC User Log Event', + LRR_DSC_EVENT.ZONE_EXPANDER_SUPERVISORY_ALARM: {'message': 'Zone Expander Supervisory Alarm', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.ZONE_EXPANDER_SUPERVISORY_RESTORE: {'message': 'Zone Expander Supervisory Restore', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.AUX_INPUT_ALARM: {'message': 'Auxillary Input Alarm', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.SPECIAL_CLOSING: {'message': 'Special Closing', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.CROSS_ZONE_POLICE_CODE_ALARM: {'message': 'Cross-zone Police Code Alarm', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.AUTOMATIC_CLOSING: {'message': 'Automatic Closing', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.ZONE_BYPASS: {'message': 'Zone Bypass', 'dtype': LRR_DATA_TYPE.ZONE}, + LRR_DSC_EVENT.REPORT_DSC_USER_LOG_EVENT: {'message': 'Report DSC User Log Event', 'dtype': LRR_DATA_TYPE.ZONE}, } # Map of ADEMCO event codes to human-readable text. diff --git a/alarmdecoder/messages/lrr/message.py b/alarmdecoder/messages/lrr/message.py index 1e2508a..86df943 100644 --- a/alarmdecoder/messages/lrr/message.py +++ b/alarmdecoder/messages/lrr/message.py @@ -12,14 +12,15 @@ devices. from .. import BaseMessage from ...util import InvalidMessageError -from .events import LRR_EVENT_TYPE, get_event_description, get_event_source +from .events import LRR_EVENT_TYPE, get_event_description, get_event_data_type, get_event_source class LRRMessage(BaseMessage): """ Represent a message from a Long Range Radio or emulated Long Range Radio. """ - + event_data_type = None + """Data Type for specific LRR message. User or Zone""" event_data = None """Data associated with the LRR message. Usually user ID or zone.""" partition = -1 @@ -89,6 +90,7 @@ class LRRMessage(BaseMessage): if not self.skip_report_override and self.report_code not in ['00', 'ff']: self.event_code = int(event_type_data[1][1] + self.report_code, 16) self.event_description = get_event_description(self.event_source, self.event_code) + self.event_data_type = get_event_data_type(self.event_source, self.event_code) except ValueError: raise InvalidMessageError('Received invalid message: {0}'.format(data)) @@ -101,6 +103,7 @@ class LRRMessage(BaseMessage): return dict( time = self.timestamp, event_data = self.event_data, + event_data_type = self.event_data_type, event_type = self.event_type, partition = self.partition, report_code = self.report_code, diff --git a/alarmdecoder/messages/lrr/system.py b/alarmdecoder/messages/lrr/system.py index ff1bc1c..3aa972b 100644 --- a/alarmdecoder/messages/lrr/system.py +++ b/alarmdecoder/messages/lrr/system.py @@ -4,7 +4,7 @@ Primary system for handling LRR events. .. moduleauthor:: Scott Petersen """ -from .events import LRR_EVENT_TYPE, LRR_EVENT_STATUS, LRR_CID_EVENT +from .events import LRR_EVENT_TYPE, LRR_EVENT_STATUS, LRR_CID_EVENT, LRR_DATA_TYPE from .events import LRR_FIRE_EVENTS, LRR_POWER_EVENTS, LRR_BYPASS_EVENTS, LRR_BATTERY_EVENTS, \ LRR_PANIC_EVENTS, LRR_ARM_EVENTS, LRR_STAY_EVENTS, LRR_ALARM_EVENTS diff --git a/setup.py b/setup.py index 7a8ae12..2a79581 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ if sys.version_info < (3,): extra_requirements.append('future==0.14.3') setup(name='alarmdecoder', - version='1.13.5', + version='1.13.6', description='Python interface for the AlarmDecoder (AD2) family ' 'of alarm devices which includes the AD2USB, AD2SERIAL and AD2PI.', long_description=readme(),