> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unicontrol.me/llms.txt
> Use this file to discover all available pages before exploring further.

# SNMP

> Monitore e controle nobreaks, switches, roteadores, impressoras e PDUs via SNMP v1, v2c e v3

# SNMP

A integração **SNMP** lê e escreve valores em qualquer dispositivo que tenha um
agente SNMP, nas versões v1, v2c e v3. É baseada nas plataformas `snmp` do Home
Assistant, mas toda a configuração é feita pela interface e já vem com
**perfis prontos para nobreaks**.

Ela serve para:

* **Nobreaks** APC/Schneider com Network Management Card e modelos que seguem a
  UPS-MIB (RFC 1628), como Eaton, NHS, SMS e Vertiv;
* **Switches e roteadores**, por exemplo para acompanhar uptime, tráfego e
  status de portas;
* **Impressoras, PDUs e sensores de ambiente**: qualquer valor exposto por OID.

> [!NOTE]
>
> Roda apenas em um **edge local (home)**. O agente SNMP responde em UDP 161 na
> rede local, então o edge precisa estar na mesma rede do dispositivo.

## Configurar

**1. Adicione a integração**

Vá em **Configurações → Integrações → Adicionar → SNMP** e selecione um edge
local.

**2. Conexão**

Informe **Nome**, **Host**, **Porta** (padrão 161), **Versão** e, em
v1/v2c, a **Community** (padrão `public`). Escolha um **Perfil** e o
**Intervalo de leitura**, que por padrão é de 30 segundos.

**3. Credenciais SNMPv3 (opcional)**

Em v3, informe usuário, protocolo de autenticação (MD5, SHA, SHA-2) e
protocolo de privacidade (DES, AES-128 ou AES-256), junto com as chaves.
Cada chave precisa ter no mínimo 8 caracteres.

**4. Entidades**

O Portal testa a conexão e mostra o nome e o modelo do dispositivo. Nesse
passo você pode **adicionar entidades por OID**, e cada OID é lido na hora
para confirmar que existe. Também dá para **concluir** e usar apenas as
entidades do perfil.

> [!WARNING]
>
> Quando a community ou as credenciais estão erradas, o SNMP não devolve erro:
> o dispositivo simplesmente **não responde**. Por isso, um timeout geralmente
> significa community, versão ou porta incorretas, ou SNMP desabilitado no
> dispositivo.

## Perfis

| Perfil | Para quem | Entidades |
| - | - | - |
| **Genérico** | Qualquer dispositivo | Só `Uptime`. Você adiciona as demais por OID. |
| **Nobreak APC / Schneider** | Smart-UPS, Back-UPS Pro e Symmetra com Network Management Card (PowerNet-MIB) | Status, na bateria, carga e autonomia, temperatura e tensão da bateria, bateria fraca, trocar bateria, tensão e frequência de entrada e saída, carga e corrente de saída, resultado e data do autoteste. Botões: iniciar autoteste, calibrar autonomia e testar alarme. |
| **Nobreak UPS-MIB (RFC 1628)** | Eaton, NHS, SMS, Vertiv/Liebert e outros que seguem o padrão | Status, na bateria, estado da bateria, carga e autonomia, tempo na bateria, tensão e temperatura da bateria, tensão e frequência de entrada e saída, corrente, potência e carga de saída, alarmes ativos. |

Cada modelo expõe só uma parte dos OIDs do perfil, então o Portal cria
**apenas as entidades que respondem** na primeira leitura. Os botões do perfil
APC só funcionam com uma community de **escrita** ou um usuário v3 com
permissão de escrita.

### Habilitar o SNMP na Network Management Card da APC

1. Acesse a interface web da placa (`http://<ip-do-nobreak>`).
2. Abra **Configuration → Network → SNMPv1 → Access** e marque **Enable SNMPv1
   access**. Para v3, use **SNMPv3 → Access**.
3. Em **SNMPv1 → Access Control**, configure uma community com acesso
   **Read** (ou **Write+** para os botões) e o **NMS IP/Host Name** do edge.
   Também é possível usar `0.0.0.0` para permitir qualquer origem.
4. Salve. Algumas versões de firmware pedem reiniciar a placa
   (**Control → Network → Reboot Management Interface**).

## Tipos de entidade

| Tipo | Lê | Escreve | Estado |
| - | - | - | - |
| **Sensor** | OID de leitura | — | O valor lido. Pode passar por multiplicador, deslocamento e casas decimais (`valor × multiplicador + deslocamento`) ou por uma **tradução de valores** (`2=online, 3=on_battery`). |
| **Sensor binário** | OID de leitura | — | `on` quando o valor está em *Valor para ligado* (padrão `1`); `off` em *Valor para desligado* (padrão `0`). Com *desligado* vazio, qualquer outro valor vira `off`. |
| **Interruptor** | OID de leitura | OID de comando (padrão: o mesmo) | Igual ao sensor binário. Um valor fora das duas listas vira `unknown`. Os valores escritos para ligar e desligar podem ser diferentes dos lidos. |
| **Botão** | — | OID de comando | Escreve um valor fixo a cada pressionamento. |

Os OIDs usam a notação numérica, por exemplo `1.3.6.1.2.1.1.3.0`. Nomes da MIB
como `SNMPv2-MIB::sysUpTime.0` não são aceitos. Valores escalares quase sempre
terminam em `.0`.

O **tipo do valor escrito** segue a RFC 1902 (`Integer`, `Unsigned32`,
`Gauge32`, `Counter32`, `Counter64`, `TimeTicks`, `OctetString`, `IpAddress`,
`ObjectIdentifier`). O padrão é `Integer`, como no Home Assistant.

Cada entidade expõe nos atributos o `host`, o `oid` e, quando há tradução, o
`raw_value` (valor cru) e as `options` possíveis.

## Limitações

* **Sem `switch.toggle`:** use `switch.turn_on` e `switch.turn_off`.
* **Sem templates:** no lugar dos templates Jinja do Home Assistant, use
  multiplicador, deslocamento, casas decimais e tradução de valores.
* **Sem traps:** o Portal consulta o dispositivo no intervalo configurado.
* Se o dispositivo ficar inacessível, todas as entidades passam a
  `unavailable` até a próxima leitura bem-sucedida.

## Reconfigurar

Em **Configurações → Integrações → SNMP → Reconfigurar** é possível alterar
host, porta, versão, credenciais, perfil e intervalo, além de adicionar ou
remover entidades manuais. Deixe os campos de community e chaves em branco para
manter os valores atuais. As entidades mantêm o mesmo ID mesmo se o host mudar,
e as que saírem da configuração são removidas automaticamente.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.