> 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/defense-ia-and-lite/readme/painel-de-controle-de-acesso.md).

# Painel de Controle de Acesso

Guia de endpoints do painel de controle de alarmes (alarm-host/OBMS): subsistemas/partições, zonas, sincronização, operações em lote e canais de sinal/saída, com exemplos curl.

### Como usar:

* Substitua as variáveis `{{host}}`, `{{loginToken}}` e demais identificadores pelos valores reais do ambiente.
* Utilize variáveis globais do seu projeto quando disponíveis para evitar hardcode.
* Ajuste parâmetros de query conforme o cenário (paginação, filtros, IDs).
* Campos JSON opcionais podem ser removidos ou adicionados sem alterar a estrutura base.
* Sempre valide os tipos esperados pelo backend antes de enviar requisições em lote.

***

### Convenções e autenticação

* Códigos de resultado (padrão): `code: 1000` indica sucesso
* Content-Type: `application/json;charset=UTF-8`
* Idioma (opcional): `Accept-Language: en`
* Autenticação: header `X-Subject-Token: {{loginToken}}` (obtenha o token no seu fluxo de login do projeto)
* Base URL: `http://{{host}}/iams/api/v1.1`

***

### Erros comuns (modelo):

| Situação                   |                       Sintoma | Como resolver                             |
| -------------------------- | ----------------------------: | ----------------------------------------- |
| Token ausente/expirado     |                         `401` | Refaça login e atualize `X-Subject-Token` |
| Content-Type incorreto     |  `415 Unsupported Media Type` | Use `application/json;charset=UTF-8`      |
| Campos obrigatórios vazios | `400` / mensagem de validação | Revise a seção **Parâmetros** do endpoint |

***

### Aquisição em lotes das listas de subsistemas e partições do painel de controle de alarmes.

**Tópico**: Consulta em lote os subsistemas e partições associados a um ou mais dispositivos de painel de alarme, retornando a lista estruturada vinculada a cada código de dispositivo informado.

* Método: `POST /obms/api/v1.1/alarm-host/device/area/fetch/batch/list`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/device/area/fetch/batch/list' 
--header 'X-Subject-Token: 603E0CD22DEA4D8Eb8d1eced76323104' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "deviceCodes": [
        "1000029"
    ]
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "results": []
    }
}
```

### Obter lista de subsistemas do painel de controle de alarme por página

**Tópico**: Consulta paginada dos subsistemas (áreas/partições) de um painel de alarme específico, permitindo filtros por palavra-chave e status de armamento.

* Método: `GET /obms/api/v1.1/alarm-host/area/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/area/page?page=1&pageSize=20&keyword=&deviceCode=1000029&armStatus=0' 
--header 'X-Subject-Token: 603E0CD22DEA4D8Eb8d1eced76323104' 
--header 'Cookie: Path=/'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": "0",
        "pageData": []
    }
}
```

### Obter lista de zonas de proteção do painel de controle de alarme por página

**Tópico**: Consulta paginada dos subsistemas (áreas/partições) de um painel de alarme específico, permitindo filtros por palavra-chave e status de armamento.

* Método: `GET /obms/api/v1.1/alarm-host/zone/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/zone/page?pageSize=1&deviceCode=10000298&keyword=&page=1' 
--header 'X-Subject-Token: C8DBE0AD6E484231a0301173f57f1908' 
--header 'Cookie: Path=/'
```

Resposta (modelo – sucesso):

```json
{
  "code": 1000,
  "desc": "Success",
  "data": {
    "totalCount": "3",
    "pageData": [
      {
        "zoneId": "50001",
        "zoneName": "Zona Porta Principal",
        "deviceCode": "10000298",
        "areaId": "30001",
        "zoneType": "perimeter",
        "status": "normal"
      },
      {
        "zoneId": "50002",
        "zoneName": "Zona Janela Escritório",
        "deviceCode": "10000298",
        "areaId": "30001",
        "zoneType": "instant",
        "status": "bypassed"
      },
      {
        "zoneId": "50003",
        "zoneName": "Sensor Movimento Sala",
        "deviceCode": "10000298",
        "areaId": "30002",
        "zoneType": "motion",
        "status": "normal"
      }
    ]
  }
}
```

### Sincronizar informações do painel de controle de alarme (Notificação de dessincronização)

**Tópico**: Consulta paginada das **zonas de proteção** de um painel de alarme específico.

* Método: `POST /obms/api/v1.1/alarm-host/device/{deviceCode}/info/synchronize`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location --request POST 'https://{{Host}}/obms/api/v1.1/alarm-host/device/1000001/info/synchronize' 
--header 'X-Subject-Token: 981B2280C8A743A8ae72d18f40581df0' 
--header 'Cookie: Path=/' 
--data ''
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": null
}
```

### Operação de dispositivos de painel de controle de alarme em lotes

**Tópico**: Solicita ao sistema a sincronização das informações de um ou mais painéis de alarme cadastrados no Defense.

* Método: `POST /obms/api/v1.1/alarm-host/device/operate/batch`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/device/operate/batch' 
--header 'X-Subject-Token: DD4A1A20419F4D088a9dbd1672cb36a9' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "forceMode":"0",
    "deviceCodes":["1000029"],
    "operateType":"1"
}
'
```

Resposta (modelo – sucesso):

```json
{
    "code": 145003,
    "desc": "Batch operation failed.",
    "data": {
        "failedResults": [
            {
                "deviceCode": "1000029",
                "deviceName": "10.100.70.66",
                "supportForceMode": "0",
                "errors": [
                    {
                        "errorType": "1",
                        "errorMsg": "No Permission(10.100.70.66)."
                    }
                ]
            }
        ]
```

### Operação em lotes dos subsistemas do painel de controle de alarmes

**Tópico**: Executa uma operação em lote sobre áreas (subsistemas) de um painel de alarme cadastrado no sistema.

* Método: `POST /obms/api/v1.1/alarm-host/area/operate/batch`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/area/operate/batch' 
--header 'X-Subject-Token: A8017E4EB7324B909484d894b9f65baf' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/; Path=/' 
--data '{
    "forceMode": "0",
    "areaIds": [
        "1000003$1$0$-1"
    ],
    "operateType": "1"
}'
```

Resposta (modelo – sucesso):

```json
{
  "code": 1000,
  "desc": "Success",
  "data": {
    "totalCount": "2",
    "pageData": [
      {
        "areaId": "30001",
        "areaName": "Área Principal",
        "deviceCode": "10000298",
        "status": "online"
      },
      {
        "areaId": "30002",
        "areaName": "Área Escritório",
        "deviceCode": "10000298",
        "status": "online"
      }
    ]
  }
}
```

### Operar zonas de proteção do painel de controle de alarme em lotes

**Tópico**: Executa operações em lote sobre zonas de proteção de um painel de alarme, como habilitar, desabilitar, bypass, restaurar ou outras ações suportadas pelo sistema. A operação é aplicada simultaneamente a todas as zonas informadas.

* Método: `POST /obms/api/v1.1/alarm-host/zone/operate/batch`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/zone/operate/batch' 
--header 'X-Subject-Token: 981B2280C8A743A8ae72d18f40581df0' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/; Path=/' 
--data '{
    "operateType": "8",
    "zoneIds": [
        "1161",
        "1163"
    ]
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": null
}
```

### Obter lista de canais de saída de alarme do controlador

**Tópico**: Consulta a lista de canais de saída de alarme associados a um controlador de alarme específico, retornando as saídas configuradas (relés/canais físicos ou lógicos) disponíveis no dispositivo.

* Método: `GET /obms/api/v1.1/alarm-host/alarm-out/channel/list`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/obms/api/v1.1/alarm-host/alarm-out/channel/list?deviceCode=1000003' 
--header 'X-Subject-Token: 981B2280C8A743A8ae72d18f40581df0' 
--header 'Cookie: Path=/' 
--data ''
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "results": []
    }
}
```

### Obter lista de canais de alarme do controlador

**Tópico**: Consulta a lista de canais de sinal de alarme de um controlador específico, retornando os canais de entrada/sinal configurados no dispositivo.

* Método: `GET /obms/api/v1.1/alarm-host/alarm-signal/channel/list`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://10.100.61.138:443/obms/api/v1.1/alarm-host/alarm-signal/channel/list?deviceCode=1000003' \
--header 'X-Subject-Token: 981B2280C8A743A8ae72d18f40581df0' \
--header 'Cookie: Path=/'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "results": []
    }
}
```

### Canal de saída operacional do controlador de alarme em lotes

**Tópico**: Executa operações em lote nos canais de saída de alarme de um controlador, permitindo acionar, desligar ou aplicar comandos suportados simultaneamente a múltiplos canais.

* Método: `POST /obms/api/v1.1/alarm-host/alarm-out/channel/operate/batch`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{[Host}}/obms/api/v1.1/alarm-host/alarm-out/channel/operate/batch' 
--header 'X-Subject-Token: 981B2280C8A743A8ae72d18f40581df0' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/; Path=/' 
--data '{
    "channelIds": [
        "1000003$1$0$1"
    ],
    "operateType": "1"
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "failedChannelIds": [
            "1000003$1$0$1"
        ]
    }
}
```

### Canais de sinal de alarme operacionais do controlador de alarme em lotes

**Tópico**: Executa operações em lote nos canais de saída de alarme de um controlador, permitindo acionar, desligar ou aplicar comandos suportados simultaneamente a múltiplos canais.

* Método: `POST /obms/api/v1.1/alarm-host/alarm-out/channel/operate/batch`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{[Host}}/obms/api/v1.1/alarm-host/alarm-out/channel/operate/batch' 
--header 'X-Subject-Token: 981B2280C8A743A8ae72d18f40581df0' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/; Path=/' 
--data '{
    "channelIds": [
        "1000003$1$0$1"
    ],
    "operateType": "1"
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "failedChannelIds": [
            "1000003$1$0$1"
        ]
    }
}
```

***

Notas Finais:

* Operações em lote podem retornar sucesso geral com falhas individuais, sempre valide os retornos internos.
* Evite enviar chamadas concorrentes excessivas para o mesmo dispositivo.
* Sempre valide:
  * conectividade
  * status do painel
  * sincronização do dispositivo
* Após sincronizações:
  * aguarde atualização interna antes de novas operações
  * valide retorno do sistema

***


---

# 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/defense-ia-and-lite/readme/painel-de-controle-de-acesso.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.
