Настройка ИБП на примере Ippon Back Power Pro 800

Данный текст полностью взят отсюда. Мне пришлось частично переработать инструкцию, но я не уверен, что дело не в том, что у мен не *бунту. Так что милости просим замечания, если они обнаружатся.

Для начала пред подключением ИБП к компьютеру по средствам USB даем команду:
lsusb
потом подключаем ИБП и снова повторяем команду, чтобы выявить идентификаторы устройства. Например из строки "Bus 002 Device 005: ID 0665:5161 Cypress Semiconductor USB to Serial" можно узнать, что VendorID = 0665 ProductID = 5161 для моего ИБП.

1. Установка

Далее установим NUT:
sudo apt-get install nut

2. Настройка правил UDEV

После этого создаем файл (в случае USB подключения ИБП) в /lib/udev/rules.d/52-nut-usbips.rules со следующим содержанием:
# Ippon Back Power Pro 800
ATTR{idVendor}=="Ваш_VendorID", ATTR{idProduct}=="Ваш_ProductID", MODE="664", GROUP="nut"

Если ваш ИБП использует для подключения RS232 (аля COM-порт), то создаем файл /lib/udev/rules.d/52_nut-serialups.rules содержащий:
# Ippon Back Power Pro 800
KERNEL=="ttyS0", GROUP="nut"

где ttyS0 - номер COM-порта к которому подключен ИБП (в данном случае COM1)

Далее для USB достаточно вынуть разъем из порта и снова воткнуть. А для COM-порта выполнить следующие команды или перезагрузить систему:
sudo udevadm control --reload_rules
sudo udevadm control trigger

3. Настройка NUT

NUT может управлять множеством ИБП в сети, но мы будем использовать простую конфигурацию для 1 компьютера. Для этого в файле /etc/nut/nut.conf выставим соответствующий режим:
MODE=standalone
В файле /etc/nut/ups.conf укажем параметры подключения к нашему ИБП:

где
  • [ippon-800] - имя нашего ИБП в системе NUT, оно может быть любым;
  • driver - имя драйвера для подключения к ИБП, смотрим его тут, для моего ИБП это blazer_usb и blazer_serial в зависимости от порта подключения;
  • port - имя файла порта, для USB можно просто "auto", для COM1-порта "/dev/ttyS0"
  • desc - комментарий;
  • default.battery.voltage.high - максимальное напряжение батареи при полном заряде, необходимо для расчета остаточного заряда батареи;
  • default.battery.voltage.low - минимальное напряжение батареи при полном разряде;
  • offdelay - команда ИБП перейти в режим ожидания через 6 минут

Далее в файле /etc/nut/upsd.conf мы пропишем контроль доступа:

Здесь мы разрешили подключение к службе для локального компьютера и локальной сети, и отвергли всех остальных. Кстати по умолчанию NUT слушает все интерфейсы по 3493 порту.

Далее заводим пользователей, которые могут контролировать ИБП в файле /etc/upsd.users:

где
  • allowfrom - параметр определяющий источник подключения;
  • upsmon master - параметр дающий права на управление ИБП.

И последнее, осталось настроить службу мониторинга в файле /etc/nut/upsmon.conf пишем:

где
  • SHUTDOWNCMD "sbin/shutdown -Ph +0" - команда на завершение работы компьютера.

Все. Теперь включив систему NUT командой:
sudo service nut start
можно запросить статус ИБП командой:
upsc имя_ибп
в ответ вам система выдать примерно следующее:

Далее если хочется смотреть в графике можно установить knutclient:
sudo apt-get install knutclient
После установки knutclient надо сконфигурировать Setting->Configure KNutClient->UPS->Add. Здесь пишем Имя - понятное вам имя ИБП; UPS адрес - имя машины с ИБП (в данном случае localhost); UPS имя - название ИБП в системе NUT; Имя пользователя - пользователь в системе NUT; Пароль - его пароль. Далее выбираем необходимые вам переменные или их все (те что ИБП не поддерживает, просто не будут отображаться) и нажимаем ОК.

И немного отсебятины.

  • Парсинг температуры в терминале: upsc ippon-bpp-800 | grep temperature | awk '{print $2}'
  • Парсинг уровня зарядки: upsc ippon-bpp-800 | grep charge | awk '{print $2}'
  • Строка конфига conky: Ippon Back Power Pro 800 заряжен на ${exec upsc ippon-bpp-800 | grep charge | awk '{print $2}'}% T=${exec upsc ippon-bpp-800 | grep temperature | awk '{print $2}'}