MII/API
De uTech Tecnologia
API de integração com Intercomunicador IP uTech MII
Tabela de conteúdo |
Protocolo / Formato das requisições
Integração do intercomunicador uTech MII via API - Comandos e Eventos
- Comandos: Serão enviados da aplicação para o intercomunicador.
- Eventos: Serão enviados pelo intercomunicador para a aplicação (O destino dos eventos deve ser configurado no Intercomunicador).
Métodos e Formatos
Formato dos Comandos
- Comandos enviados para o intercomunicador, devem utilizar o protocolo HTTP] e os métodos [GET] e [POST].
- As respostas estarão codificadas no padrão JSON (Caso houver dados. Veja a lista completa de comandos e eventos abaixo)
Requisição:
http://IP_DO_INTERCOMUNICADOR:porta/?request=<requisição>... |
---|
Resposta do Comando
- 400 => Requisição ou parâmetros incorretos!
- 200 => Requisição OK.
Content-Type: application/json { "Interface1":{ "relay":"off", "sensor":"off", "button":"off" }, "Interface2":{ "relay":"off", "sensor":"off", "button":"off" } } |
---|
Formato dos Eventos
- Para eventos gerados pelo intercomunicador, será enviado uma requisição [HTTP] utilizando o método [GET].
Evento:
http://ip:porta/url/?event=alarm&state=on User-Agent: uTech/0000002874 Connection: close Date: Wed, 13 Jun 2018 17:22:35 Host: 10.0.0.200 |
---|
Utilize o campo (header http) User-Agent para identificar qual intercomunicador está enviando os eventos para sua aplicação. |
Resposta do evento
A aplicação deverá responder os eventos com o Status code 200 OK
Autenticação
Para acesso com usuário e senha, é utilizado o método e autenticação Basic. Veja sobe em: Basic Authentication
Comandos
Comandos enviados pela Aplicação ao intercomunicador | |
---|---|
Versão | Comando enviado para o intercomunicador solicitando dados de versão, modelo e numero de série do equipamento. |
Status | Comando enviado para o intercomunicador solicitando status dos relés, sensores e botoeiras. |
Gerar chamada | Comando enviado para o intercomunicador para gerar uma chamadas. |
Liberar chamada | Comando enviado para o intercomunicador liberar/desligar uma chamada. |
Status da chamada | Comando enviado para verificar o status de uma chamada em andamento. |
Listar usuários | Comando enviado para o intercomunicador para solicitar a lista de usuários cadastrados. |
Buscar Usuário | Comando enviado para o intercomunicador para solicitar a configuração de um usuário. |
Buscar Resumo de Usuários | Comando utilizado solicitar lista com total de usuários/contas de acesso. |
Adicionar usuário | Comando enviado para o intercomunicador solicitando a inclusão de um novo usuário. |
Adicionar usuário automaticamente | Comando enviado para o intercomunicador solicitando a inclusão automática de um novo usuário. (Será inserido automaticamente o próximo cartão ou QR Code lido. |
Cadastrar Biometria | Comando enviado para o intercomunicador para cadastrar a Biometria de um usuário. |
Verificar Permissões de um usuário | Comando enviado para o intercomunicador para verificar se um usuário tem permissão de acesso. |
Remover usuário | Comando enviado para o intercomunicador solicitando remoção de um usuário. |
Remover usuário automaticamente | Comando enviado para o intercomunicador solicitando remoção automática de um usuário. Será removido o próximo cartão, QR Code, RF 433 ou Fingerprint lido pelo intercomunicador. |
Remover todos os usuários | Comando enviado para o intercomunicador solicitando a remoção de TODOS os usuários. |
Listar log's de acesso | Comando enviado para o intercomunicador solicitando os log's de acessos. |
Remover log's de acesso | Comando enviado para o intercomunicador solicitando a remoção de toda a lista de log's de acessos. |
Controlar acionamento dos relês | Comando enviado para o intercomunicador para controlar o acionamento/status dos Relês. |
Controlar acionamento do alarme | Comando enviado para o intercomunicador para controlar o acionamento/status dos alarmes. |
Controlar função pânico | Comando enviado para o intercomunicador para controlar o acionamento/status da função pânico. |
Listar Status dos Alarmes | Comando enviado para buscar o estado atual dos alarmes do intercomunicador. |
Listar Leitores Remotos | Comando enviado para buscar o estado atual dos alarmes do intercomunicador. |
Solicitar configurações de Vídeo | Comando enviado para solicitar a URL de video da câmera ref. ao intercomunicador. |
Buscar Localização | Comando enviado para buscar a localização do intercomunicador (configurado via interface WEB). |
Buscar Configuração | Comando enviado para pegar a configuração do intercomunicador. |
Configurar intercomunicador | Comando enviado para configurar o intercomunicador. |
Restaurar Configuração do intercomunicador | Comando enviado para restaurar a configuração do intercomunicador para a configuração de padrão/fabrica. |
Reiniciar o equipamento | Comando enviado para reiniciar o intercomunicador. |
Reiniciar Leitor externo | Comando enviado para reiniciar leitor externo. |
Atualizar o firmware do equipamento | Comando enviado para realizar o update de firmware do intercomunicador. |
Atualizar o firmware de leitor externo | Comando enviado para realizar o update de firmware de Leitor externo. |
Buscar configuração de leitor externo (ULIP) | Comando enviado para ler a configuração de um Leitor externo - (ULIP) o update de firmware do intercomunicador. |
Configurar leitor externo (ULIP) | Comando enviado configurar um Leitor externo - (ULIP). |
Atualizar usuários de leitor externo | Comando enviado para atualizar os usuários de um Leitor externo a partir do equipamento mestre. |
Apagar todos usuários de um leitor externo | Comando enviado para remover TODOS os usuários de um Leitor externo. |
Buscar Data/Hora atual do equipamento | Comando enviado para solicitar DATA e HORA atual do intercomunicador MII. |
Configurar Data/Hora do equipamento | Comando enviado configurar a DATA e HORA atual do intercomunicador MII. |
Buscar Lista de acesso | Comando utilizado para buscar a lista de acesso realizados no intercomunicador MII. |
Remover lista de acesso | Comando utilizado para remover a lista de acesso realizados no intercomunicador MII |
Reproduzir mensagem | Comando utilizado para reproduzir mensagens pré-definidas no intercomunicador MII. |
Push | Comando utilizado receber o token de aplicativos (Android e iOS) para envio de push notifications. |
Get QR Code - Dinâmico/Temporário | Comando utilizado solicitar um novo QR Code dinâmico/temporário ao intercomunicador MII. |
Eventos
- Abaixo, a lista de eventos enviados pelo intercomunicador:
Eventos enviados pelo intercomunicador para a Aplicação | |
---|---|
Evento keepalive | Evento enviado pelo intercomunicador para o servidor/aplicação supervisão da conexão.. |
Evento de relê | Evento enviado pelo intercomunicador informando status de relê. |
Evento de Sensor | Evento enviado pelo intercomunicador informando status de sensor. |
Evento de botoeira | Evento enviado pelo intercomunicador informando status de botoeira. |
Evento de Arrombamento | Evento enviado pelo intercomunicador informando que foi detecção de arrombamento de porta. |
Evento de Porta Aberta | Evento enviado pelo intercomunicador informando que uma porta foi mantida aberta alem do tempo máximo configurado. |
Evento Mifire / NFC | Evento enviado pelo intercomunicador informando status de cartão lido. |
Evento RF433 Code | Evento enviado pelo intercomunicador informando status de cartão/controle RF 433 lido. |
Evento Fingerprint | Evento enviado pelo intercomunicador informando status de biometria lida. |
Evento Fingerprint Status (Enrolment) | Evento enviado pelo intercomunicador informando o status de cadastro de uma biometria (Enrolment). |
Evento de Usuário e Senha | Evento enviado pelo intercomunicador informando nova requisição de acesso por usuário e senha. |
Evento QR Code | Evento enviado pelo intercomunicador informando status de leitura de QR Code. |
Evento Add User | Evento enviado pelo intercomunicador informando que um novo usuário foi adicionado. |
Evento Del User | Evento enviado pelo intercomunicador informando que um usuário foi removido. |
Evento de Cadastro Automático de Usuário | Evento enviado pelo intercomunicador informando o status do cadastro automático de usuário (enviado após o comando probeuser. |
Evento de Remoção Automática de Usuário | Evento enviado pelo intercomunicador informando o status da remoção automática de usuário (enviado após o comando eraseuser. |
Evento de Alarme | Evento enviado pelo intercomunicador informando novo status de alarme. |
Evento Pânico | Evento enviado pelo intercomunicador informando status da função pânico. |
Evento de Chamada | Evento enviado pelo intercomunicador informando um novo status de chamada. |
Evento de Violação (Tamper) | Evento enviado pelo intercomunicador informando que o intercomunicador foi violado (Evento de Tamper). |
Evento de Boot | Evento enviado pelo intercomunicador informando Boot do intercomunicador. |
Codigo Exemplo para receber os eventos:
- Copie e cole o código abaixo na pasta do seu servidor HTTP.
- Depois configure no intercomunicador, menu Geral, aba Integração. Opção Configuração do Cliente, campo Url o caminho relativo do seu código.
- Ex. Se seu código está na pasta /events (/var/www/html/events - Document root padrão para apache no CentOS), no campo Url, coloque '/events'.
- NOTA: No código abaixo é especificado o arquivo onde serão saçvos os eventos recebidos. Altere a variavel DGBFILE para seu destino desejado.
- O arquivo DEVE existir e ter permissão de escrita pelo servidor HTTP.
<?php /* * Arquivo DEVE existir e ter permissão de escrita pelo apache / (server http) */ $DGBFILE = "/var/log/evts.log"; function evt2log($str = null, $file = null) { if($str == null) { echo "str null\n"; return; } if($file == null) $file = "/var/log/evts.log"; error_log($str, 3, $file); } function show_request($req, $post, $file) { if($req) { evt2log("==>\nREQUEST {$req}\n", $file); } if($post) { evt2log("==>\nPOST {$post}\n", $file); } } $vars = $_REQUEST; $l = print_r($vars, true); $p = null; $post_params = file_get_contents("php://input"); if($post_params) { $post = json_decode($post_params, true); $p = print_r($post, true); } $d = date(DATE_RFC822); evt2log("\n=============================================\n", $DGBFILE); evt2log("=> $d\n", $DGBFILE); if(!isset($vars)) { evt2log("==> !!! Invalid arguments !!!\n\n", $DGBFILE); show_request($l, $p, $DGBFILE); exit(0); } if(isset($vars['request'])) $event = $vars['request']; else { evt2log("==> !!!Evento Invalido!!!\n", $DGBFILE); show_request($l, $p, $DGBFILE); exit(1); } evt2log("=> Novo evento recebido...\n", $DGBFILE); evt2log("=> Evento: {$vars['request']}\n", $DGBFILE); show_request($l, $p, $DGBFILE); evt2log("\n\n", $DGBFILE); ?> |
QR Code Dinâmico
O MII possui uma função para controle de QR Code's dinâmicos (Com validade de tempo) Para utilização, siga os passos abaixo:
- Verifique a versão de software do seu intercomunicador. Ela DEVE ser igual ou superior a versão 1.1.17.
- Habilite no intercomunicador a função de QR Code dinâmico. Acesse o menu Controle de Acesso, aba Geral e habilite os campos:
* Habilitar QRCODE Dinâmico * Validade de QRCODE Dinâmico
- Agora, o intercomunicador está pronto para utilização. Veja no link QR Code Dinâmico como é o seu funcionamento.