> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/sistema.md).

# Sistema

APIs de sistema: config geral (hora/locais/feriados/idioma), manutenção (auto reboot/shutdown, reboot/reset), info do dispositivo, câmeras, certificados e métricas (CPU/memória/temperatura).

## Dicas & Boas Práticas <a href="#dicas-and-boas-praticas" id="dicas-and-boas-praticas"></a>

* Utilize **HTTPS em conjunto com HTTP Digest Authentication** para aumentar a segurança da comunicação entre cliente e dispositivo.
* **Valide rigorosamente** todos os dados recebidos (eventos, imagens e payloads JSON), verificando estrutura, tipos de dados e campos obrigatórios antes do processamento.
* Evite o uso de ferramentas como **Postman ou Insomnia** em APIs que utilizam **conexões persistentes, streaming ou multipart responses**, pois essas ferramentas não oferecem suporte adequado para esse tipo de comunicação.
* Implemente **tratamento de exceções**, controle de **timeout** e **mecanismos de reconexão automática** para garantir maior estabilidade da aplicação.
* Em fluxos contínuos (eventos, snapshots ou status), assegure o **encerramento correto das conexões**, evitando consumo excessivo de recursos tanto no dispositivo quanto no cliente.
* Ao realizar alterações críticas (reboot, shutdown ou reset), valide previamente o estado do sistema e informe os usuários impactados.

***

### Tabela de Parâmetros

<table><thead><tr><th>Parâmetro</th><th width="136.00006103515625">Tipo</th><th>Descrição</th><th width="129.328125">Exemplo</th></tr></thead><tbody><tr><td>temperature</td><td>object</td><td>Informações de temperatura</td><td>—</td></tr><tr><td>Mainboard0</td><td>float</td><td>Temperatura da placa-mãe (°C)</td><td>38.8</td></tr><tr><td>total</td><td>double</td><td>Memória total (bytes)</td><td>—</td></tr><tr><td>free</td><td>double</td><td>Memória livre (bytes)</td><td>23413</td></tr><tr><td>List</td><td>object[]</td><td>Lista genérica (certificados, câmeras, etc.)</td><td>—</td></tr><tr><td>Type</td><td>char[32]</td><td>Tipo (certificado, canal, etc.)</td><td>IdentityAuthCert</td></tr><tr><td>EffectiveDate</td><td>char[24]</td><td>Data de início do certificado</td><td>2018-08-08 16:47:39</td></tr><tr><td>ExpirationDate</td><td>char[24]</td><td>Data de expiração do certificado</td><td>2019-08-08 16:47:39</td></tr><tr><td>CertSN</td><td>char[40]</td><td>Número lógico do certificado</td><td>IEMCIE834JF78JK2389</td></tr><tr><td>RealCertSN</td><td>char[80]</td><td>Número real do certificado</td><td>IEMCIE834JF78JK2389</td></tr><tr><td>DeviceIdentifier</td><td>char[160]</td><td>Identificação do dispositivo</td><td>34020000001110000001_NULL</td></tr><tr><td>IssuerName</td><td>char[160]</td><td>Emissor do certificado</td><td>Dahua</td></tr><tr><td>ServerName</td><td>ServiceForCertUsedEnum[8]</td><td>Serviços associados</td><td>["General"]</td></tr><tr><td>From</td><td>enumint</td><td>Origem do certificado</td><td>0</td></tr><tr><td>Revoked</td><td>bool</td><td>Indica se foi revogado</td><td>false</td></tr><tr><td>PubKeyType</td><td>enumint</td><td>Tipo de chave pública</td><td>0</td></tr><tr><td>CertUse</td><td>enumint</td><td>Uso do certificado (SM2)</td><td>0</td></tr><tr><td>WarnCode</td><td>uint32</td><td>Código de alerta</td><td>0</td></tr><tr><td>DigitalCertificateType</td><td>enumchar[16]</td><td>Tipo de gerenciamento de certificado</td><td>General</td></tr><tr><td>UserName</td><td>char[64]</td><td>Usuário proprietário</td><td>admin1</td></tr><tr><td>Cert</td><td>char[5300]</td><td>Conteúdo Base64 do certificado</td><td>base64string</td></tr><tr><td>CertName</td><td>char[256]</td><td>Nome do certificado</td><td>proxy_client.crt</td></tr><tr><td>Key</td><td>char[8192]</td><td>Chave privada</td><td>base64string</td></tr><tr><td>KeyName</td><td>char[256]</td><td>Nome da chave</td><td>proxy_client.pem</td></tr><tr><td>KeyPassword</td><td>char[64]</td><td>Senha da chave</td><td>base64string</td></tr><tr><td>ActiveCert</td><td>bool</td><td>Ativa o certificado</td><td>true</td></tr><tr><td>camera</td><td>object[]</td><td>Informações de câmeras</td><td>—</td></tr><tr><td>group</td><td>object[]</td><td>Grupos de dispositivos</td><td>—</td></tr><tr><td>ControlID</td><td>char[128]</td><td>Número de controle</td><td>5001</td></tr><tr><td>Name</td><td>char[128]</td><td>Nome do canal/dispositivo</td><td>XXX Road</td></tr><tr><td>Enable</td><td>bool</td><td>Habilita dispositivo/canal</td><td>true</td></tr><tr><td>DeviceID</td><td>char[128]</td><td>ID do dispositivo</td><td>dev123</td></tr><tr><td>Address</td><td>char[16]</td><td>Endereço IP/domínio</td><td>10.6.5.10</td></tr><tr><td>Port</td><td>int</td><td>Porta TCP</td><td>37777</td></tr><tr><td>HttpPort</td><td>int</td><td>Porta HTTP</td><td>80</td></tr><tr><td>HttpsPort</td><td>int</td><td>Porta HTTPS</td><td>443</td></tr><tr><td>RtspPort</td><td>int</td><td>Porta RTSP</td><td>554</td></tr><tr><td>ProtocolType</td><td>enumchar[32]</td><td>Tipo de protocolo</td><td>Private</td></tr><tr><td>VideoStream</td><td>enumchar[32]</td><td>Stream de vídeo</td><td>Main</td></tr><tr><td>Channel</td><td>uint</td><td>Canal do dispositivo</td><td>0</td></tr><tr><td>UniqueChannel</td><td>int</td><td>Canal único global</td><td>0</td></tr><tr><td>DataNodeId</td><td>int</td><td>Nó de dados</td><td>1</td></tr><tr><td>DataNodeChannel</td><td>int</td><td>Canal do nó</td><td>2</td></tr><tr><td>AutoReset</td><td>bool</td><td>Reset automático do canal</td><td>false</td></tr><tr><td>VideoStandard</td><td>enumchar[32]</td><td>Padrão de vídeo</td><td>PAL</td></tr><tr><td>Label</td><td>enumchar[32]</td><td>Rótulo do dispositivo</td><td>Indoor</td></tr><tr><td>VideoInputChannels</td><td>uint</td><td>Total de entradas de vídeo</td><td>16</td></tr><tr><td>AudioInputChannels</td><td>uint</td><td>Total de entradas de áudio</td><td>4</td></tr><tr><td>DeviceClass</td><td>char[64]</td><td>Classe do dispositivo</td><td>IPC</td></tr><tr><td>DeviceType</td><td>char[64]</td><td>Modelo do dispositivo</td><td>IPC-HF3300</td></tr><tr><td>SerialNo</td><td>char[48]</td><td>Número de série</td><td>Device12345678</td></tr><tr><td>Mac</td><td>char[]</td><td>Endereço MAC</td><td>08:00:20:0A:8C:6D</td></tr><tr><td>SoftwareVersion</td><td>char[64]</td><td>Versão do software</td><td>2.420.0000006.0.R.150311</td></tr><tr><td>TotalRunTime</td><td>uint64</td><td>Tempo total de operação (s)</td><td>12456</td></tr><tr><td>cameraNum</td><td>uint8</td><td>Quantidade de câmeras</td><td>1</td></tr><tr><td>cardReader</td><td>bool</td><td>Suporte a leitor de cartão</td><td>true</td></tr><tr><td>flashID</td><td>uint8[8]</td><td>Identificação da flash</td><td>[200,209,128,149,64,127,127,200]</td></tr><tr><td>hasRTC</td><td>bool</td><td>Possui RTC</td><td>true</td></tr><tr><td>AutoRebootDay</td><td>int</td><td>Dia do reboot automático</td><td>-1</td></tr><tr><td>AutoRebootHour</td><td>int</td><td>Hora do reboot</td><td>0</td></tr><tr><td>AutoRebootMinute</td><td>int</td><td>Minuto do reboot</td><td>0</td></tr><tr><td>AutoShutdownDay</td><td>int</td><td>Dia do desligamento</td><td>-1</td></tr><tr><td>AutoShutdownHour</td><td>int</td><td>Hora do desligamento</td><td>0</td></tr><tr><td>AutoShutdownMinute</td><td>int</td><td>Minuto do desligamento</td><td>0</td></tr><tr><td>AutoStartUpDay</td><td>int</td><td>Dia do startup</td><td>-1</td></tr><tr><td>AutoStartUpHour</td><td>int</td><td>Hora do startup</td><td>0</td></tr><tr><td>AutoStartUpMinute</td><td>int</td><td>Minuto do startup</td><td>0</td></tr><tr><td>Languages</td><td>char[]</td><td>Idiomas suportados</td><td>English,SimpChinese</td></tr><tr><td>TimeFormat</td><td>char[24]</td><td>Formato de data/hora</td><td>yyyy-MM-dd HH:mm:ss</td></tr><tr><td>DSTEnable</td><td>bool</td><td>Horário de verão</td><td>false</td></tr><tr><td>SyncTime.Strategy</td><td>enumchar[16]</td><td>Estratégia de sincronização</td><td>PerLogin</td></tr><tr><td>2DCode</td><td>char[32]</td><td>Código de segurança</td><td>123456</td></tr></tbody></table>

***

### Obter Configuração Geral

**Tópico:** Retorna as configurações globais do dispositivo, incluindo identificação da máquina, políticas de login, tempo máximo de sessão, parâmetros de segurança local e data de ativação.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=General 
```

**Resposta:**

```
table.General.LocalNo=8, 
table.General.MachineID=20832748927, 
table.General.MachineName=Device001, 
table.General.MachineAddress=XXXDistrict.YYYRoad, 
table.General.MachineGroup=xxxx, 
table.General.LockLoginEnable=true, 
table.General.CheckDuration=30, 
table.General.LockLoginTimes=3, 
table.General.LoginFailLockTime=1800, 
table.General.MaxOnlineTime=1800, 
table.General.LocalPolicy.LockLoginEnable=true, 
table.General.LocalPolicy.CheckDuration=30, 
table.General.LocalPolicy.LockLoginTimes=3, 
table.General.LocalPolicy.LoginFailLockTime=1800 
table.General.ActivationTime=2000-01-01 00:00:00 
```

### Definir Configuração Geral

**Tópico:** Permite alterar parâmetros gerais do dispositivo, como nome da máquina e políticas globais de operação.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&General.MachineName=MyIPC 
```

**Resposta:**

```
OK
```

### Obter Hora Atual

**Tópico:** Retorna a data e hora atuais configuradas no dispositivo.

* Método: `GET /cgi-bin/global.cgi?action=getCurrentTime`

**Exemplo**:

```http
http://<ip>/cgi-bin/global.cgi?action=getCurrentTime 
```

**Resposta:**

```
result=2011-7-3 21:02:32 
```

### Definir Hora Atual

**Tópico:** Define manualmente a data e hora do dispositivo.

* Método: `GET /cgi-bin/global.cgi?action=setCurrentTime`

**Exemplo**:

```http
http://<ip>/cgi-bin/global.cgi?action=setCurrentTime&time=2016-01-01%2021:02:32 
```

**Resposta:**

```
OK
```

### Obter locais

**Tópico:** Retorna configurações regionais, incluindo horário de verão (DST) e formato de data/hora.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=Locales 
```

**Resposta:**

```
table.Locales.DSTEnable=false 
table.Locales.DSTEnd.Day=1 
table.Locales.DSTEnd.Hour=0 
table.Locales.DSTEnd.Minute=0 
table.Locales.DSTEnd.Month=1 
table.Locales.DSTEnd.Week=2 
table.Locales.DSTEnd.Year=2011 
table.Locales.DSTStart.Day=0 
table.Locales.DSTStart.Hour=0 
table.Locales.DSTStart.Minute=0 
table.Locales.DSTStart.Month=1 
table.Locales.DSTStart.Week=1 
table.Locales.DSTStart.Year=2011 
table.Locales.TimeFormat=yyyy-MM-dd HH:mm:ss
```

### Definir locais

**Tópico:** Permite configurar parâmetros regionais, como ativação do horário de verão e formatação de data/hora.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&Locales.DSTEnable=false 
```

**Resposta:**

```
OK
```

### Obter Gestão de Férias

**Tópico:** Retorna as configurações de feriados utilizadas pelo sistema para controle de agendas e regras especiais.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=Holiday 
```

**Resposta:**

```
table.Holiday.MonthMask[0]=3 
table.Holiday.MonthMask[1]=0 
table.Holiday.MonthMask[2]=0 
table.Holiday.MonthMask[3]=0 
table.Holiday.MonthMask[4]=0 
table.Holiday.MonthMask[5]=0 
table.Holiday.MonthMask[6]=0 
table.Holiday.MonthMask[7]=0 
table.Holiday.MonthMask[8]=0 
table.Holiday.MonthMask[9]=1610612739 
table.Holiday.MonthMask[10]=0 
table.Holiday.MonthMask[11]=0
```

### Definir Gestão de Férias

**Tópico:** Permite configurar ou alterar os períodos de feriados do sistema.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&Holiday.MonthMask[0]=3 
```

**Resposta:**

```
OK
```

### Obter Capacidade de Idioma

**Tópico:** Retorna a lista de idiomas suportados pelo dispositivo.

* Método: `GET /cgi-bin/magicBox.cgi?action=getLanguageCaps`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getLanguageCaps 
```

**Resposta:**

```
Languages=SimpChinese,English,French 
```

### Obter Configuração de Idioma

**Tópico:** Consulta o idioma atualmente configurado no dispositivo.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=Language 
```

**Resposta:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&Language=SimpChinese 
```

### Definir Configuração de Idioma

**Tópico:** Define o idioma de operação do sistema.

**Exemplo**:

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&Language=SimpChinese 
```

**Resposta:**

```
OK
```

### Obter Tipo de Dispositivo

**Tópico:** Retorna o tipo do dispositivo (ex.: DVR, NVR, IPC).

* Método: `GET /cgi-bin/magicBox.cgi?action=getDeviceType`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getDeviceType 
```

**Resposta:**

```
type=DVR 
```

### Obter Versão de Hardware

**Tópico:** Retorna a versão do hardware do dispositivo

* Método: `GET /cgi-bin/magicBox.cgi?action=getHardwareVersion`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getHardwareVersion 
```

**Resposta:**

```
version=1.00 
```

### Obter Número de Série do Dispositivo

**Tópico:** Retorna o número de série único (Serial Number) do dispositivo.

* Método: `GET /cgi-bin/magicBox.cgi?action=getSerialNo`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getSerialNo 
```

**Resposta:**

```
sn=YZC0GZ05100020 
```

### Obter Nome da Máquina

**Tópico:** Retorna o nome configurado da máquina.

* Método: `GET /cgi-bin/magicBox.cgi?action=getMachineName`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getMachineName  
```

**Resposta:**

```
name=my machine
```

### Obter Informação do Sistema

**Tópico:** Retorna informações detalhadas do sistema, como tempo total de execução, quantidade de câmeras, recursos disponíveis e status de hardware.

* Método: `GET /cgi-bin/magicBox.cgi?action=getSystemInfoNew`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getSystemInfoNew   
```

**Resposta:**

```
info.SyncTime.Strategy=“PerLogin”, 
info.2DCode=“123456”, 
info.TotalRunTime=123456 
info.cameraNum=0 
info.cardReader=false 
info.flashID[0]=200 
info.flashID[1]=209 
info.flashID[2]=128 
info.flashID[3]=149 
info.flashID[4]=64 
info.flashID[5]=127 
info.flashID[6]=127 
info.flashID[7]=200 
info.hasRTC=true 
```

### Obter Informações do Fornecedor

**Tópico:** Retorna o nome do fabricante ou fornecedor do dispositivo.

* Método: `GET /cgi-bin/magicBox.cgi?action=getVendor`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getVendor    
```

**Resposta:**

```
vendor=TTT
```

### Obter Informações de Software

**Tópico:** Retorna a versão do software/firmware instalado no dispositivo, incluindo data de build.

* Método: `GET /cgi-bin/magicBox.cgi?action=getSoftwareVersion`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getSoftwareVersion     
```

**Resposta:**

```
version=2.212.0000.0.R,build:2013-11-14 
```

### Obter Versão do Onvif

**Tópico:** Retorna a versão do serviço ONVIF suportada pelo dispositivo.

* Método: `GET /cgi-bin/IntervideoManager.cgi?action=getVersion`

**Exemplo**:

```http
 http://<ip>/cgi-bin/IntervideoManager.cgi?action=getVersion&Name=Onvif     
```

**Resposta:**

```
version=2.4.2 
```

### Obter Versão da API HTTP

**Tópico:** Retorna a versão da API CGI/HTTP suportada pelo dispositivo.

* Método: `GET /cgi-bin/IntervideoManager.cgi?action=getVersion`

**Exemplo**:

```http
 http://<ip>/cgi-bin/IntervideoManager.cgi?action=getVersion&Name=CGI    
```

**Resposta:**

```
version=2.0.0 
```

### Obter Classe do Dispositivo

**Tópico:** Retorna a classe do dispositivo (ex.: HDVR, NVR, IPC).

* Método: `GET /cgi-bin/magicBox.cgi?action=getDeviceClass`

**Exemplo**:

```http
 http://<ip>/cgi-bin/magicBox.cgi?action=getDeviceClass 
```

**Resposta:**

```
class=HDVR 
```

### Obter Configuração de Manutenção Automática

**Tópico:** Retorna as configurações de reinicialização, desligamento e inicialização automática programadas.

**Exemplo**:

```http
 http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=AutoMaintain 
```

**Resposta:**

```
table.AutoMaintain.AutoRebootDay=3 
table.AutoMaintain.AutoRebootHour=0 
table.AutoMaintain.AutoRebootMinute=0 
table.AutoMaintain.AutoShutdownDay=1 
table.AutoMaintain.AutoShutdownHour=0 
table.AutoMaintain.AutoShutdownMinute=0 
table.AutoMaintain.AutoStartUpDay=1 
table.AutoMaintain.AutoStartUpHour=2 
table.AutoMaintain.AutoStartUpMinute=0 
```

### Definir Configuração de Manutenção Automática

**Tópico:** Permite configurar horários automáticos de reboot, shutdown ou startup

**Exemplo**:

```http
 http://<ip>/cgi-bin/configManager.cgi?action=setConfig&AutoMaintain.AutoRebootDay=7 
```

**Resposta:**

```
OK
```

### Reiniciar

**Tópico:** Reinicia o dispositivo remotamente.

* Método: `GET /cgi-bin/magicBox.cgi?action=reboot`

**Exemplo**:

```http
 http://<ip>/cgi-bin/magicBox.cgi?action=reboot 
```

**Resposta:**

```
OK
```

### Desligamento

**Tópico:** Desliga o dispositivo de forma controlada.

* Método: `GET /cgi-bin/magicBox.cgi?action=shutdown`

**Exemplo**:

```http
 http://<ip>/cgi-bin/magicBox.cgi?action=shutdown 
```

**Resposta:**

```
OK
```

### Redefinição de Fábrica

**Tópico:** Restaura o dispositivo para as configurações de fábrica.

* Método: `GET /cgi-bin/magicBox.cgi?action=resetSystemEx`

**Exemplo**:

```http
 http://<ip>/cgi-bin/magicBox.cgi?action=resetSystemEx&type=0 
```

**Resposta:**

```
OK
```

### Obter Código de Rastreamento do Dispositivo

**Tópico:** Retorna o código de rastreamento único utilizado para identificação e suporte técnico..

* Método: `GET /cgi-bin/magicBox.cgi?action=getTracingCode`

**Exemplo**:

```http
http://<ip>/cgi-bin/magicBox.cgi?action=getTracingCode 
```

**Resposta:**

<pre><code><strong>tc=0001...1101 
</strong></code></pre>

### Adicionar Câmera ao Canal Especificado

**Tópico:** Adiciona uma câmera a um canal lógico específico, informando credenciais, protocolo e endereço do dispositivo remoto.

* Método: `POST /cgi-bin/LogicDeviceManager.cgi?action=addCameraByGroup`

**Exemplo**:

```powershell
 "{ 
  "group":[{ 
    "DeviceInfo":{ 
        "UserName":"admin", 
        "Password":"pass123456", 
        "ProtocolType":"Private", 
        "Port":37777, 
        "Address":"172.11.1.161" 
}, 
    "cameras":[{ 

        "uniqueChannel":1 
    }] 
  }] 
} 
```

**Resposta:**

```
{ 
    "group": [{ 
        "deviceID": "uuid:4848", 
        "cameras": [{ 
            "uniqueChannel": 1, 
            "failedCode": 1 
        },…{}] 
    },…{}] 
}
```

### Excluir Câmera por Grupo

**Tópico:** Remove câmeras previamente adicionadas, agrupadas por DeviceID e canais.

* Método: `POST /cgi-bin/api/LogicDeviceManager/deleteCameraByGroup`

**Exemplo**:

```powershell
{ 
    "group": [{ 
        "DeviceID": "DH12345678910", 
        "uniqueChannels": [1…3] 
    },…{}] 
} 
```

**Resposta:**

```
 {
    "info": [{ 
        "failedCode": 0, 
        "deviceID": "DH12345678910", 
        "uniqueChannel": 1 
    },…{}] 
} 
```

### Consultar Todos os Recursos Disponíveis

**Tópico:** Retorna a lista completa de câmeras configuradas no sistema, incluindo status, credenciais, versões e informações de imagem.

* Método: `POST /cgi-bin/LogicDeviceManager.cgi?action=getCameraAll`

**Exemplo**:

```http
http://<ip>/cgi-bin/LogicDeviceManager.cgi?action=getCameraAll 
```

**Resposta:**

```
camera[0].ControlID=5001 
camera[0].Name= XXX Road 
camera[0].Enable=true 
camera[0].DeviceInfo.Enable=true 
camera[0].DeviceInfo.EncryptStream=0 
camera[0].DeviceInfo.Adress=10.6.5.10 
camera[0].DeviceInfo.Port=37777 
camera[0].DeviceInfo.usePreSecret=1 
camera[0].DeviceInfo.UserName=admin 
camera[0].DeviceInfo.Password=pass123456 
camera[0].DeviceInfo.ProtocolType=Private 
camera[0].DeviceInfo.SoftwareVersion=2.420.0000006.0.R.150311 
… 
camera[0].DeviceID= dev123 
camera[0].ImageInfo. FilePath=/var/local/ch1.jpg" 
camera[0].PasswordGenType=UserInput
...
camera[1].ControlID=5002 
camera[1].Name= YYY Road 
```

### Inscrevendo-se para Status Online/Offline do Dispositivo

**Tópico:** Permite assinar eventos de status de conexão das câmeras via conexão persistente (streaming).

* Método: `POST /cgi-bin/api/LogicDeviceManager/attachCameraState`

**Exemplo**:

```powershell
"{ 
"type": [1, 2], 
"heartbeat": 10 
}
```

**Resposta:**

```http
HTTP/1.1 200 OK 
Content-Type: multipart/x-mixed-replace; boundary=<boundary> 
Connection: close 
 --<boundary> 
Content-Type: application/json 
Content-Length: <data length> 
 
{ 
 "channel" : 1, 
 "connectionState" : "Connected" 
} --<boundary> 
Content-Type: text/plain 
Content-Length: 11 
 
Heartbeat --<boundary> 
… 
```

### Obter Versão Completa da Máquina

**Tópico:** Retorna a identificação completa da versão do equipamento.

* Método: `POST /cgi-bin/api/MagicBox/getCompleteMachineVersion`

**Exemplo**:

```http
http://<ip>/cgi-bin/api/MagicBox/getCompleteMachineVersion 
```

**Resposta:**

```http
{ 
"CompleteMachineVersion": "S2" 
}
```

### Teste de Conexão

**Tópico:** Testa a conectividade TCP entre o dispositivo e um endereço IP/porta específicos.

* Método: `POST /cgi-bin/api/tcpConnect/tcpTest`

**Exemplo**:

```powershell
{ 
"Ip": "<ip>", 
"Port": 80
}
```

**Resposta:**

```http
{ 
"Connect": true
}
```

### Obter o Status Online do Canal

**Tópico:** Retorna o estado de conexão de cada canal (conectado, conectando, erro, etc.).

* Método: `POST /cgi-bin/api/LogicDeviceManager/getCameraState`

**Exemplo**:

```powershell
{ 
    "uniqueChannels": [-1] 
} 
```

**Resposta:**

```http
{ 
"states" : [ { 
            "channel" : 0, 
            "connectionState" : "Connecting", 
            "capsState": true, 
            "errorMessage": "LoginConnectFailed" 
       }, …, {}] 
}
```

### Obter o Status de Gravação do Canal

**Tópico:** Retorna o estado atual de gravação de cada canal e seus fluxos (main, extra).

* Método: `POST /cgi-bin/api/recordManager/getStateAll`

**Exemplo**:

```powershell
{} 
```

**Resposta:**

```http
{ 
"state" : [ { 
            "Main" : { 
                "State" : 1 
            }, 
            "Extra1" : {}, 
            "Extra2" : {}, 
            "Extra3" : {} 
        }, …, {}] 
}
```

### Certificado de Exportação

**Tópico:** Exporta certificados digitais armazenados no dispositivo em formato Base64.

* Método: `POST /cgi-bin/api/DigitalCertificate/exportCert`

**Exemplo**:

```powershell
{ 
 "DigitalCertificateType" : "General", 
 "CertSN" : "IEMCIE834JF78JK2389", 
} 
```

**Resposta:**

```http
{ 
   "Cert" : "base64string" 
} 
```

### Certificado de Importação

**Tópico:** Importa certificados digitais e chaves privadas para o dispositivo e pode ativá-los automaticamente.

* Método: `POST /cgi-bin/api/DigitalCertificate/importCert`

**Exemplo**:

```powershell
{ 
 "DigitalCertificateType" : "General", 
 "Type" : "IdentityAuthCert" 
 "UserName" : "admin1" 
 "Cert" : "base64string" 
 "CertName" : "proxy_client.crt" 
 "Key" : "base64string" 
 "KeyName" : "proxy_client.pem" 
 "KeyPassword" : "base64string" 
 "ServerName" :["General"], 
 "ActiveCert" :true, 
}
```

**Resposta:**

```http
{ 
 "List" : [{ 
  "Type" : "IdentityAuthCert" 
  "EffectiveDate" : "YYYY-MM-DD hh:mm:ss" 
  "ExpirationDate" : "YYYY-MM-DD hh:mm:ss" 
  "CertSN" : "IEMCIE834JF78JK2389" 
  "RealCertSN" : "IEMCIE834JF78JK2389", 
  "DeviceIdentifier" : "34020000001110000001_NULL" 
  "From" : 0 
  "WarnCode" : 0x11330038, 
 }]  
} 
```

### Obter Informações de Certificados Existentes no Dispositivo

**Tópico:** Retorna a lista de certificados instalados no dispositivo, com validade, emissor e status.

* Método: `POST /cgi-bin/api/DigitalCertificate/getCertsInfo`

**Exemplo**:

```powershell
{ 
    "DigitalCertificateType": "General", 
    "Offset": 0, 
    "Count": 16 
}
```

**Resposta:**

```http
{ 
    "List": [{ 
        "Type": "IdentityAuthCert", 
        "EffectiveDate": "YYYY-MM-DD hh:mm:ss", 
        "ExpirationDate": "YYYY-MM-DD hh:mm:ss", 
        "CertSN": "IEMCIE834JF78JK2389", 
        "RealCertSN": "IEMCIE834JF78JK2389", 
        "DeviceIdentifier": "34020000001110000001_NULL", 
        "IssuerName": "Dahua", 
        "ServerName": ["General"], 
        "From": 0, 
        "Revoked": false, 
        "PubKeyType": 0, 
        "CertUse": 0 
    },…{}] 
} 
```

### Ative o Certificado de Servidor Correspondente Internamente

**Tópico:** Ativa um certificado específico para uso interno em serviços do dispositivo.

* Método: `POST /cgi-bin/api/DigitalCertificate/setActiveServerCert`

**Exemplo**:

```powershell
{ 
"DigitalCertificateType": "General", 
"ServerName": ["General"], 
"CertSN": "xxx"
}
```

**Resposta:**

```http
{} 
```

### Excluir Certificado

**Tópico:** Remove certificados digitais do dispositivo.

* Método: `POST /cgi-bin/api/DigitalCertificate/deleteCert`

**Exemplo**:

```powershell
{ 
"DigitalCertificateType": "General", 
"CertSN": ["IEMCIE834JF78JK2389", …] 
} 
```

**Resposta:**

```http
{} 
```

### Obter Uso da CPU

**Tópico:** Retorna o percentual atual de uso da CPU do dispositivo.

* Método: `POST /cgi-bin/api/magicBox/getCPUUsage`

**Exemplo**:

```powershell
{ 
}
```

**Resposta:**

```http
{ 
"usage": 30
}
```

### Obter Informações de Memória

**Tópico:** Retorna informações sobre memória total e memória livre disponível.

* Método: `POST /cgi-bin/api/magicBox/getMemoryInfo`

**Exemplo**:

```powershell
{}
```

**Resposta:**

```http
{
"total": 23413, 
"free": 233 
}
```

### Obter Temperatura

**Tópico:** Retorna a temperatura atual dos componentes internos do dispositivo.

* Método: `POST /cgi-bin/api/faceBoard/getTemperature`

**Exemplo**:

```powershell
{}
```

**Resposta:**

```http
{ 
"temperature": { 
"Mainboard0": 38.8, 
  }
} 
```

***

Notas finais:

* Todas as APIs descritas utilizam **CGI ou HTTP API**, podendo retornar dados no formato **key=value**, **JSON** ou **multipart/x-mixed-replace**, conforme o endpoint.
* Endpoints de **assinatura de eventos e status** exigem **conexão HTTP persistente** e clientes compatíveis com streaming.
* Para operações de **configuração**, recomenda-se sempre:
  * Obter a configuração atual (`getConfig`) antes de aplicar alterações (`setConfig`);
  * Alterar apenas os parâmetros necessários.
* Algumas configurações entram em vigor imediatamente, enquanto outras podem exigir **reinicialização do dispositivo**.
* Certificados digitais devem ser gerenciados com cuidado:
  * Valide tipo, período de validade e serviços associados;
  * Evite remover certificados ativos em produção.
* Sempre consulte a versão da API e do firmware do dispositivo para garantir **compatibilidade** entre endpoints e parâmetros suportados.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://portal-integracao.intelbras.com.br/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/sistema.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
