> 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/gestao-de-eventos.md).

# Gestão de Eventos

Integração de eventos via CGI: subscribe (eventManagerattach/codes/heartbeat), listar eventos e capacidades (getExposureEvents/getCaps) e configurar EventHandler/Alarm/Blind/Loss/NetAlarm.

## 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 garantir confidencialidade e integridade na comunicação entre cliente e dispositivo.
* Evite ferramentas como **Postman** ou **Insomnia** em APIs que utilizam **conexões persistentes, streaming ou respostas multipart**, pois não oferecem suporte adequado a esses cenários.
* Implemente **tratamento de exceções**, **controle de timeout** e **mecanismos de reconexão automática** para aumentar a resiliência da aplicação.
* Em fluxos contínuos (eventos, status ou notificações), assegure o **encerramento correto das conexões**, evitando consumo excessivo de CPU, memória e conexões simultâneas.

***

### Tabela de Parâmetros

<table><thead><tr><th>Name</th><th width="122.44439697265625">Type</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td>events</td><td>string[]</td><td>Lista de eventos suportados pelo dispositivo</td><td><code>[VideoMotion, AlarmLocal]</code></td></tr><tr><td>Code</td><td>string</td><td>Código do evento</td><td><code>VideoBlind</code></td></tr><tr><td>action</td><td>string</td><td>Ação do evento (<code>Start / Stop / Pulse</code>)</td><td><code>Start</code></td></tr><tr><td>index</td><td>int</td><td>Índice do evento (pode não ter significado)</td><td><code>0</code></td></tr><tr><td>data</td><td>object</td><td>Dados do evento em JSON</td><td><code>{}</code></td></tr><tr><td>channel</td><td>int</td><td>Número do canal (inicia em 1)</td><td><code>1</code></td></tr><tr><td>name</td><td>string</td><td>Nome do canal, alarme ou evento (≤32 chars)</td><td><code>Door1</code></td></tr><tr><td>desc</td><td>string</td><td>Descrição do evento ou alarme (≤128 chars)</td><td><code>Zone8</code></td></tr><tr><td>trigger</td><td>string</td><td>Fonte do disparo do alarme</td><td><code>Remote</code></td></tr><tr><td>alarm</td><td>bool</td><td>Estado do alarme (<code>true</code> habilitado)</td><td><code>true</code></td></tr><tr><td>Enable</td><td>bool</td><td>Habilita ou desabilita a função</td><td><code>true</code></td></tr><tr><td>Level</td><td>int</td><td>Sensibilidade (1–6)</td><td><code>3</code></td></tr><tr><td>SensorType</td><td>string</td><td>Tipo do sensor (<code>NC</code> / <code>NO</code>)</td><td><code>NC</code></td></tr><tr><td>DefenceAreaType</td><td>string</td><td>Tipo da zona (<code>Intime</code>, <code>Delay</code>, <code>Fullday</code>)</td><td><code>Intime</code></td></tr><tr><td>DisableDelay</td><td>int</td><td>Tempo de atraso para desarme (s)</td><td><code>30</code></td></tr><tr><td>EnableDelay</td><td>int</td><td>Tempo de atraso para arme (s)</td><td><code>30</code></td></tr><tr><td>Mode</td><td>int</td><td>Modo da saída de alarme (0 auto / 1 force / 2 close)</td><td><code>0</code></td></tr><tr><td>EventHandler</td><td>object</td><td>Configuração de linkage de eventos</td><td><code>{}</code></td></tr><tr><td>TimeSection</td><td>char[][][]</td><td>Períodos ativos por dia da semana</td><td><code>["1 12:00:00-18:00:00"]</code></td></tr><tr><td>RecordEnable</td><td>bool</td><td>Habilita gravação</td><td><code>true</code></td></tr><tr><td>RecordCloudEnable</td><td>bool</td><td>Habilita gravação em nuvem</td><td><code>false</code></td></tr><tr><td>RecordChannels</td><td>int[]</td><td>Lista de canais para gravação</td><td><code>[0,1]</code></td></tr><tr><td>RecordLatch</td><td>int</td><td>Tempo de gravação após evento (s)</td><td><code>10</code></td></tr><tr><td>AlarmOutEnable</td><td>bool</td><td>Habilita saída de alarme</td><td><code>true</code></td></tr><tr><td>AlarmOutChannels</td><td>int[]</td><td>Canais de saída de alarme</td><td><code>[1,4]</code></td></tr><tr><td>AlarmOutLatch</td><td>int</td><td>Tempo de saída após evento (s)</td><td><code>10</code></td></tr><tr><td>ExAlarmOutEnable</td><td>bool</td><td>Habilita saída de alarme estendida</td><td><code>false</code></td></tr><tr><td>ExAlarmOutChannels</td><td>int[]</td><td>Canais de saída estendida</td><td><code>[2,3]</code></td></tr><tr><td>PtzLinkEnable</td><td>bool</td><td>Habilita vínculo PTZ</td><td><code>true</code></td></tr><tr><td>PtzLink</td><td>(char[],int)[]</td><td>Ação PTZ vinculada</td><td><code>["Preset",3]</code></td></tr><tr><td>SnapshotEnable</td><td>bool</td><td>Habilita snapshot</td><td><code>true</code></td></tr><tr><td>SnapshotCloudEnable</td><td>bool</td><td>Snapshot em nuvem</td><td><code>false</code></td></tr><tr><td>SnapshotChannels</td><td>int[]</td><td>Canais de snapshot</td><td><code>[2,4]</code></td></tr><tr><td>SnapshotPeriod</td><td>int</td><td>Frames entre capturas</td><td><code>3</code></td></tr><tr><td>SnapshotTime</td><td>int</td><td>Quantidade de capturas</td><td><code>5</code></td></tr><tr><td>SnapshotTimes</td><td>uint32[2]</td><td>Intervalo mínimo/máximo de snapshots</td><td><code>[3,10]</code></td></tr><tr><td>MailEnable</td><td>bool</td><td>Envio de e-mail</td><td><code>true</code></td></tr><tr><td>BeepEnable</td><td>bool</td><td>Alarme sonoro</td><td><code>true</code></td></tr><tr><td>BeepTime</td><td>bool</td><td>Controle de tempo do beep</td><td><code>false</code></td></tr><tr><td>DejitterEnable</td><td>bool</td><td>Habilita filtragem de ruído</td><td><code>false</code></td></tr><tr><td>Dejitter</td><td>int</td><td>Tempo de filtragem (s)</td><td><code>0</code></td></tr><tr><td>DejitterRange</td><td>object</td><td>Intervalo permitido de dejitter</td><td><code>{Min:0, Max:60}</code></td></tr><tr><td>Delay</td><td>uint</td><td>Atraso para aplicar configuração (s)</td><td><code>30</code></td></tr><tr><td>TipEnable</td><td>bool</td><td>Exibe mensagem local</td><td><code>true</code></td></tr><tr><td>MonitorTourEnable</td><td>bool</td><td>Habilita tour de monitoramento</td><td><code>false</code></td></tr><tr><td>MMSEnable</td><td>bool</td><td>Envio MMS</td><td><code>false</code></td></tr><tr><td>SMSEnable</td><td>bool</td><td>Envio SMS</td><td><code>false</code></td></tr><tr><td>VoiceEnable</td><td>bool</td><td>Habilita alerta por voz</td><td><code>true</code></td></tr><tr><td>VoiceLinkTimeRange</td><td>int32[2]</td><td>Intervalo de tempo de voz</td><td><code>[10,30]</code></td></tr><tr><td>VoicePlayTimesRange</td><td>uint16[2]</td><td>Intervalo de repetições de voz</td><td><code>[1,10]</code></td></tr><tr><td>VoiceLinkFileOptional</td><td>bool</td><td>Arquivo de voz opcional</td><td><code>true</code></td></tr><tr><td>LogEnable</td><td>bool</td><td>Geração de log</td><td><code>true</code></td></tr><tr><td>SupportHTTPUpload</td><td>object</td><td>Suporte a upload HTTP</td><td><code>{}</code></td></tr><tr><td>PictureHttpUploadEnable</td><td>bool</td><td>Upload de imagens via HTTP</td><td><code>false</code></td></tr><tr><td>EventHttpUploadEnable</td><td>bool</td><td>Upload de eventos via HTTP</td><td><code>false</code></td></tr><tr><td>TrigerHttpEnable</td><td>bool</td><td>Habilita envio de comando HTTP</td><td><code>true</code></td></tr><tr><td>TrigerHttpCommand</td><td>char[]</td><td>URI do comando HTTP</td><td><code>/cgi-bin/eventManager.cgi?</code></td></tr><tr><td>TrigerServerName</td><td>char[32]</td><td>Nome do servidor de linkage</td><td><code>server1</code></td></tr><tr><td>TrigerServerIP</td><td>char[32]</td><td>IP do servidor</td><td><code>0.0.0.0</code></td></tr><tr><td>TrigerServerPort</td><td>uint16</td><td>Porta do servidor</td><td><code>80</code></td></tr><tr><td>TrigerHttpsEnable</td><td>bool</td><td>Usa HTTPS</td><td><code>false</code></td></tr><tr><td>TrigerHttpName</td><td>char[]</td><td>Usuário HTTP</td><td><code>admin</code></td></tr><tr><td>TrigerHttpPassword</td><td>char[]</td><td>Senha HTTP</td><td><code>admin</code></td></tr><tr><td>FilterEth</td><td>string[]</td><td>Interfaces filtradas</td><td><code>["eth0"]</code></td></tr><tr><td>SendArpWhenConflict</td><td>bool</td><td>Envia ARP em conflito IP</td><td><code>false</code></td></tr></tbody></table>

***

### Conexão Persistente (attach)

A conexão:

```
/cgi-bin/eventManager.cgi?action=attach
```

* Permanece aberta continuamente
* Pode ser encerrada pelo dispositivo
* Pode ser encerrada pelo cliente
* Envia Heartbeat periodicamente

Recomenda-se:

* Implementar reconexão automática
* Tratar fechamento inesperado
* Validar timeout
* Monitorar ausência de Heartbeat

***

### Codificação de Lista de Eventos

A lista deve ser:

* Envolvida por colchetes \[]
* Separada por vírgula
* URL encoded

Exemplo:

```
[AlarmLocal,VideoMotion,VideoLoss]
```

Encoded:

```
%5BAlarmLocal%2CVideoMotion%2CVideoLoss%5D
```

***

### Impacto ao Habilitar Eventos

Ao habilitar múltiplos eventos com:

* SnapshotEnable=true
* RecordEnable=true
* MailEnable=true
* HTTPUploadEnable=true

Pode ocorrer:

* Alto consumo de CPU
* Alto uso de banda
* Uso excessivo de armazenamento
* Geração massiva de notificações

***

### Segurança em Trigger HTTP

* Nunca armazenar senha em texto puro no código.
* Utilizar HTTPS quando possível.
* Restringir IP do servidor receptor.
* Evitar portas públicas expostas.
* Validar integridade do servidor destino

***

### Estrutura TimeSection

Formato:

```
TimeSection[Dia][Faixa]
```

* Dia = 0–6 (Domingo a Sábado)
* Faixa = até 6 períodos por dia
* Formato:\
  1 00:00:00-23:59:59
* 1 = habilitado
* 0 = desabilitado

{% hint style="warning" %}
Algumas alterações podem exigir reinicialização para aplicação completa.
{% endhint %}

***

### Obter Configuração do Event Manager

* **Tópico**: Permite consultar a configuração do manipulador de eventos associado à detecção de movimento, incluindo ações como gravação, snapshot, alarmes, PTZ, iluminação, notificações e períodos de ativação.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=getConfig&name=MotionDetect[0].EventHandler
```

**Resposta:**

```json
table.MotionDetect[0].EventHandler.AlarmOut=1 
table.MotionDetect[0].EventHandler.AlarmOutChannels[0]=0 
table.MotionDetect[0].EventHandler.AlarmOutEnable=true 
table.MotionDetect[0].EventHandler.AlarmOutLatch=10 
table.MotionDetect[0].EventHandler.BeepEnable=false 
table.MotionDetect[0].EventHandler.Dejitter=30 
table.MotionDetect[0].EventHandler.Delay=0 
table.MotionDetect[0].EventHandler.ExAlarmOut=1 
table.MotionDetect[0].EventHandler.ExAlarmOutChannels[0]=0 
table.MotionDetect[0].EventHandler.ExAlarmOutEnable=true 
table.MotionDetect[0].EventHandler.LightingLink.Enable=false 
table.MotionDetect[0].EventHandler.LightingLink.FilckerIntevalTime=2 
table.MotionDetect[0].EventHandler.LightingLink.FilckerLightType=WhiteLight 
table.MotionDetect[0].EventHandler.LightingLink.FilckerTimes=5 
table.MotionDetect[0].EventHandler.LightingLink.LightDuration=10 
table.MotionDetect[0].EventHandler.LightingLink.LightLinkType=Filcker 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[0][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[0][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[0][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[0][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[0][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[0][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[1][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[1][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[1][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[1][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[1][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[1][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[2][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[2][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[2][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[2][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[2][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[2][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[3][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[3][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[3][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[3][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[3][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[3][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[4][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[4][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[4][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[4][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[4][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[4][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[5][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[5][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[5][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[5][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[5][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[5][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[6][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[6][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[6][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[6][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[6][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.LightingLink.WhiteLightTimeSection[6][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.MailEnable=false 
table.MotionDetect[0].EventHandler.PtzLink[0][0]=None 
table.MotionDetect[0].EventHandler.PtzLink[0][1]=0 
table.MotionDetect[0].EventHandler.PtzLink[1][0]=None 
table.MotionDetect[0].EventHandler.PtzLink[1][1]=0 
table.MotionDetect[0].EventHandler.PtzLink[2][0]=None 
table.MotionDetect[0].EventHandler.PtzLink[2][1]=0 
table.MotionDetect[0].EventHandler.PtzLink[3][0]=None 
table.MotionDetect[0].EventHandler.PtzLink[3][1]=0 
table.MotionDetect[0].EventHandler.PtzLink[4][0]=None 
table.MotionDetect[0].EventHandler.PtzLink[4][1]=0 
table.MotionDetect[0].EventHandler.PtzLinkEnable=false 
table.MotionDetect[0].EventHandler.Record=1 
table.MotionDetect[0].EventHandler.RecordChannels[0]=0 
table.MotionDetect[0].EventHandler.RecordEnable=true 
table.MotionDetect[0].EventHandler.RecordLatch=10 
table.MotionDetect[0].EventHandler.Snapshot=1 
table.MotionDetect[0].EventHandler.SnapshotChannels[0]=0 
table.MotionDetect[0].EventHandler.SnapshotEnable=true 
table.MotionDetect[0].EventHandler.SnapshotPeriod=0 
table.MotionDetect[0].EventHandler.SnapshotTimes=0 
table.MotionDetect[0].EventHandler.TimeSection[0][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[0][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[0][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[0][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[0][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[0][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[1][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[1][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[1][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[1][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[1][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[1][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[2][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[2][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[2][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[2][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[2][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[2][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[3][0]=1 00:00:00-23:59:59
table.MotionDetect[0].EventHandler.TimeSection[3][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[3][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[3][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[3][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[3][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[4][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[4][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[4][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[4][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[4][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[4][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[5][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[5][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[5][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[5][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[5][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[5][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[6][0]=1 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[6][1]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[6][2]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[6][3]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[6][4]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TimeSection[6][5]=0 00:00:00-23:59:59 
table.MotionDetect[0].EventHandler.TipEnable=false 
table.MotionDetect[0].EventHandler.Tour=0 
table.MotionDetect[0].EventHandler.TourChannels[0]=0 
table.MotionDetect[0].EventHandler.TourEnable=false 
```

### Definir Configuração do Gestor de eventos

* **Tópico**: Permite alterar os parâmetros de ação do Gestor de eventos, habilitando ou desabilitando recursos como saída de alarme, gravação, snapshot e canais associados.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&Alarm[0].EventHandler.AlarmOutCha
nnels[0]=1&Alarm[0].EventHandler.AlarmOutEnable=true
```

**Resposta:**

```
OK
```

### Obter Configuração de Eventos de Alarme

* **Tópico**: Consulta as configurações dos eventos de alarme físicos ou lógicos do dispositivo, incluindo estado, nome, tipo de sensor e manipulador de eventos associado.

**Exemplo:**

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

**Resposta:**

```json
table.Alarm[0].Enable=false 
table.Alarm[0].EventHandler….(output of EventHandler is described in GetEventHandler) 
table.Alarm[0].Name=Door1 
table.Alarm[0].SensorType=NC 
table.Alarm[1]…. 
… 
```

### Definir Configuração de Eventos de Alarme

* **Tópico:** Permite habilitar ou desabilitar eventos de alarme específicos.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&Alarm[0].Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração de Saída de Alarme

* **Tópico:** Consulta as saídas de alarme disponíveis no dispositivo, como buzzer ou portas físicas, incluindo modo de operação e nome.

**Exemplo:**

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

**Resposta:**

```json
table.AlarmOut[0].Mode=0 
table.AlarmOut[0].Name=Beep 
… 
```

### Definir Configuração de Saída de Alarme

* **Tópico:** Permite configurar o modo e o nome das saídas de alarme.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&AlarmOut[0].Mode=0&AlarmOut[0].Na
me=port1
```

**Resposta:**

```
OK
```

### Obter Canais de Entrada de Alarme

* **Tópico:** Retorna a quantidade de canais de entrada de alarme disponíveis no dispositivo.
* **Métodos: `GET`**` ``/cgi-bin/alarm.cgi?action=getInSlots`

**Exemplo:**

```http
http://<ip>/cgi-bin/alarm.cgi?action=getInSlots
```

**Resposta:**

```
result=2 
```

### Obter Canais de Saída de Alarme

* **Tópico:** Retorna a quantidade de canais de saída de alarme disponíveis no dispositivo.
* **Métodos: `GET`**` ``/cgi-bin/alarm.cgi?action=getOutSlots`

**Exemplo:**

```http
http://<ip>/cgi-bin/alarm.cgi?action=getOutSlots
```

**Resposta:**

```
result=1
```

### Obter Estados dos Canais de Entrada de Alarme

* **Tópico:** Consulta o estado atual (ativo/inativo) dos canais de alarme.
* **Métodos: `GET`**` ``/cgi-bin/alarm.cgi?action=getInState`

**Exemplo:**

```http
http://<ip>/cgi-bin/alarm.cgi?action=getInState
```

**Resposta:**

```
result=3
```

### Obter Estados dos Canais de Saída de Alarme

* **Tópico:** Permite consultar o estado atual dos canais de saída de alarme do dispositivo, indicando se cada saída está ativa ou inativa no momento da consulta.).
* **Métodos: `GET`**` ``/cgi-bin/alarm.cgi?action=getOutState`

**Exemplo:**

```http
http://<ip>/cgi-bin/alarm.cgi?action=getOutState
```

**Resposta:**

```
result=1
```

### Obter Configurações de Evento de Mascaramento de Vídeo

* **Tópico:** Permite consultar as configurações do evento de Mascaramento de vídeo (Video Blind), utilizado para detectar obstrução da lente, perda total ou comprometimento significativo da imagem capturada.).

**Exemplo:**

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

**Resposta:**

```json
table.BlindDetect[0].Enable=false 
table.BlindDetect[0].EventHandler….(output of EventHandler is described in GetEventHandler) 
table.BlindDetect[0]. Level=3 
table.BlindDetect[1]…. 
…
```

### Definir Configurações de Evento de Mascaramento de Vídeo

* **Tópico:** Permite habilitar ou desabilitar o evento de vídeo cego, ativando ações automáticas quando a câmera identificar obstrução ou perda de imagem.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&BlindDetect[0].Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração de Evento de Perda de Vídeo

* **Tópico:** Permite consultar a configuração do evento de perda de vídeo, responsável por detectar a ausência de sinal de vídeo proveniente da câmera.

**Exemplo:**

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

**Resposta:**

```json
table.LossDetect[0].Enable=false 
table.LossDetect[0].EventHandler…(output of EventHandler is described in GetEventHandler) 
table.LossDetect[1]…. 
… 
```

### Definir Configuração de Evento de Perda de Vídeo

* **Tópico:** Permite habilitar ou desabilitar o evento de perda de vídeo, acionando respostas automáticas quando o sinal de vídeo for interrompido.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&LossDetect[0].Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração de Falha no Login

* &#x20;**Tópico:** Permite consultar a configuração do evento de falha de login, utilizado para detectar tentativas de autenticação inválidas no dispositivo.

**Exemplo:**

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

**Resposta:**

```json
table.LoginFailureAlarm.Enable=false 
table.LoginFailureAlarm.EventHandler…(output of EventHandler is described in GetEventHandler) 
```

### Definir Configuração de Falha no Login

* **Tópico:** Permite habilitar ou desabilitar o evento de falha de login, possibilitando ações automáticas em caso de tentativas de acesso não autorizado.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&LoginFailureAlarm.Enable=true"
```

**Resposta:**

```
OK
```

### Obter Configuração de Evento de Armazenamento Inexistente

* **Tópico:** Permite consultar a configuração do evento que detecta a ausência de mídia de armazenamento no dispositivo.

**Exemplo:**

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

**Resposta:**

```json
table.StorageNotExist.Enable=false 
table.StorageNotExist.EventHandler…(output of EventHandler is described in GetEventHandler) 
```

### Definir Configuração de Evento de Armazenamento Inexistente

* **Tópico:** Permite habilitar ou desabilitar o evento de armazenamento inexistente, acionando alarmes ou notificações quando nenhum dispositivo de armazenamento estiver disponível.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&StorageNotExist.Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração do Evento de falha de acesso ao armazenamento

* **Tópico:** Permite consultar a configuração do evento que detecta falhas de leitura ou gravação no dispositivo de armazenamento.

**Exemplo:**

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

**Resposta:**

```json
table.StorageFailure.Enable=false 
table.StorageFailure.EventHandler…(output of EventHandler is described in GetEventHandler) 
```

### Definir Configuração do Evento de falha de acesso ao armazenamento

* **Tópico:** Permite habilitar ou desabilitar o evento de falha de acesso ao armazenamento, possibilitando ações corretivas automáticas.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&StorageFailure.Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração do Evento de Espaço de Armazenamento Baixo

* **Tópico:** Permite consultar a configuração do evento que monitora o nível de espaço disponível no armazenamento do dispositivo.

**Exemplo:**

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

**Resposta:**

```powershell
table.StorageLowSpace.Enable=false 
table.StorageLowSpace.EventHandler…(output of EventHandler is described in GetEventHandler) 
```

### Definir Configuração do Evento de Espaço de Armazenamento Baixo

* **Tópico:** Permite habilitar ou desabilitar o evento de espaço de armazenamento baixo, acionando notificações quando o limite configurado for atingido.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&StorageLowSpace.Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração do Evento de Anomalia de Rede

* **Tópico:** Permite consultar a configuração do evento de instabilidades de rede, utilizado para detectar falhas críticas ou interrupções na conectividade.

**Exemplo:**

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

**Resposta:**

```json
table.NetAbort.Enable=false 
table.NetAbort.EventHandler…(output of EventHandler is described in GetEventHandler) 
```

### Definir Configuração do Evento de Anomalia de Rede

* **Tópico:** Permite habilitar ou desabilitar o evento de Anomalia de Rede, permitindo resposta automática a falhas de comunicação.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&NetAbort.Enable=true
```

**Resposta:**

```
OK
```

### Obter Configuração do Evento de Conflito de IP

* **Tópico:** Permite consultar a configuração do evento de conflito de IP, responsável por detectar duplicidade de endereço IP na rede.

**Exemplo:**

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

**Resposta:**

```json
table.IPConflict.Enable=false 
table.IPConflict.EventHandler…(output of EventHandler is described in GetEventHandler) 
table.IPConflict.FilterEth[0]=eth0 
table.IPConflict.SendArpWhenConflict=false 
```

### Definir Configuração do Evento de Conflito de IP

* **Tópico:** Permite habilitar ou desabilitar o evento de conflito de IP, incluindo ações como envio de ARP ou notificação.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&IPConflict.Enable=true
```

**Resposta:**

```
OK
```

### Obter Índices de Canais com Evento Ocorrido

* **Tópico:** Permite consultar quais canais dispararam um determinado tipo de evento, retornando os índices dos canais afetados.
* **Métodos: `GET`**` ``/cgi-bin/eventManager.cgi?action=getEventIndexes`

**Exemplo:**

```http
http://<ip>/cgi-bin/eventManager.cgi?action=getEventIndexes&code=AlarmLocal
```

**Resposta:**

```
channels[0]=0 
channels[1]=2 
channels[2]=3 
```

### Inscrever-se na Mensagem do Evento

* **Tópico:** Permite assinar eventos do dispositivo em tempo real por meio de uma conexão HTTP persistente, recebendo notificações contínuas no formato multipart.
* **Métodos: `GET`**` ``/cgi-bin/eventManager.cgi?action=attach`

**Exemplo:**

```http
http://<ip>/cgi-bin/eventManager.cgi?action=attach&codes=[AlarmLocal%2CVideoMotion%2
CVideoLoss%2CVideoBlind%2CFaceDetection]
```

**Resposta:**

```http
HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Expires: Thu, 01 Dec 2099 16:00:00 GMT 
Connection: close 
Content-Type: multipart/x-mixed-replace; boundary=myboundary 
 --myboundary 
Content-Type: text/plain 
Content-Length: 39 
 
Code=VideoMotion;action=Start;index=0 
 --myboundary 
Content-Type: text/plain 
Content-Length: 38 
 
Code=FaceDetection;action=Start;index=0;data={ 
  “Faces”: [ { “BoundingBox”:  [2992,136,6960,8192], 
       “Sex”: “Man”, 
       “Age”: 40, 
       “Feature”: [ “WearGlasses”, “Smile”], 
       “Eye”: 2, 
       “Mouth”: 1, 
       “Mask”: 1, 
       “Beard”: 2 
    }, {…}, … ] 
} 
 --myboundary 
Content-Type: text/plain 
Content-Length: 9 
 
Heartbeat 
 --myboundary 
…… 
```

### Obtenha a Capacidade de Gerenciamento de Eventos

* **Tópico:** Permite consultar todos os recursos e capacidades de gerenciamento de eventos suportados pelo dispositivo, incluindo tipos de vínculo, limites e funcionalidades disponíveis.
* **Métodos: `GET`**` ``/cgi-bin/eventManager.cgi?action=getCaps`

**Exemplo:**

```http
http://<ip>/cgi-bin/eventManager.cgi?action=getCaps
```

**Resposta:**

```json
caps.AlarmOutEnable=true 
caps.BeepEnable=true 
caps.DejitterEnable=true 
caps.MMSEnable=true 
caps.MailEnable=true 
caps.MonitorTourEnable=true 
caps.PtzLinkEnable=true 
caps.RecordEnable=true 
caps.SnapshotEnable=true 
caps.TimeSectionEnable=true 
caps.TipEnable=true 
caps.RecordCloudEnable=true, 
caps.SnapshotCloudEnable=false, 
caps.SnapshotTimes[0]=3, 
caps.SnapshotTimes[1]=10, 
caps.SupportAlarmBell=false, 
caps.SupportAccessControl=false, 
caps.SipCallEnable=false, 
caps.SupportAlarmServer=false, 
caps.SupportPtzLinkDelay=false, 
caps.SupportPSTNAlarmServer=false, 
caps.SupportICR=false, 
caps.BeepTime=false, 
caps.DejitterRange.Min=0, 
caps.DejitterRange.Max=60 
caps.AlarmOutLatch[0]=1, 
caps.AlarmOutLatch[1]=300, 
caps.RecordLatch[0]=0, 
caps.RecordLatch[1]=300, 
caps.VoiceEnable=true, 
caps.VoiceLinkTimeRange[0]=10, 
caps.VoiceLinkTimeRange[1]=30, 
caps.VoicePlayTimesRange[0]=1, 
caps.VoicePlayTimesRange[1]=10, 
caps.VoiceLinkFileOptional=true, 
caps.LogEnable=true, 
caps.SupportLightControl=false, 
caps.LinkLightBrightRange[0]=0, 
caps.LinkLightBrightRange[1]=100, 
caps.SupportVideoMatrix=false, 
caps.LinkDetailCameraEnable=false, 
caps.SupportDisableLinkage[0]=0 
caps.SupportDisableLinkage[1]=0 
caps.SupportDisableLinkage[2]=0 
caps.SupportDisableLinkage[3]=0 
caps.SupportHTTPUpload.PictureHttpUploadEnable=false 
caps.SupportHTTPUpload.EventHttpUploadEnable=false 
caps.TrigerHttpEnable=false 
caps.SupportEventLinkMulti=false 
```

### Obter Configuração do Evento de Alarme de Rede

* **Tópico:** Permite consultar a configuração dos eventos de alarme de rede, utilizados para alarmes acionados por condições externas via rede.

**Exemplo:**

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

**Resposta:**

```
table.NetAlarm[0].Enable=false 
table.NetAlarm[0].Name=channel1 
table.NetAlarm[0].SensorType=NO 
table.NetAlarm[0].EventHandler= (output of EventHandler is described in GetEventHandler) 
```

### Definir Configuração do Evento de Alarme de Rede

* **Tópico:** Permite habilitar ou desabilitar eventos de alarme de rede específicos.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&NetAlarm[0].Enable=true
```

**Resposta:**

```
OK
```

### Definir Estado do Alarme de Rede

* **Tópico:** Permite acionar ou desativar manualmente um alarme de rede, informando canal, estado e dados descritivos do evento.
* **Métodos: `GET`**` ``/cgi-bin/netAlarm.cgi?action=setState`

**Exemplo:**

```http
http://<ip>/cgi-bin/netAlarm.cgi?action=setState&channel=1&alarm=true&name=somke&trigg
er=SmokingSensor&desc=Zone8
```

**Resposta:**

```
OK
```

### Obter Eventos Suportados

* **Tópico:** Permite consultar a lista de eventos suportados pelo dispositivo para assinatura e monitoramento.
* **Métodos: `GET`**` ``/cgi-bin/eventManager.cgi?action=getExposureEvents`

**Exemplo:**

```http
http://<ip>/cgi-bin/eventManager.cgi?action=getExposureEvents
```

**Resposta:**

```
events[0]=VideoMotion 
events[1]=AlarmLocal 
events[2]=FaceDetection 
events[3]=VideoMotion 
… 
```

### Obter Configuração de Acionar Lista de Usuários HTTP

* **Tópico:** Permite consultar os usuários configurados para receber acionamentos HTTP automáticos quando eventos ocorrerem.

**Exemplo:**

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

**Resposta:**

```json
table.TrigerHttpUserList[0].TrigerHttpName=admin 
table.TrigerHttpUserList[0].TrigerHttpPassword=admin 
table.TrigerHttpUserList[0].TrigerServerName=Server1 
table.TrigerHttpUserList[0].TrigerServerIP=0.0.0.0 
table.TrigerHttpUserList[0].TrigerServerPort=80 
table.TrigerHttpUserList[0].TrigerHttpsEnable=false 
table.TrigerHttpUserList[1].TrigerHttpName=admin 
… 
```

### Definir Configuração de Acionar Lista de Usuários HTTP

* **Tópico:** Permite configurar credenciais e parâmetros de servidores HTTP/HTTPS utilizados para envio de notificações externas.

**Exemplo:**

```http
http://<ip>/cgi-bin/configManager.cgi?action=setConfig&TrigerHttpUserList[0].TrigerHttpName=admi
n&TrigerHttpUserList[0].TrigerHttpPassword=admin
```

**Resposta:**

```
OK
```

***

Notas finais:

* A API utiliza majoritariamente o modelo **subscribe to event**, exigindo **conexões HTTP persistentes**.
* Ferramentas de teste tradicionais não são recomendadas para eventos em streaming.
* O campo `Action` indica o estado do evento (`Start` / `Stop`).
* Eventos podem incluir **heartbeat** para manutenção da conexão ativa.
* Recomenda-se monitorar consumo de recursos ao manter múltiplas assinaturas simultâneas.
* Sempre valide as **capacidades do dispositivo (`getCaps`)** antes de configurar vínculos de eventos.

***


---

# 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/gestao-de-eventos.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.
