Introdução ao Monitor

Tanto no modo Standalone quanto nos modos Pro ou Enterprise, para se monitorar eventos assíncronos será necessário utilizar os serviços disponibilizados pelo Monitor.

Como o próprio nome sugere, o monitor permite o monitoramento de eventos que ocorrem no equipamento. Ele os envia a um servidor externo que deve ser configurado através dos endpoints descritos a seguir.

Para utilizar o monitor é necessário definir alguns parâmetros de configuração descritos em monitor.

Endpoints

Um endpoint de um web server é a URL pela qual um de seus serviços pode ser acessado por uma aplicação cliente. Portanto, endpoints são interfaces entre a API e a aplicação consumidora.

No caso do monitor, o terminal de controle de acesso assume o papel de aplicação cliente e é necessário estabelecer um servidor externo que implemente os endpoints que se deseja consumir.

A URL final para a qual os eventos serão envidados pelo equipamento será:

hostname:port/endpoint

Logs

POST /api/notifications/dao

Enviado quando há alterações na tabela access_logs (inserção, alteração ou deleção) e também monitora as alterações realizadas na tabela alarm_logs (inserção, alteração ou deleção).

Formato do JSON que o equipamento envia para o servidor:

{
  "object_changes": [
    {
      "object": "access_logs",
      "type": "inserted",
      "values": {
        "id": "519",
        "time": "1532977090",
        "event": "12",
        "device_id": "478435",
        "identifier_id": "0",
        "user_id": "0",
        "portal_id": "1",
        "identification_rule_id": "0",
        "card_value": "0",
        "log_type_id": "-1"
      }
    }
  ],
  "device_id": 478435
}

POST /api/notifications/usb_drive

Enviado quando existe a inclusão de log de auditoria de usb_drive. Veja Exportar Relatório para mais informações.

Formato do JSON que o equipamento envia para o servidor:

{
  "usb_drive": {
    "event":"Export formatted access logs routine succeeded [uuid=2C9D-476B]"
  },
  "device_id": 478435,
  "time" : 1490271121
}

Cadastro remoto

POST /api/notifications/template

Enviado quando um template é cadastrado remotamente, caso os parâmetros sync e save da requisição no endpoint /remote_enroll.fcgi forem false. Veja Cadastro Remoto Biometria Facial Cartão para mais informações.

POST /api/notifications/user_image

Enviado quando uma face é cadastrada remotamente, caso os parâmetros sync e save da requisição no endpoint /remote_enroll.fcgi forem false. Veja Cadastro Remoto Biometria Facial Cartão para mais informações.

POST /api/notifications/card

Enviado quando um cartão é cadastrado remotamente, caso os parâmetros sync e save da requisição no endpoint /remote_enroll.fcgi forem false. Veja Cadastro Remoto Biometria Facial Cartão para mais informações.

Eventos de catraca

POST /api/notifications/catra_event

Este endpoint é exclusivo para a catraca iDBlock e envia eventos de confirmação do giro. Os eventos possíveis são:

  • EVENT_TURN_LEFT: Confirmação de giro à esquerda, que poderá ser entrada ou saída dependendo do valor do parâmetro gateway.
  • EVENT_TURN_RIGHT: Confirmação de giro à direita, que poderá ser entrada ou saída dependendo do valor do parâmetro gateway.
  • EVENT_GIVE_UP: Ocorre quando um usuário se identifica na catraca e tem seu acesso autorizado, porém não passa por ela, desistindo assim da realização do acesso/giro.

Formato do JSON que o equipamento envia para o servidor:

{
  "event": {
    "type": 7,
    "name": 'TURN LEFT',
    "time": 1484126902
  },
  "access_event_id": 15,
  "device_id": 935107
}

Observação:

  • O JSON enviado possui um campo opcional access_event_id que associa o evento reportado com o identificador correspondente da tabela access_events. Esse campo é incluído quando o parâmetro de configuração do monitor inform_access_event_id está configurado com o valor 1.

Estado online

POST /api/notifications/operation_mode

Uma requisição é enviada quando há mudança no modo de operação do equipamento (ex.: entra ou sai do modo de contingência). Quando o equipamento liga, esta requisição é enviada com o campo "last_offline": 0. Além disso há o campo exception_mode que indica se o equipamento está no modo exceção (podendo ser vazio).

Formato do JSON que o equipamento envia para o servidor:

{
  "operation_mode": {
    "mode": 0,
    "mode_name": "DEFAULT",
    "time": 1490271121,
    "last_offline": 1490261121
    "exception_mode": "none"
  },
  "device_id": 123456
}

Ações

POST /api/notifications/door

Uma requisição é enviada neste endpoint quando ocorre uma alteração de estado das portas, o que, na maior parte dos casos, indicará quando uma porta é aberta ou fechada. Esta alteração é percebida pelo equipamento de duas formas difrentes:

  • Abertura ou fechamendto de relé.
  • Alteração de leitura do sensor de porta. (Somente se o sensor correspondente estiver ativo: consultar door_sensorN_enabled)

Na mensagem, consta o id da porta que mudou de estado e o seu estado atual (aberta ou fechada). O id da porta é representado por um número inteiro que vai de 1 ao número de portas disponíveis, podendo chegar a 4, caso seja uma iDBox. O estado da porta é um valor booleano open: verdadeiro se estiver aberta e falso se estiver fechada.

O estado informado no parâmetro open poderá ser o estado lido do sensor de porta, caso o sensor de porta esteja ativo, ou o estado do relé, caso contrário.

Formato do JSON que o equipamento envia para o servidor:

{
  "door": {
    "id" : 1,
    "open" : true
  },
  "access_event_id": 15,
  "device_id": 1038508,
  "time": 1575475894
}

Observação:

  • O JSON enviado possui um campo opcional access_event_id que associa o evento reportado com o identificador correspondente da tabela access_events. Esse campo é incluído quando o parâmetro de configuração do monitor inform_access_event_id está configurado com o valor 1.

POST /api/notifications/secbox

Uma requisição é enviada neste endpoint quando o relê da security box muda de estado, o que indicará quando uma porta é aberta ou fechada.

Na mensagem, consta o id da porta que mudou de estado e o estado atual. O id da porta é representado por um número inteiro enquanto o estado é um valor booleano, que será verdadeiro se ela estiver aberta e falso se estiver fechada.

Formato do JSON que o equipamento envia para o servidor:

{
  "secbox": {
    "id" : 122641794705028910,
    "open" : true
  },
  "access_event_id": 15
}

Observação:

  • O JSON enviado possui um campo opcional access_event_id que associa o evento reportado com o identificador correspondente da tabela access_events. Esse campo é incluído quando o parâmetro de configuração do monitor inform_access_event_id está configurado com o valor 1.