Introdução ao Monitor
Tanto no modo Standalone quanto no Enterprise, para se monitorar eventos assíncronos será necessário utilizar os serviços disponibilizados pelo Monitor. O monitor, como o próprio nome sugere, monitora eventos do equipamento e realiza requests enviando estes eventos nos endpoints descritos a seguir, estes endpoints deverão ser implementados em um servidor externo para coleta dos eventos.
Os eventos assíncronos que podem ser monitorados são: alteração nos logs de acesso e logs de alarme, cadastro remoto de cartão e biometria, giros de catraca, abertura de portas e mudanças no modo de operação (ex. entrar e sair em modo standalone/enterprise/contingência).
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 onde seu serviço pode ser acessado por uma aplicação cliente, portanto os endpoints são interfaces entre a API e a aplicação consumidora. A URL final onde os eventos serão envidados pelo equipamento será: hostname + ":" + port + "/" + end_point
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/template
Enviado quando um template é cadastrado remotamente. Veja Cadastro Remoto Biometria Cartão para mais informações.
POST /api/notifications/card
Enviado quando um cartão é cadastrado remotamente. Veja Cadastro Remoto Biometria Cartão para mais informações.
POST /api/notifications/catra_event
Este endpoint é exclusivo para a catraca iDBlock, ele 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, 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
},
"device_id": 935107
}
POST /api/notifications/operation_mode
Um request é enviado quando há mudança no modo de operação do equipamento (e.g.: entra ou sai do modo de contingência). Quando o equipamento liga, este request é enviado com o campo "last_offline": 0, além disso temos 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":""
},
"device_id": 123456
}
POST /api/notifications/door
Neste end point, é enviada uma mensagem quando os relês do equipamento mudam de estado, o que na maior parte dos casos indicará quando uma porta é aberta e fechada. 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 varia de 1 ao número de portas disponíveis, no caso da iDBox podendo chegar até a 4. O estado da porta é um valor booleano: verdadeiro se estiver aberta e falso se fechada.
Formato do JSON que o equipamento envia para o servidor:
{
"door": {
"id" : 1,
"open" : true
},
"device_id": 1038508,
"time": 1575475894
}
POST /api/notifications/secbox
Neste end point, é enviada uma mensagem quando a relê da security box muda de estado, o que indicará quando uma porta é aberta ou fechada. O corpo da mensagem consta o id 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: verdadeiro se estiver aberta e falso se fechada.
Formato do JSON que o equipamento envia para o servidor:
{
"secbox": {
"id" : ,
"open" :
}
}