Підключаємо ББЖ USB Powercom BNT 500/600/800/1000 (linux ubuntu)

Підключаємо ББЖ USB Powercom BNT 500/600/800/1000 (linux ubuntu)

Підключаємо блок безперебійного живлення до USB гнізда і перевіряємо чи його видно в системі.

# lsusb | grep -i powercom
Bus 001 Device 004: ID 0d9f:0002 Powercom Co., Ltd Black Knight PRO / WOW Uninterruptible Power Supply (Cypress HID->COM RS232)

# dmesg | grep tty[US]
[ 3813.530725] usb 1-1.4: HID->COM RS232 Adapter converter now attached to ttyUSB

# usb-devices | grep -i Manufacturer
S:  Manufacturer=POWERCOM CO., LTD.
S:  Manufacturer=A4Tech


Встановлюємо універсальний драйвер для роботи з UPS nut

# apt-get install nut


Визначаємо тип драйвера для /конфігураційного файлу etc/nut/ups.conf
В нашому випадку драйвером буде "powercom"

# cat /usr/share/nut/driver.list | grep -i "Black Knight PRO"
"Powercom"	"ups"	"4"	"Black Knight PRO"	""	"powercom"


Всі налаштування nut драйвера powercom серії BNT можна побачити в документації.
В нашому випадку обираємо секцію BNT-other, в якому є набір налаштувань. При необхідності їх можна додатково налаштовувати, але нам цього не потрібно.

 # man powercom
...
 BNT-other
           numOfBytesFromUPS = 16
           methodOfFlowControl = no_flow_control
           validationSequence = {{8,0},{8,0},{8,0}}
           shutdownArguments = {{1,30},y}
           frequency = {0.00027778,0.0000}
           loadPercentage = {1.0000,0.0,1.0000,0.0}
           batteryPercentage = {1.0000,0.0000,0.0000,1.0000,0.0000}
           voltage = {2.0000,0.0000,2.0000,0.0000}
...


 Робимо зміни в /etc/nut/ups.conf 

[MyUPS]
desc="PWC 600 AP BNT"
port=/dev/ttyUSB0 driver=powercom type = BNT-other

Для завантаження драйвера при запуску системи додаємо до файлу /etc/nut/nut.conf

MODE=standalone


/etc/nut/upsmon.conf

MONITOR         MyUPS@localhost 1 admin YOUR_PASSWORD master
MINSUPPLIES     1
SHUTDOWNCMD     "/sbin/shutdown -p +0"
POLLFREQ        5
POLLFREQALERT   5
HOSTSYNC        15
DEADTIME        15
POWERDOWNFLAG   /etc/killpower
RBWARNTIME      43200
NOCOMMWARNTIME  300
FINALDELAY      5
#
#NOTIFYCMD       /etc/nut/notifycmd
NOTIFYFLAG      COMMOK       IGNORE
NOTIFYFLAG      COMMBAD      IGNORE
NOTIFYFLAG      ONLINE       SYSLOG+WALL+EXEC
NOTIFYFLAG      ONBATT       SYSLOG+WALL+EXEC


Якщо потрібно доступ до служби nut через порт 3493
/etc/nut/upsd.conf

MAXAGE 15
LISTEN 127.0.0.1 3493
MAXCONN 1024

Якщо потрібно обмежити доступ тільки для вибраних користувачів
/etc/nut/upsd.users 

[admin]
password = YOUR_PASSWORD
#allowfrom = localhost
actions = SET
instcmds = ALL
upsmon master

Тепер можна перевірити чи драйвер працює

# upsdrvctl -D -u root start
Network UPS Tools - UPS driver controller 2.7.4
0.000000 Starting UPS: MyUPS
Network UPS Tools - PowerCom protocol UPS driver 0.17 (2.7.4)

# /lib/nut/powercom -a MyUPS -u root -DD


Якщо все налаштовано правильно, то маємо побачити дані з UPS

# upsc MyUPS
battery.charge: 100.0
device.mfr: PowerCom
device.model: IMP-625AP
device.serial: Unknown
device.type: ups
driver.name: powercom
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyUSB0
driver.parameter.synchronous: no
driver.parameter.type: BNT-other
driver.version: 2.7.4
driver.version.internal: 0.17
input.frequency: 50.00
input.voltage: 220.0
input.voltage.nominal: 220
output.frequency: 50.00
output.voltage: 220.0
ups.load: 6.0
ups.mfr: PowerCom
ups.model: IMP-625AP
ups.model.type: IMP
ups.serial: Unknown
ups.status: OL