code: def get_event_triggers(self):
          events = {}
          nvrflag = False
          event_xml = []
          url = '%s/ISAPI/Event/triggers' % self.root_url
          try:
              response = self.hik_request.get(url, timeout=CONNECT_TIMEOUT)
              if response.status_code == requests.codes.not_found:
                  _LOGGING.debug('Using alternate triggers URL.')
                  url = '%s/Event/triggers' % self.root_url
                  response = self.hik_request.get(url)
          except (requests.exceptions.RequestException,
                  requests.exceptions.ConnectionError) as err:
              _LOGGING.error('Unable to fetch events, error: %s', err)
              return None
          if response.status_code != 200:
              return None
          try:
              content = ET.fromstring(response.text)
              if content[0].find(self.element_query('EventTrigger')):
                  event_xml = content[0].findall(
                      self.element_query('EventTrigger'))
              elif content.find(self.element_query('EventTrigger')):
                  event_xml = content.findall(
                      self.element_query('EventTrigger'))
              for eventtrigger in event_xml:
                  ettype = eventtrigger.find(self.element_query('eventType'))
                  if ettype is None:
                      break
                  etnotify = eventtrigger.find(
                      self.element_query('EventTriggerNotificationList'))
                  etchannel = None
                  etchannel_num = 0
                  for node_name in CHANNEL_NAMES:
                      etchannel = eventtrigger.find(
                          self.element_query(node_name))
                      if etchannel is not None:
                          try:
                              etchannel_num = int(etchannel.text)
                              if etchannel_num > 1:
                                  nvrflag = True
                              break
                          except ValueError:
                              pass
                  if etnotify:
                      for notifytrigger in etnotify:
                          ntype = notifytrigger.find(
                              self.element_query('notificationMethod'))
                          if ntype.text == 'center' or ntype.text == 'HTTP':
                              events.setdefault(ettype.text, []) \
                                  .append(etchannel_num)
          except (AttributeError, ET.ParseError) as err:
              _LOGGING.error(
                  'There was a problem finding an element: %s', err)
              return None
          if nvrflag:
              self.device_type = NVR_DEVICE
          else:
              self.device_type = CAM_DEVICE
          _LOGGING.debug('Processed %s as %s Device.',
                         self.cam_id, self.device_type)
          _LOGGING.debug('Found events: %s', events)
          self.hik_request.close()
          return events