Данный текст полностью взят отсюда. Мне пришлось частично переработать инструкцию, но я не уверен, что дело не в том, что у мен не *бунту. Так что милости просим замечания, если они обнаружатся.
Для начала пред подключением ИБП к компьютеру по средствам 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}'}