Как подключить SNMP в Home Assistant и получать метрики устройств

Получение SNMP-метрик в Home Assistant и работа с OID на примере эмуляции SNMP-интерфейса с помощью snmpsim.

Посмотрите демо умного дома на Home Assistant. Практические заметки по Home Assistant публикуем в Telegram. Нужна помощь — поможем решить задачу.

Как подключить SNMP в Home Assistant и получать метрики устройств

Введение

Иногда возникает задача получить данные об устройстве, когда доступен только SNMP-интерфейс. Это могут быть системы хранения энергии, роутеры и другие устройства, у которых нет готовых интеграций или API, за исключением SNMP.

В таких случаях SNMP остаётся универсальным способом получения метрик. Home Assistant позволяет опрашивать такие устройства и получать их состояние для отображения и дальнейшего использования в автоматизациях.

В этой статье рассматривается сценарий получения SNMP-метрик в Home Assistant без реального оборудования — через эмуляцию устройства. Эмулируется простое сетевое устройство с базовыми интерфейсами и счётчиками трафика.

Эмуляция SNMP-интерфейса

Для эмуляции используется snmpsim. Установка выполняется командой pip install snmpsim.

Эмулятор читает данные из файла в формате OID|TYPE|VALUE, где TYPE задаёт тип значения (например Integer, String, Counter32 или TimeTicks).

Пример данных для эмуляции устройства:

# system
1.3.6.1.2.1.1.1.0|4|SNMP Test Device
1.3.6.1.2.1.1.3.0|67|123456
1.3.6.1.2.1.1.5.0|4|lab-router

# interfaces
1.3.6.1.2.1.2.1.0|2|2
1.3.6.1.2.1.2.2.1.2.1|4|eth0
1.3.6.1.2.1.2.2.1.2.2|4|wlan0
1.3.6.1.2.1.2.2.1.8.1|2|1
1.3.6.1.2.1.2.2.1.8.2|2|1
1.3.6.1.2.1.2.2.1.10.1|65|123456789
1.3.6.1.2.1.2.2.1.10.2|65|22222222
1.3.6.1.2.1.2.2.1.16.1|65|987654321
1.3.6.1.2.1.2.2.1.16.2|65|33333333

Файл public.snmprec должен быть размещён в каталоге ./data. Запуск эмулятора выполняется командой:

python -m snmpsim.commands.responder \
  --agent-udpv4-endpoint=0.0.0.0:161 \
  --data-dir=./data

Проверить работу можно командами snmpwalk -v2c -c public 127.0.0.1 и snmpget -v2c -c public 127.0.0.1 1.3.6.1.2.1.1.5.0: первая возвращает дерево доступных OID, вторая — конкретное значение по заданному OID. Если команды возвращают значения, эмулятор работает корректно.

Важно: данные в таком сценарии статичны. Для динамики значения необходимо изменять в файле public.snmprec вручную или с помощью скрипта.

Настройка SNMP в Home Assistant

Конфигурация добавляется в файл configuration.yaml:

sensor:
  - platform: snmp
    name: "SNMP Test"
    host: 192.168.0.101
    community: public
    version: "2c"
    baseoid: 1.3.6.1.2.1.1.5.0

  - platform: snmp
    name: "SNMP eth0 In"
    host: 192.168.0.101
    community: public
    version: "2c"
    baseoid: 1.3.6.1.2.1.2.2.1.10.1

  - platform: snmp
    name: "SNMP eth0 Out"
    host: 192.168.0.101
    community: public
    version: "2c"
    baseoid: 1.3.6.1.2.1.2.2.1.16.1

После изменения конфигурации Home Assistant потребуется перезапуск. Проверка выполняется в Инструменты разработчика → Состояния: если сенсоры с префиксом snmp_ появились и имеют значения, настройка выполнена корректно.

Ограничения интеграции (по состоянию на апрель 2026 года): не поддерживаются SNMP SetRequest и Traps, отсутствует управление частотой опроса (scan_interval) на уровне интеграции.

Визуализация метрик на дашборде

После того как данные получены, их можно использовать как обычные сенсоры Home Assistant — например, выводить на дашборде. Для построения графиков используется кастомная карточка apexcharts-card, которую необходимо установить (например, через HACS). Ниже приведён пример отображения:

type: custom:apexcharts-card
header:
  show: true
  title: SNMP Traffic
graph_span: 30m
series:
  - entity: sensor.snmp_eth0_in
    name: eth0 in
  - entity: sensor.snmp_eth0_out
    name: eth0 out

Заключение

SNMP остаётся практическим инструментом для работы с устройствами, у которых нет альтернативных способов интеграции. Через Home Assistant такие устройства можно быстро добавить как источник данных и использовать их показатели в интерфейсе и автоматизациях. Использование snmpsim позволяет безопасно проверить конфигурацию до подключения реального оборудования.

Полезные ссылки