Network UPS Tools.

Network UPS Tools (NUT) - набор утилит для мониторинга устройств питания (источники бесперебойного питания, блоки распределения электроэнергии, солнечные контроллеры и серверные блоки питания).
Тут можно посмотреть поддерживаемые ИБП.

1. Установка компонентов.

Выполнить:

sudo pacman -S nut

2. Проверка устройства.

Подключить UPS при помощи USB к ПК и выполнить:

lsusb

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

3. Определение параметров UPS.

Выполнить:

sudo nut-scanner -U

Должна отображаться информация об устройстве:

$ sudo nut-scanner -U
Scanning USB bus.
[nutdev-usb1]
        driver = "nutdrv_qx"    # alternately: blazer_usb
        port = "auto"
        vendorid = "0665"
        productid = "5161"
        product = "USB to Serial"
        serial = "20100826"
        vendor = "INNO TECH"
        # bus = "001"
        # device = "002"
        # busport = "001"

4. Настройка /etc/nut/ups.conf

Добавить информацию из вывода nut-scanner в /etc/nut/ups.conf.

Пример моего файла.

5. Настройка /etc/nut/nut.conf

В файле /etc/nut/nut.conf добавить строчку, которая говорит о том, что ИБП подключен к текущему ПК.

MODE=standalone

Пример моего файла.

6. Настройка /etc/nut/upsd.users

В файле /etc/nut/nut.conf добавить пользователя:

[_USER_]
    password = _PASS_
    upsmon master
    actions = SET
    instcmds = ALL

_USER_ и _PASS_ заменить на свои.

Пример моего файла.

7. Настройка /etc/nut/upsmon.conf

Посмотреть список параметров можно тут.
Пример моего файла.

8. Добавление уведомлений

В файле upssched.conf добавить строчку:

CMDSCRIPT /etc/nut/cmd.sh

Пример моего файла.

cmd.sh это скрипт, который отправляет уведомление в телеграм. По сути, сюда можно приявязать любое другое удобное действие.
TELEGRAM_BOT_API_TOKEN, TELEGRAM_BOT_CHAT_ID, VPSFLAG заменить на свои.
Пример моего файла.

9. Запуск служб

sudo systemctl enable nut-server.service
sudo systemctl enable nut-monitor.service
sudo systemctl start nut-server.service
sudo systemctl start nut-monitor

10. Проверка

upsc nutdev-usb1@localhost

nutdev-usb1 это имя UPS из ups.conf.