Как мониторить несколько USB ИБП с помощью Network UPS Tools

Вопрос или проблема

В данный момент я запускаю NUT на своем RaspberryPi (используя Raspbian), и мне удалось подключить мой Mecer USB UPS к NUT с помощью драйвера blazer_USB.

Недавно я получил другой ИБП (та же модель) и хотел бы подключить его к тому же Пи через USB.

Второй ИБП подключен и настроен, но Пи видит только один ИБП. Когда оба ИБП подключены, он распознает UPS2; если я отключаю USB кабель от UPS2, он затем распознает UPS1.

/etc/nut/ups.conf

[upswifi]
    driver = blazer_usb
    port = /dev/usb
    desc = "Dearx_UPS_WIFI_1"

[upslan]
    driver = blazer_usb
    port = /dev/usb
    desc = "Dearx_UPS_LAN"

Вывод LSUSB

Bus 001 Device 009: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 001 Device 008: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 001 Device 006: ID 0424:7800 Standard Microsystems Corp. 
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Я думаю, что он видит только 1 USB соединение одновременно. Есть ли способ, как я могу отслеживать оба через USB на одной системе?

Используйте lsusb -v, чтобы получить более детальный вид USB соединений. Для каждого Meсer вы должны увидеть серийный номер. Если да, добавьте этот серийный номер в конфигурацию ups.conf. Ниже моя конфигурация для двух ИБП CyberPower, которые являются одной и той же моделью:

[cyberpower-c]
  driver = usbhid-ups
  port = auto
  desc = "CyberPower CST135XLU - Back Porch: Computer"
  vendorid = 0764
  productid = 0501
  serial = CR7H****
[cyberpower-f]
  driver = usbhid-ups
  port = auto
  desc = "CyberPower CST135XLU - Back Porch: Router"
  vendorid = 0764
  productid = 0501
  serial = CR7D****

Это должно решить вашу проблему.

Ввожу через несколько лет, так как у меня была похожая проблема. Запускаю nut 2.8.0.

Во-первых, обратите внимание, что с драйвером usbhid-ups port должен быть установлен на auto (как в ответе SomebodySysop).

Во-вторых, обратите внимание, что страница справки говорит

Возможно одновременно контролировать несколько единиц ИБП, запуская несколько экземпляров этого драйвера, при условии, что их можно уникально различать, установив некоторую комбинацию параметров vendor, product, vendorid, productid**, serial, busи/илиdevice` ниже.

Другими словами, у вас здесь много вариантов! Это хорошо, потому что часто предлагаемые варианты предоставить vendorid и productid не сработали для меня, так как оба моих ИБП от CyberPower Systems.

Вот с чем я закончил

[Network-UPS-700]
    driver = usbhid-ups
    port = auto
    product = "OR700LCDRM1Ua"
    serial = "GA5KU2001352"
    desc = "CPS/OR700LCDRM1U"
    offdelay = 60
    ondelay = 70
    lowbatt = 33

[Network-UPS-2200]
    driver = usbhid-ups   
    port = auto
    product = "OR2200PFCRT2U"
    desc = "CPS/OR2200PFCRT2U"
    offdelay = 60
    ondelay = 70
    lowbatt = 33

Это работает идеально! Если вы не уверены, как получить эти значения, вы можете либо

lsusb -v

или

/usr/lib/nut/usbhid-ups -DD ...

это покажет вам необходимую информацию. Использовать lsusb проще, так как вам не нужно углубляться в тонкости параметров командной строки для драйвера usbhid-ups.

Наконец, обратите внимание, что vendorid, productid, vendor, product и/или serial могут быть указаны как регулярные выражения (regex) в ups.conf. Это может облегчить вашу жизнь, если вы понимаете regex (7) 🙂

Ответ или решение

Как контролировать несколько USB ИБП с помощью Network UPS Tools

Если вы столкнулись с проблемой мониторинга нескольких источников бесперебойного питания (ИБП) USB на одном Raspberry Pi под управлением Raspbian с использованием Network UPS Tools (NUT), вы не одиноки. Многие пользователи сталкиваются с этой ситуацией, особенно когда используются одинаковые модели ИБП, подключенные через USB. Давайте рассмотрим, как правильно настроить NUT для управления несколькими устройствами.

1. Понимание проблемы

Как вы заметили, при подключении двух ИБП ваш Raspberry Pi может распознать только один из них. Это происходит из-за конфликта между USB-устройствами, когда оба ИБП используют одно и то же устройство /dev/usb. Чтобы решить эту проблему, вам необходимо добавить конфигурации для каждого ИБП, используя уникальные идентификаторы.

2. Определение уникальных свойств ИБП

Сначала вам нужно получить больше информации о подключенных ИБП. Для этого выполните команду:

lsusb -v

Эта команда выдаст детальный список USB-устройств, включая серийные номера. Ознакомившись с выводом, вы сможете найти идентификацию для каждого вашего ИБП. Ищите поля, такие как idVendor, idProduct, а также serial, указывающие на уникальные характеристики каждого устройства.

3. Настройка файла конфигурации NUT

После того как вы получили необходимые данные, вам нужно внести правки в конфигурационный файл NUT (/etc/nut/ups.conf). Каждый ИБП должен иметь отдельный блок конфигурации с уникальным serial или другими параметрами, чтобы NUT мог их различать.

Пример конфигурации может выглядеть следующим образом:

[ups1]
    driver = usbhid-ups
    port = auto
    serial = "серийный_номер_ИБП1"
    desc = "Mecer UPS 1"

[ups2]
    driver = usbhid-ups
    port = auto
    serial = "серийный_номер_ИБП2"
    desc = "Mecer UPS 2"

4. Дополнительные настройки

Помимо указания серийных номеров, можно также использовать vendorid и productid, если это необходимо. В зависимости от ваших ИБП, возможно, потребуется указать и другие параметры, как это показано в примере:

[ups1]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501
    serial = "серийный_номер_ИБП1"
    desc = "Mecer UPS 1"

[ups2]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501
    serial = "серийный_номер_ИБП2"
    desc = "Mecer UPS 2"

5. Проверка конфигурации и перезапуск NUT

После изменения конфигурации необходимо проверить ее и перезапустить службу NUT:

sudo nut-setup
sudo systemctl restart nut-server

6. Мониторинг состояния ИБП

Теперь, когда оба ИБП настроены, вы можете использовать команду upsc для получения статистики каждого устройства:

upsc ups1@localhost
upsc ups2@localhost

Эти команды позволят вам видеть состояние каждого ИБП. Убедитесь, что вы используете правильные имена, указанные в конфигурации.

Заключение

С помощью приведенных выше шагов вы сможете успешно подключить и мониторить несколько ИБП на одном Raspberry Pi. Корректная конфигурация не только спасет ваши данные в случае перебоев с электроснабжением, но и обеспечит стабильную работу системы. Если у вас есть дополнительные вопросы или сложности, обратитесь к документации NUT или сообществу пользователей для получения помощи.

Оцените материал
Добавить комментарий

Капча загружается...