> 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/remote/remote-protocolo-aberto.md).

# Remote Protocolo Aberto

## PROTOCOLO ABERTO PARA INTEGRAÇÃO DE SOFTWARE COM

**Interface de comunicação IP – REMOTE**

* Data do documento: 25/08/2021
* Revisão: 0.06

> As informações contidas neste documento são confidenciais.

***

### 1. INTRODUÇÃO

Este documento descreve o protocolo de comunicação aberto entre a Interface de comunicação IP – REMOTE e o software da empresa integradora (SEI), permitindo a integração de softwares de terceiros para acionamento de relés e consulta de status de sensores e acionamentos.

### 2. DESCRIÇÃO GERAL DA COMUNICAÇÃO

A comunicação entre o REMOTE e o SEI é realizada através do protocolo TCP/IP, com conexão permanente.

* O REMOTE atua como **servidor** e o SEI como **cliente**.
* Porta padrão: **34567** (configurável via interface web).
* Suporta até **3 conexões simultâneas** de clientes.
* Utiliza apenas caracteres ASCII (32 a 127), com diferenciação entre maiúsculas e minúsculas.
* Os comandos são terminados por **CRLF** (13, 10).
* Formato do comando:

  ```
  <Command name>|<Field1>:<Value1>|<Field2>:<Value2>|...|CRLF
  ```

#### Observações importantes

* Pacotes TCP/IP podem conter vários comandos ou comandos "quebrados" (divididos entre pacotes).
* O buffer de recepção deve ter no mínimo **1500 bytes** (tamanho de MTU).
* O conteúdo máximo de um campo é de **32 caracteres**.
* Os campos não podem conter os caracteres **":"** ou **"|"**.
* Máximo de **32 acionamentos agendados** por REMOTE.
* Comandos de agendamento devem ser enviados **um por vez**.
* Comandos de resposta podem levar até **25 segundos**.
* Status de sensor: 0=OFF, 1=ON, 2=Alarme, 3=Indefinido.
* Status de relé: 0=OFF, 1=ON, 2=Alarme, 3=Indefinido.

***

### 3. Descrição dos comandos

> Legenda de cores: comandos em **azul** são enviados pelo SEI; comandos em **verde** são enviados pelo REMOTE.

#### LOGIN

Comando de autenticação do SEI no REMOTE.

**Formato do comando:**

```
login|tam:<valor>|usuario:<valor>|sen:<valor>|ver:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `usuario`: \<Texto 1> – usuário de acesso
* `sen`: \<Texto 1> – senha de acesso
* `ver`: \<Texto 1> – versão do protocolo

**Exemplo:**

```
login|tam:35|usuario:admin|sen:123456|ver:1|CRLF
```

#### RESPOSTA LOGIN

Resposta do REMOTE ao comando de login.

**Formato do comando:**

```
resp_login|tam:<valor>|erro:<valor>|ver:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `erro`: \<Texto 1> – 0=OK, 1=NOK
* `ver`: \<Texto 1> – versão do protocolo

**Exemplo:**

```
resp_login|tam:25|erro:0|ver:1|CRLF
```

#### CONFIGURAÇÃO PING

Configura o envio de ping para monitoramento da conexão.

**Formato do comando:**

```
config_ping|tam:<valor>|ativar:<valor>|tempo:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `ativar`: \<Texto 1> – 0=desativar, 1=ativar
* `tempo`: \<Texto 1> – intervalo de envio do ping em segundos

**Exemplo:**

```
config_ping|tam:30|ativar:1|tempo:30|CRLF
```

#### RESPOSTA PING

Resposta do REMOTE ao comando de configuração de ping.

**Formato do comando:**

```
resp_ping|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
resp_ping|tam:14|CRLF
```

#### STATUS SENSOR

Solicita o status dos sensores do REMOTE.

**Formato do comando:**

```
st_sensor|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
st_sensor|tam:13|CRLF
```

#### RESPOSTA STATUS SENSOR

Resposta do REMOTE com o status dos 8 sensores.

**Formato do comando:**

```
resp_st_sensor|tam:<valor>|s1:<valor1>,<valor2>|s2:<valor1>,<valor2>|...|s8:<valor1>,<valor2>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `s1` a `s8`: \<Texto 1>,\<Texto 1> – status de cada sensor, onde valor1=0 (OFF), 1 (ON), 2 (Alarme), 3 (Indefinido) e valor2=0 (normal), 1 (invertido)

**Exemplo:**

```
resp_st_sensor|tam:60|s1:0,0|s2:1,0|s3:0,0|s4:0,0|s5:0,0|s6:0,0|s7:0,0|s8:0,0|CRLF
```

#### STATUS SENSOR INICIAL

Status inicial dos sensores enviado pelo REMOTE ao estabelecer a conexão.

**Formato do comando:**

```
st_sensor_inicio|tam:<valor>|s1:<valor1>,<valor2>|...|s8:<valor1>,<valor2>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `s1` a `s8`: \<Texto 1>,\<Texto 1> – status de cada sensor (mesma codificação do comando resp\_st\_sensor)

**Exemplo:**

```
st_sensor_inicio|tam:62|s1:0,0|s2:1,0|s3:0,0|s4:0,0|s5:0,0|s6:0,0|s7:0,0|s8:0,0|CRLF
```

#### STATUS RELE

Solicita o status dos relés do REMOTE.

**Formato do comando:**

```
st_rele|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
st_rele|tam:12|CRLF
```

#### RESPOSTA STATUS RELE

Resposta do REMOTE com o status dos 8 relés.

**Formato do comando:**

```
resp_st_rele|tam:<valor>|r1:<valor>|r2:<valor>|...|r8:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `r1` a `r8`: \<Texto 1> – status de cada relé: 0=OFF, 1=ON, 2=Alarme, 3=Indefinido

**Exemplo:**

```
resp_st_rele|tam:40|r1:0|r2:0|r3:0|r4:0|r5:0|r6:0|r7:0|r8:0|CRLF
```

#### STATUS RELE INICIAL

Status inicial dos relés enviado pelo REMOTE ao estabelecer a conexão.

**Formato do comando:**

```
st_rele_inicio|tam:<valor>|r1:<valor>|r2:<valor>|...|r8:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `r1` a `r8`: \<Texto 1> – status de cada relé (mesma codificação do comando resp\_st\_rele)

**Exemplo:**

```
st_rele_inicio|tam:42|r1:0|r2:0|r3:0|r4:0|r5:0|r6:0|r7:0|r8:0|CRLF
```

#### ACIONAR RELE

Aciona um relé do REMOTE.

**Formato do comando:**

```
acionar_rele|tam:<valor>|rele:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)

**Exemplo:**

```
acionar_rele|tam:22|rele:1|CRLF
```

#### RESPOSTA ACIONAR RELE

Resposta do REMOTE ao comando de acionamento de relé.

**Formato do comando:**

```
resp_acionar_rele|tam:<valor>|rele:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido

**Exemplo:**

```
resp_acionar_rele|tam:28|rele:1|erro:0|CRLF
```

#### AGENDAR ACIONAMENTO RELE POR DATA

Agenda o acionamento de um relé em data e hora específicas.

**Formato do comando:**

```
ag_ac_rele_data|tam:<valor>|rele:<valor>|dia:<valor>|mes:<valor>|hora:<valor>|min:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 2> – dia do mês (01 a 31)
* `mes`: \<Texto 2> – mês (01 a 12)
* `hora`: \<Texto 2> – hora (00 a 23)
* `min`: \<Texto 2> – minuto (00 a 59)

**Exemplo:**

```
ag_ac_rele_data|tam:40|rele:1|dia:25|mes:12|hora:10|min:30|CRLF
```

#### RESPOSTA AGENDAR ACIONAMENTO RELE POR DATA

Resposta do REMOTE ao agendamento por data.

**Formato do comando:**

```
resp_ag_ac_rele_data|tam:<valor>|rele:<valor>|dia:<valor>|mes:<valor>|hora:<valor>|min:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 2> – dia do mês
* `mes`: \<Texto 2> – mês
* `hora`: \<Texto 2> – hora
* `min`: \<Texto 2> – minuto
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido, 4=agendamento cheio

**Exemplo:**

```
resp_ag_ac_rele_data|tam:48|rele:1|dia:25|mes:12|hora:10|min:30|erro:0|CRLF
```

#### AGENDAR ACIONAMENTO RELE POR DIA

Agenda o acionamento de um relé em um dia da semana e horário.

**Formato do comando:**

```
ag_ac_rele_dia|tam:<valor>|rele:<valor>|dia:<valor>|hora:<valor>|min:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 1> – dia da semana (0=domingo, 1=segunda, ..., 6=sábado)
* `hora`: \<Texto 2> – hora (00 a 23)
* `min`: \<Texto 2> – minuto (00 a 59)

**Exemplo:**

```
ag_ac_rele_dia|tam:36|rele:1|dia:1|hora:08|min:00|CRLF
```

#### RESPOSTA AGENDAR ACIONAMENTO RELE POR DIA

Resposta do REMOTE ao agendamento por dia.

**Formato do comando:**

```
resp_ag_ac_rele_dia|tam:<valor>|rele:<valor>|dia:<valor>|hora:<valor>|min:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 1> – dia da semana
* `hora`: \<Texto 2> – hora
* `min`: \<Texto 2> – minuto
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido, 4=agendamento cheio

**Exemplo:**

```
resp_ag_ac_rele_dia|tam:44|rele:1|dia:1|hora:08|min:00|erro:0|CRLF
```

#### CANCELAR AGENDAMENTO POR DATA

Cancela um agendamento de acionamento por data.

**Formato do comando:**

```
canc_ag_ac_rele_data|tam:<valor>|rele:<valor>|dia:<valor>|mes:<valor>|hora:<valor>|min:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 2> – dia do mês
* `mes`: \<Texto 2> – mês
* `hora`: \<Texto 2> – hora
* `min`: \<Texto 2> – minuto

**Exemplo:**

```
canc_ag_ac_rele_data|tam:44|rele:1|dia:25|mes:12|hora:10|min:30|CRLF
```

#### RESPOSTA CANCELAR AGENDAMENTO POR DATA

Resposta do REMOTE ao cancelamento por data.

**Formato do comando:**

```
resp_canc_ag_ac_rele_data|tam:<valor>|rele:<valor>|dia:<valor>|mes:<valor>|hora:<valor>|min:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 2> – dia do mês
* `mes`: \<Texto 2> – mês
* `hora`: \<Texto 2> – hora
* `min`: \<Texto 2> – minuto
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido, 4=agendamento não encontrado

**Exemplo:**

```
resp_canc_ag_ac_rele_data|tam:52|rele:1|dia:25|mes:12|hora:10|min:30|erro:0|CRLF
```

#### CANCELAR AGENDAMENTO POR DIA

Cancela um agendamento de acionamento por dia da semana.

**Formato do comando:**

```
canc_ag_ac_rele_dia|tam:<valor>|rele:<valor>|dia:<valor>|hora:<valor>|min:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 1> – dia da semana
* `hora`: \<Texto 2> – hora
* `min`: \<Texto 2> – minuto

**Exemplo:**

```
canc_ag_ac_rele_dia|tam:40|rele:1|dia:1|hora:08|min:00|CRLF
```

#### RESPOSTA CANCELAR AGENDAMENTO POR DIA

Resposta do REMOTE ao cancelamento por dia.

**Formato do comando:**

```
resp_canc_ag_ac_rele_dia|tam:<valor>|rele:<valor>|dia:<valor>|hora:<valor>|min:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `dia`: \<Texto 1> – dia da semana
* `hora`: \<Texto 2> – hora
* `min`: \<Texto 2> – minuto
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido, 4=agendamento não encontrado

**Exemplo:**

```
resp_canc_ag_ac_rele_dia|tam:48|rele:1|dia:1|hora:08|min:00|erro:0|CRLF
```

#### CANCELAR TODOS OS AGENDAMENTOS

Cancela todos os agendamentos de um relé.

**Formato do comando:**

```
canc_todos_ag_ac_rele|tam:<valor>|rele:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)

**Exemplo:**

```
canc_todos_ag_ac_rele|tam:28|rele:1|CRLF
```

#### RESPOSTA CANCELAR TODOS OS AGENDAMENTOS

Resposta do REMOTE ao cancelamento de todos os agendamentos.

**Formato do comando:**

```
resp_canc_todos_ag_ac_rele|tam:<valor>|rele:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido

**Exemplo:**

```
resp_canc_todos_ag_ac_rele|tam:34|rele:1|erro:0|CRLF
```

#### CONSULTAR AGENDAMENTOS

Consulta os agendamentos de um relé.

**Formato do comando:**

```
cons_ag_ac_rele|tam:<valor>|rele:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)

**Exemplo:**

```
cons_ag_ac_rele|tam:24|rele:1|CRLF
```

#### RESPOSTA CONSULTAR AGENDAMENTOS

Resposta do REMOTE com a lista de agendamentos do relé.

**Formato do comando:**

```
resp_cons_ag_ac_rele|tam:<valor>|rele:<valor>|nrag:<valor>|dia:<valor>|mes:<valor>|hora:<valor>|min:<valor>|...|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `nrag`: \<Texto 2> – número de agendamentos retornados
* `dia`, `mes`, `hora`, `min`: repetidos para cada agendamento
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=relé inválido

**Exemplo:**

```
resp_cons_ag_ac_rele|tam:60|rele:1|nrag:1|dia:25|mes:12|hora:10|min:30|erro:0|CRLF
```

#### STATUS PORTAS TELEFONIA

Solicita o status das portas de telefonia (FXO1, FXO2, SIP1, SIP2).

**Formato do comando:**

```
st_portas_telef|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
st_portas_telef|tam:19|CRLF
```

#### RESPOSTA STATUS PORTAS TELEFONIA

Resposta do REMOTE com o status das portas de telefonia.

**Formato do comando:**

```
resp_st_portas_telef|tam:<valor>|fxo1:<valor>|fxo2:<valor>|sip1:<valor>|sip2:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `fxo1`: \<Texto 1> – status da porta FXO1
* `fxo2`: \<Texto 1> – status da porta FXO2
* `sip1`: \<Texto 1> – status da conta SIP1
* `sip2`: \<Texto 1> – status da conta SIP2
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto

**Exemplo:**

```
resp_st_portas_telef|tam:40|fxo1:0|fxo2:0|sip1:10|sip2:0|erro:0|CRLF
```

#### STATUS PORTAS TELEFONIA INICIAL

Status inicial das portas de telefonia enviado pelo REMOTE ao estabelecer a conexão.

**Formato do comando:**

```
st_portas_inicio|tam:<valor>|fxo1:<valor>|fxo2:<valor>|sip1:<valor>|sip2:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `fxo1`, `fxo2`, `sip1`, `sip2`: status de cada porta (mesma codificação do comando resp\_st\_portas\_telef)
* `erro`: \<Texto 1> – 0=OK

**Exemplo:**

```
st_portas_inicio|tam:42|fxo1:0|fxo2:0|sip1:10|sip2:0|erro:0|CRLF
```

#### FINALIZAR TODAS AS CHAMADAS

Finaliza todas as chamadas ativas.

**Formato do comando:**

```
finalizar_todas_chamadas|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
finalizar_todas_chamadas|tam:27|CRLF
```

#### RESPOSTA FINALIZAR TODAS AS CHAMADAS

Resposta do REMOTE ao comando de finalizar todas as chamadas.

**Formato do comando:**

```
resp_finalizar_todas_chamadas|tam:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=erro ao finalizar

**Exemplo:**

```
resp_finalizar_todas_chamadas|tam:33|erro:0|CRLF
```

#### HABILITA/DESABILITA ENVIO DE EVENTOS

Habilita ou desabilita o envio automático de eventos pelo REMOTE.

**Formato do comando:**

```
hab_desab_envio_eventos|tam:<valor>|st_rele:<valor>|st_sensor:<valor>|alarme_sensor:<valor>|st_portas:<valor>|evento_vinc:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `st_rele`: \<Texto 1> – 0=desabilita eventos de status de relé, 1=habilita
* `st_sensor`: \<Texto 1> – 0=desabilita eventos de status de sensor, 1=habilita
* `alarme_sensor`: \<Texto 1> – 0=desabilita eventos de alarme de sensor, 1=habilita
* `st_portas`: \<Texto 1> – 0=desabilita eventos de status de portas, 1=habilita
* `evento_vinc`: \<Texto 1> – 0=habilita eventos vinculados, 1=desabilita

**Exemplo:**

```
hab_desab_envio_eventos|tam:97|st_rele:1|st_sensor:1|alarme_sensor:1|st_portas:1|evento_vinc:0|CRLF
```

#### RESPOSTA HABILITA/DESABILITA ENVIO DE EVENTOS

Resposta do REMOTE ao comando de habilitação/desabilitação de eventos.

**Formato do comando:**

```
resp_hab_desab_envio_eventos|tam:<valor>|st_rele:<valor>|st_sensor:<valor>|alarme_sensor:<valor>|st_portas:<valor>|evento_vinc:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `st_rele`: \<Texto 1> – 0=desabilitado, 1=habilitado
* `st_sensor`: \<Texto 1> – 0=desabilitado, 1=habilitado
* `alarme_sensor`: \<Texto 1> – 0=desabilitado, 1=habilitado
* `st_portas`: \<Texto 1> – 0=desabilitado, 1=habilitado
* `evento_vinc`: \<Texto 1> – 0=habilitado, 1=desabilitado
* `erro`: \<Texto 1> – 0=OK, 1=NOK, 3=resposta de consulta

**Exemplo:**

```
resp_hab_desab_envio_eventos|tam:110|st_rele:1|st_sensor:1|alarme_sensor:1|st_portas:1|evento_vinc:0|erro:0|CRLF
```

#### EVENTO STATUS RELE

Evento enviado pelo REMOTE quando ocorre mudança de status de um relé.

**Formato do comando:**

```
evento_st_rele|tam:<valor>|rele:<valor>|st:<valor>|ac:<valor>|data:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `st`: \<Texto 1> – 1=ON, 0=OFF
* `ac`: \<Texto 2> – origem do acionamento: 0=desconhecida, 1=botão, 2=DTMF, 3=web, 4=protocolo de integração, 5=agendamento
* `data`: \<Texto 20> – data e hora da mudança de status

**Exemplo:**

```
evento_st_rele|tam:40|rele:1|st:1|ac:4|data:25/08/2021 10:30:00|CRLF
```

#### EVENTO STATUS SENSOR

Evento enviado pelo REMOTE quando ocorre mudança de status de um sensor.

**Formato do comando:**

```
evento_st_sensor|tam:<valor>|sensor:<valor>|st:<valor>|logica:<valor>|data:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `sensor`: \<Texto 1> – número do sensor (1 a 8)
* `st`: \<Texto 1> – 1=ON, 0=OFF
* `logica`: \<Texto 1> – 0=normal, 1=invertida
* `data`: \<Texto 20> – data e hora da mudança de status

**Exemplo:**

```
evento_st_sensor|tam:42|sensor:1|st:1|logica:0|data:25/08/2021 10:31:00|CRLF
```

#### EVENTO ALARME SENSOR

Evento enviado pelo REMOTE quando ocorre mudança de estado de alarme de um sensor.

**Formato do comando:**

```
evento_alarme_sensor|tam:<valor>|sensor:<valor>|alarme:<valor>|data:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `sensor`: \<Texto 1> – número do sensor (1 a 8)
* `alarme`: \<Texto 1> – 1=ON, 0=OFF
* `data`: \<Texto 20> – data e hora do evento

**Exemplo:**

```
evento_alarme_sensor|tam:40|sensor:1|alarme:1|data:25/08/2021 10:32:00|CRLF
```

#### RESETAR ALARME SENSOR

Comando do SEI para resetar o alarme de um sensor.

**Formato do comando:**

```
resetar_alarme_sensor|tam:<valor>|sensor:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `sensor`: \<Texto 1> – número do sensor (1 a 8)

**Exemplo:**

```
resetar_alarme_sensor|tam:28|sensor:1|CRLF
```

#### RESPOSTA RESETAR ALARME SENSOR

Resposta do REMOTE ao comando de reset de alarme.

**Formato do comando:**

```
resp_resetar_alarme_sensor|tam:<valor>|sensor:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `sensor`: \<Texto 1> – número do sensor (1 a 8)
* `erro`: \<Texto 1> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=sensor inválido

**Exemplo:**

```
resp_resetar_alarme_sensor|tam:34|sensor:1|erro:0|CRLF
```

#### EVENTO STATUS PORTAS TELEFONIA

Evento enviado pelo REMOTE quando ocorre mudança de status nas portas de telefonia.

**Formato do comando:**

```
evento_st_porta|tam:<valor>|porta:<valor>|st:<valor>|org:<valor>|dst:<valor>|data:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `porta`: \<Texto 1> – 0=FXO1, 1=FXO2, 2=SIP1, 3=SIP2
* `st`: \<Texto 1> – status da porta: 0=LIVRE, 1=CHAMANDO, 2=ATENDIDO, 3=DISCANDO, 4=COM TOM, 5=ESTENDIDO, 6-8=USO FUTURO, 9=DESCONHECIDO, 10=REGISTRADO, 11=NÃO REGISTRADO, 12=DESABILITADO, 13=REGISTRO NÃO HABILITADO
* `org`: \<Texto 22> – número de origem
* `dst`: \<Texto 22> – número de destino
* `data`: \<Texto 20> – data e hora do evento

**Exemplo:**

```
evento_st_porta|tam:60|porta:0|st:1|org:1234|dst:5678|data:25/08/2021 10:33:00|CRLF
```

#### EVENTO VINCULADO

Evento enviado pelo REMOTE para chamada vinculada (PSTN para VoIP com acionamento de relé).

**Formato do comando:**

```
evento_vinc|tam:<valor>|rele:<valor>|org:<valor>|cond:<valor>|data:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `rele`: \<Texto 1> – número do relé (1 a 8)
* `org`: \<Texto 20> – número de origem PSTN
* `cond`: \<Texto 32> – nome do condomínio
* `data`: \<Texto 20> – data e hora do evento

**Exemplo:**

```
evento_vinc|tam:60|rele:1|org:1234|cond:Condominio|data:25/08/2021 10:34:00|CRLF
```

#### CLICK TO CALL

Inicia uma chamada de voz entre uma conta SIP e uma interface FXO.

**Formato do comando:**

```
click_to_call|tam:<valor>|fxo:<valor>|dig_fxo:<valor>|sip:<valor>|dig_sip:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `fxo`: \<Texto 1> – número da interface FXO
* `dig_fxo`: \<Texto 25> – número de destino na interface FXO
* `sip`: \<Texto 1> – número da conta SIP
* `dig_sip`: \<Texto 25> – número de destino na conta SIP

> Obs: As chamadas só podem ser realizadas entre FXO1↔SIP1 ou FXO2↔SIP2 (limitação de RTP).

**Exemplo:**

```
click_to_call|tam:50|fxo:1|dig_fxo:1234|sip:1|dig_sip:5678|CRLF
```

#### ENVIAR DIGITOS PARA A INTERFACE FXO

Envia dígitos DTMF para uma interface FXO durante uma chamada ativa.

**Formato do comando:**

```
envia_dig_fxo|tam:<valor>|fxo:<valor>|digitos:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `fxo`: \<Texto 1> – número da interface FXO
* `digitos`: \<Texto 25> – sequência DTMF

> Dígitos DTMF suportados: 0-9, \* (asterisco), # (jogo da velha), F (flash), P (pausa), D (desconectar).

**Exemplo:**

```
envia_dig_fxo|tam:30|fxo:1|digitos:123#|CRLF
```

#### COMANDO DE COMUNICAÇÃO AO PROTOCOLO SCA1000 (Prot\_SCA)

Ponte de comunicação com o protocolo de controle de acesso SCA1000 via MIP1000.

**Formato do comando:**

```
Prot_sca|tam:<valor>|SEQUENCIA HEXA SDK SCA1000|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `SEQUENCIA HEXA SDK SCA1000`: sequência hexadecimal do protocolo SCA1000

**Exemplo:**

```
Prot_sca|tam:40|SEQUENCIA HEXA SDK SCA1000|CRLF
```

#### RESPOSTA PROT\_SCA

Resposta do REMOTE ao comando de comunicação SCA1000.

**Formato do comando:**

```
resp_prot_sca|tam:<valor>|erro:<valor>|(dados hexa)|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `erro`: \<Texto 1> – 0=OK, 1=erro de montagem do frame, 2=tamanho inválido, 3=frame SCA inválido, 4=erro de comunicação RS485, 5=comunicação SCA1000 desabilitada
* dados hexa: dados de resposta do protocolo SCA1000

**Exemplo:**

```
resp_prot_sca|tam:40|erro:0|(dados hexa)|CRLF
```

#### COMANDO HABILITA E DESABILITA EVENTOS AUTOMÁTICOS DO SCA

Habilita ou desabilita o envio automático de eventos do SCA.

**Formato do comando:**

```
hab_desab_eventos_prot_sca|tam:<valor>|usuario:<valor>|dispositivo:<valor>|mip:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `usuario`: \<Texto 1> – 1=habilitado, 0=desabilitado
* `dispositivo`: \<Texto 1> – 1=habilitado, 0=desabilitado
* `mip`: \<Texto 1> – 1=habilitado, 0=desabilitado

**Exemplo:**

```
hab_desab_eventos_prot_sca|tam:40|usuario:1|dispositivo:1|mip:1|CRLF
```

#### COMANDO VERIFICA STATUS DO MIP1000

Verifica se o MIP1000 está online ou offline.

**Formato do comando:**

```
st_prot_sca|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
st_prot_sca|tam:15|CRLF
```

#### RESPOSTA STATUS MIP1000

Resposta do REMOTE com o status do MIP1000.

**Formato do comando:**

```
resp_st_prot_sca|tam:<valor>|mip:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `mip`: \<Texto 1> – 1=online, 0=offline

**Exemplo:**

```
resp_st_prot_sca|tam:22|mip:1|CRLF
```

#### FINALIZAR CHAMADA

Finaliza uma chamada ativa específica.

**Formato do comando:**

```
finalizar_chamada|tam:<valor>|fxo:<valor>|sip:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `fxo`: \<Texto 1> – 1 ou 2
* `sip`: \<Texto 1> – 1 ou 2

**Exemplo:**

```
finalizar_chamada|tam:28|fxo:1|sip:1|CRLF
```

#### RESPOSTA FINALIZAR CHAMADA

Resposta do REMOTE ao comando de finalizar chamada.

**Formato do comando:**

```
resp_finalizar_chamada|tam:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `erro`: \<Texto 2> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=erro ao finalizar, 4=fxo/sip inválido

**Exemplo:**

```
resp_finalizar_chamada|tam:28|erro:0|CRLF
```

#### HABILITA/DESABILITA FINALIZAR AUTOMATICAMENTE CHAMADA ANTES DO CLICK TO CALL

Habilita ou desabilita a finalização automática de chamadas antes do comando click\_to\_call.

**Formato do comando:**

```
hab_desab_finalizar_chamada_antes_click_to_call|tam:<valor>|hab:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `hab`: \<Texto 1> – 0=desabilita, 1=habilita

**Exemplo:**

```
hab_desab_finalizar_chamada_antes_click_to_call|tam:50|hab:1|CRLF
```

#### RESPOSTA HABILITA/DESABILITA FINALIZAR AUTOMATICAMENTE CHAMADA ANTES DO CLICK TO CALL

Resposta do REMOTE ao comando de habilitação/desabilitação.

**Formato do comando:**

```
resp_hab_desab_finalizar_chamada_antes_click_to_call|tam:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `erro`: \<Texto 2> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=hab inválido, 4=erro ao salvar arquivo

**Exemplo:**

```
resp_hab_desab_finalizar_chamada_antes_click_to_call|tam:56|erro:0|CRLF
```

#### STATUS HABILITA FINALIZAR CHAMADA ANTES DO CLICK TO CALL

Consulta o status da finalização automática de chamadas antes do click\_to\_call.

**Formato do comando:**

```
st_hab_desab_finalizar_chamada_antes_click_to_call|tam:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres

**Exemplo:**

```
st_hab_desab_finalizar_chamada_antes_click_to_call|tam:48|CRLF
```

#### RESPOSTA STATUS HABILITA FINALIZAR CHAMADA ANTES DO CLICK TO CALL

Resposta do REMOTE com o status da finalização automática.

**Formato do comando:**

```
resp_st_hab_desab_finalizar_chamada_antes_click_to_call|tam:<valor>|st:<valor>|erro:<valor>|CRLF
```

**Descrição dos campos:**

* `tam`: \<Texto 4> – tamanho total do comando em caracteres
* `st`: \<Texto 1> – 0=desabilitado, 1=habilitado, 2=erro
* `erro`: \<Texto 2> – 0=OK, 1=formato NOK, 2=tamanho incorreto, 3=erro ao ler arquivo

**Exemplo:**

```
resp_st_hab_desab_finalizar_chamada_antes_click_to_call|tam:54|st:1|erro:0|CRLF
```


---

# 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/remote/remote-protocolo-aberto.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.
