Взял я недавно себе UPS Ippon Smart Winner в замен много лет служившего PowerCom, мощности которого стало не хватать для обеспечения работы нового компа при плохих условиях в сети.
В Windows с любыми вариациями штатного ПО сие "чудо" по USB заставить работать мне так и не удалось, однако нашлись альтернативные программы, которые смогли с ним работать. Странно, что с этим у производителя возникли такие сложности, т.к. протокол "Megatec", по которому работает данная железка достаточно распространенный и очень простой. Также мне не понятно, зачем имея у ИБП нативный COM-порт нужно было делать параллельно USB-порт, работающий как USB-HID. Гораздо логичнее было бы представлять его как USB-COM адаптер. Анализ форумов показал, что такие проблемы не только у меня одного, а в мануалах вообще указано, что если ИБП с протоколом Megatec имеет сразу оба порта (USB+COM), то в Linux он будет работать только через COM. С Linux (поставил все-таки Debian Lenny на mini-ITX, об этом я еще может напишу) родное ПО тоже не заработало, но альтернативное решение было найдено. Немножко удивляет беспечность производителей железа. У меня сложилось мнение, что ИБП от APC без проблем работают с Windows/*nix, а вот остальные производители на это забили и в лучшем случае отдали на откуп сторонним программистам, которые на это тоже забили...
Из заработавших у меня программ под Windows мне понравились следующие:
UPS Assistant
Достаточно продвинутая программа, имеет встроенный WebGUI, может управлять УПС-ом, умеет выключать компьютер.
USBUPSMon
очень компактная и отличается выводом в трей иконки с указанием загрузки ИПБ в процентах.
Linux
С Linux все оказалось намного веселее. Во-первых, единого мануала по настройке ИБП такого типа я не нашел и по частям пришлось восстанавливать процесс подключения, который в конечном итоге оказался очень простым, за исключеним того, что я не один вечер потратил на попытки заставить его заработать через USB, что так и не удалось (массовое явление, кстати). Зато через COM-порт он потом подключилось очень быстро (т.к. пришлось поправить только пару строчек в конфиге). Итого, для Debian Lenny процесс настройки UPS Ippon для работы с NUT (Network UPS Tool) можно осуществить так (предполагаем, что эти действия делаются от root):
apt-get install nut
- скопировать исходные файлы конфигурации из /share/doc/nut/examples в /etc/nut/
- откорректировать файл /etc/nut/ups.conf, сделав в нем секцию следующего вида (ttyS0 - COM1). Здесь battvolts указывает на номинальное:минимальное напряжение батареи. Если не указать, то будет неправильно выдаваться заряд в процентах. Точные значения проще узнать опытным путем, сняв значение напряжения батареи при полном заряде, и в момент ее отключения при полном разряде.
[myups]
driver = megatec
port = /dev/ttyS0
desc = "Ippon Smart Winner"
battvolts = 53:39
mfr = "Ippon"
model = "Smart Winner"
- откорректировать файл /etc/nut/upsd.conf, сделав в нем секцию похожего вида (разрешен доступ для ЭВМ внутренней сети, локально на данной машине; запрещен остальной доступ. Порт 3493).
ACL all 0.0.0.0/0
ACL lan 192.168.1.1/32
ACL localhost 127.0.0.1/32
ACL myhost 192.168.1.2/32
ACCEPT localhost lan myhost
REJECT all
LISTEN 0.0.0.0 3493
- в файле /etc/nut/upsd.users создать учетную запись пользователя и настроить мониторинг ИБП.
[monuser]
password = пароль
allowfrom = all
upsmon master
instcmds = ALL
actions = SET MONITOR
myups@localhost 1 monuser пароль master
- в файле /etc/nut/upsmon.conf можно произвести настройку мониторинга и возможных действий по разным событиям, например, выключение станции.
MONITOR myups@localhost 1 monuser пароль master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
- Выставляем права на доступ к последовательному порту (считаем, что это COM1): создаем файл /etc/udev/rules.d/99_nut-serialups.rules с содержимым
KERNEL=="ttyS0", GROUP="nut"
udevadm control --reload_rules
udevadm trigger
- можно защитить файлы конфигурации NUT:
chown root:nut /etc/nut/*
chmod 640 /etc/nut/*
- Устанавливаем автоматический запуск служб, включив в файле /etc/default/nut следующие переменные:
START_UPSD=yes
START_UPSMON=yes
- Перегружаем ПК и пробуем получить информацию от UPS командой upsc myups@localhost. Если в ответ получена информация о UPS, значит вся настройка прошла корректно и встроенный клиент видит устройство:
# upsc myups
battery.charge: 91.8
battery.voltage: 53.40
battery.voltage.nominal: 48.0
driver.name: megatec
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.2
driver.version.internal: 1.5.14
input.frequency: 50.0
input.frequency.nominal: 50.0
input.voltage: 204.1
input.voltage.fault: 204.1
input.voltage.maximum: 229.0
input.voltage.minimum: 196.5
input.voltage.nominal: 230.0
output.voltage: 235.1
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 26.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL BOOST
ups.temperature: 65.8
ups.type: standby
Сервис работает, переходим к "удобствам".
В качестве графического клиента для Linux я поставил knutclient.

Для настройки надо добавить UPS со следующими параметрами:

Установите галочку в строке “Хранить NUT пароль в конфигурационном файле” для того, чтобы каждый раз его не пришлось вводить вручную. В полях “UPS переменные” можно указать датчики, которые должны отображаться в графическом виде на панели программы. У меня работают только те, которые указаны на скришноте. Хотя сам драйвер ИБП выдает намного большее число параметров, программа даже не предлагает отображать их в виде индикаторов, но этом их видит:


Также она может управлять UPS-ом:

Можно настроить программу так, что она будет при запуске сворачиваться в трей и там отображать нагрузку на ИБП и остаток заряда батареи. Минус программы в том, что если при запуске она не смогла подключиться к демону (а обычно демон пускается позже), то она сама не будет пытаться повторить соединение и это надо будет делать вручную. В качетсве решения можно пускать данную программу с задержкой, достаточной для загрузки всех компонент NUT.
WinNutClient
Программа, позволяющая из Windows наблюдать за работой ИПБ, подключенного к *nix-машине с помощью NUT. Имеет неприятное ограничение - в ней невозможно задать учетную запись для доступа к УПС и она работает только в режиме просмотра (видимо, вызвано древность программы и заброшенностью оной автором еще в 2007г.). Также, она знает не все параметры, которые может выдать upsc, но все необходимое есть. Еще она умеет выключать компьютер при разряде батареи, но не умеет сворачиваться в трей. Радует, что можно задать номинальное напряжение батареи, т.к. мой ИБП немножко нетиповой и у него оно 54В (4х13.5).

Индикатор "UPS On Battery", горящий желтым светом, вовсе не сигнализирует о том, что ИБП работает от батарей. Здесь он сигнализирует об работе блока AVR, работающего в режиме повышения или понижения входного напряжения.
WinNUT
Программа для подключения из Windows к удаленному NUT-серверу, сделанная без GUI с возможностью работы как сервис. Имеет поддержку авторизации на NUT. Удобна для использования в качестве службы, автоматически выключающей Windows-ПК при неполадках электропитания, информацию о которых она получает по сети. Конфиг у нее текстовый и максимально унифицирован с конфигами NUT. В конфиге нужно не забыть исправить пути к программе AlertPopup.exe, т.к. инсталлятор их сам не правит.

В итоге получаем конфигурацию, когда УПС подключен к постоянно функционирующему мини-серверу, и при этом со стационарного компа можно наблюдать за его состоянием, управлять им и т.д.
P.S.: Кросспост из VT's blog. Вы можете оставить комментарии здесь или тут |