API EXCLUSIVA PARA CONTROLADORA CT 3000
Introdução

API Exclusiva para CT 3000 2PB/4PB

Bem-vindo à documentação da API da linha de controladoras da Intelbras. Esta API tem como objetivo fornecer informações e orientações sobre como integrar com os dispositivos CT 3000 2PB e CT 3000 4PB da Intelbras.

⚠️

Dispositivos que suportam esta função:

DispositivosFirmware
CT 3000 2PB240816 ou superior
CT 3000 4PB240816 ou superior

Os dispositivos da linha CT 3000 não suportam Interface Web

Nossos equipamentos possuem uma interface de comunicação baseada em TCP/IP (Ethernet), tornando a integração simples e independente do sistema operacional e da linguagem de programação utilizados. Neste documento, você encontrará todos os detalhes necessários para utilizar a API e integrar facilmente com nossos dispositivos de acesso.

Você está na documentação API para as controladoras CT 3000 2PB e CT 3000 4PB. Para acessar a documentação API dos demais produtos clique aqui (opens in a new tab)

Padrão de Sintaxe Utilizada

A sintaxe da API deve seguir o padrão de URI (RFC 3986 Uniform Resource Identifiers (URI) Generic Syntax).

protocolo: Valor padrão suportado pela API é o "http".

servidor: O servidor é definido por "hostname:porta". O nome do host pode ser o endereço IP ou o nome de domínio de um dispositivo IP. A porta é o número da porta de conexão TCP configurada no dispositivo. Se a porta não for configurada, a porta 80 utilizada.

abs_path: O Request-URI para os recursos é abs_path. O abs_path nesta especificação é na maioria das vezes "/cgi-bin/*.cgi".

query: O campo query é uma string de informações a ser interpretada pelo dispositivo. Consiste em parâmetros relacionados ao recurso sendo requisitado. Deve ser informado seguindo a sintaxe nome=valor. Por exemplo: action=getCurrentTime (http://192.168.1.201/cgi-bin/global.cgi?action=getCurrentTime (opens in a new tab))

Formato de respostas

O servidor usa os códigos de status HTTP padrão. Com o seguinte código HTTP e significados:

Respostas

Se o código HTTP for 200, significa que a API foi executada com sucesso e os dados de resposta no corpo HTTP (multipart) pode ser uma multiline key=value de valor ou um objeto JSON ou apenas uma linha com uma palavra "OK"

Alguns dispositivos em suas versões mais recentes, podem retornar no corpo da resposta a requisição alguns códigos de erro verifique a página Códigos de Erros de Requisição

⚠️

Os dispositivos da linha CT 3000 são microcontrolados e tem um limite de processamento inferior aos microprocessados. Portanto, se deve respeitar o limite de 500ms entre as chamadas API para um bom desempenho dos produtos.

Autenticação

Os dispositivos possuem suporte digest authentication, consulte RFC 2617 (RFC 2617 HTTP Authentication)

A autenticação Digest é um esquema de autenticação baseado em desafio-resposta que permite que um cliente se autentique com um servidor web protegido por senha.

Quando um cliente faz uma solicitação HTTP para um recurso protegido por autenticação Digest, o servidor web responde com um código de status HTTP 401, indicando que o acesso não é permitido sem autenticação. Junto com o código de status 401, o servidor também envia um cabeçalho "WWW-Authenticate" contendo informações sobre a proteção utilizada para a senha, bem como um desafio aleatório.

O cliente responde ao desafio enviando um cabeçalho "Authorization" contendo as credenciais de autenticação criptografadas, juntamente com informações sobre o desafio e outras informações necessárias. O servidor web verifica se as credenciais estão corretas e, se estiverem, retorna um código de status HTTP 200, indicando que o acesso ao recurso foi permitido.

O motivo pelo qual o servidor web envia um código de status HTTP 401 antes de enviar o código de status HTTP 200 é que o cliente precisa ser informado de que a autenticação é necessária antes de enviar as credenciais de autenticação criptografadas. O código de status HTTP 401 é usado para indicar que o acesso ao recurso é negado sem autenticação.

Em resumo, a sequência de códigos de status HTTP 401 seguido por um código de status HTTP 200 é um comportamento padrão na autenticação Digest para permitir que o cliente se autentique com o servidor web protegido por senha

⚠️

Se a solicitação HTTP enviada pelo cliente não fornecer informações de cabeçalho de "Authorization" válidas, o dispositivo retorna o código de status HTTP 401.

Exemplo de Autenticação:

import requests
 
device_ip = '192.168.1.201'
username = 'admin'
password = 'intelbras'
 
url = "http://{}/cgi-bin/global.cgi?action=getCurrentTime".format(
                                    str(ip)
                                )
digest_auth = requests.auth.HTTPDigestAuth(username, passwd)
rval = requests.get(url, auth=digest_auth, timeout=20, verify=False)
@todo Não temos ainda essa biblioteca organizada
## Biblioteca Postman

Recomendamos a execução das chamadas de teste da API utilizando um software client rest como [Insomnia](https://insomnia.rest) ou [Postman](https://www.postman.com) antes de encapsular em seu software.

Para facilitar a integração foi realizado o mapeamento das principais chamadas na ferramenta Postman, possibilitando importar as chamadas e realizar os testes, disponível através do link: **[DOWNLOAD POSTMAN COLLECTIONS](https://drive.google.com/file/d/1X-wFuwzf1tjJRNYFTbwH9qFRAECYAY8e/view?usp=sharing)**


![](https://i.imgur.com/unGjcW2.gif)