Language: Русский English

UPS Lite Manager v.1.2.4 (2018.11.11)
Программа для работы с ИБП по протоколу Megatec (его используют многие UPS Ippon, Mustek, Sven и т.п.), ключевые возможности и отличия от аналогичного софта:
- потребляет мало ОЗУ и минимум процессорного времени;
- не требует инсталляции, не требует никаких драйверов, библиотек, framework и прочих дополнительных компонентов;
- ситуация с выдёргиванием USB-кабеля из ИБП продумана и обрабатывается;
- возможно управление сразу несколькими ИБП подключенными к одному компьютеру;
- обработка событий: нет напряжения, запас заряда ниже указанного, батарея села, питание восстановлено, ИБП потерян, ИБП неисправен;
- уведомления по email (встроенный SMTP-клиент) и запуск файлов (для скриптов или выключения);
- терминальная консоль для USB интерфейса для ручного управления ИБП (аналогов этому нет!) - можно самостоятельно различные инженерные команды вводить.

Поскольку это Beta-версия - её надёжность не гарантируется!




FAQ

Почему заряд батареи по расчёту достигает не точно 100%, а около 100% (например 95% или 105%)? Но по опросу - 100%.

Потому что ИБП по каким-то своим причинам (может алгоритмы сохранения батарей) в разное время заряжает батареи до немного разного напряжения. Например SmartWinner 2000 - заряжает от уровня 55V до 58V. Может в зависимости от предшествующего разряда, для сохранения батарей. А расчёт уровня делается по минимальному и максимальному значению напряжения. Если же максимальное значение плавает - то и расчёт процентов тоже плавает. Встроенная команда опроса (BL) - очевидно при каждом окончании заряда калибруется на 100%. Но для самостоятельного расчёта автоматическая калибровка невозможна - ИБП не имеет команд сообщающих о том что он в состоянии заряда.

Как сделать автоматическое включение компьютера после восстановления электричества?

Запрограмировать в Оповещениях: Выключение компьютера при помощи shutdown /s /f, прикинуть сколько времени это занимает - например 2-3 минуты максимум, активировать функцию «Отключить ИБП через 3 минуты».
Кстати, не все ИБП разрешают себя просто выключить, некоторые требуют обязательно указать и время включения. Для таких надо ещё активировать «И снова включить ИБП через», указать там какое-нибудь время когда электричество точно дадут (ну в городе например это минут 300 (5 часов), за городом может 3000 (два дня)).
В терминале ИБП-команд ввести команду AR1 - для активации режима автовключения ИБП после восстановления электричества.
В BIOS поискать опции типа AC Back Function, After Power Failure, PWRON After PWR-Fail и настроить её для включения.
Пароль на вход в Windows - либо убрать, либо настроить в планировщике запуск нужных программ (однако они будут запущены без доступа к рабочему столу и после входа в Windows реального пользователя - они будут недоступны).
Итак, при разрядке батарей - UPS Lite Manager запрограммирует отключение ИБП и корректно завершит работу Windows, затем отключится ИБП.
После восстановления питания - ИБП включится, и компютер тоже включится.
Но, следует учесть несколько возможных коллизий в этой схеме:
- если электричество восстановится в интервале между началом завершения работы Windows и запрограммированным (на 3-5 минут) отключением ИБП. ИБП тогда выключится, и включится только через несколько часов - в запрограммированное время включения.
- если электричество пропадает и восстанавливается несколько раз подряд. ИБП может оказатся критически разряжен в процессе запуска Windows, и аварийно отключится без программирования включения.

Какие есть другие программы и драйвера для этих ИБП?

Перед тем как написать свою - я пробовал следующее: WinPower, UPS Assistant, Energy Controller 2, Ippon Monitor.

Какие есть особенности работы программы для ИБП на серверах?

В связи с тем что сервер может работать без входа пользователя, на серверах в этом случае возникает проблема с запуском программы. В идеале надо для сервера делать программу из двух частей - служба (которая работает всегда и без входа пользователя) и конфигуратор (который запускает пользователь). Но, UPS LM создавался совсем не для этого, и у него единая часть. Однако в UPS LM сделан детект - работает ли он от реального пользователя (интерактивный логон - LogonInteractive) или запущен планировщиком от имени пользователя (пакетный логон - LogonBatch). Если на сервере запускать программу Планировщиком, от имени пользовательского логина - то программа (UPS_LM.exe) будет запущена, но, запуск будет с правами пакетного логона. Программа в этом случае не может взаимодействовать с рабочим столом, и не может взаимодействовать с пользователем (когда сам настоящий пользователь залогинится). UPS_LM.exe будет виден только в диспетчере задач, однако он сможет выводить MsgBox-уведомления через сервер (функцией WTSSendMessage вместо MessageBox) и обрабатывать все действия (запуски файлов, отправка почты). При запуске файлов надо учесть что файлы тоже будут запускаться в контексте невидимой сессии и тоже не смогут взаимодействовать с залогиненным реальным пользователем. Для того чтобы настраивать что-либо в UPS_LM запущенным планировщиком от имени пользователя - надо этот UPS_LM.exe закрыть в диспетчере задач и запустить нормальным образом.

Требования к компьютеру и ИБП

Требования к системе - любая версия от WindowsXP SP3 по Windows10, 32 или 64 битная.
Аналогичные серверные версии Windows тоже тоже поддерживаются.
Подключение бесперебойника только через USB (работа через COM/RS232 не поддерживается),
предполагается работа с ИБП со следующими PNP кодами (ИД оборудования):
HID\VID_06DA&PID_0003,
HID\VID_0665&PID_5161,
HID\VID_05B8&PID_0000,
HID\VID_0F03&PID_0001.
Помимо этого, в настройках можно вручную задать любые коды VID/PID.
Насчёт поддержки других ИБП - обращайтесь по email, если особых отличий нет - можно добавить…
Данная версия проверялась только на Ippon Smart Winner (старого поколения), на всех прочих моделях пока может не работать - будет исправляться по мере надобности.
Ippon Smart Winner нового поколения (который с дисплеем) - не поддерживается.
Программа работает с любым ИБП который определяется как стандартное USB-HID устройство и отвечает на команду Q1 или Q4.

Справочная информация по протоколам UPS

2016.04.03
Краткое описание протокола Megatec/Ippon и его модификации
(собранное по обрывкам документации в интернете, исследованиям некоторых прошивок ИБП, и снифферами при работе штатного софта)
команды которые можно вводить в терминале:
КомандаОписание
AR?, AR0, AR1Режим автовключения выключенного ИБП при восстановлении питания.
AT?, AT0, AT1Выключение/включение автотеста (на Smart Winner он раз в неделю запускается).
BL?Узнать уровень заряда батарей в процентах, ответ - 3-значное число, например - 098
CОтменить выключенное состояние (включить немедленно) или запланированное выключение.
Отменяет действие команд Snn, SnnRmmmm
Разумеется это реально только если компьютер сам не питается от этого выключенного ИБП.
CBnn?
CTПрервать тест
CTL?
EB?, EBnnУзнать кол-во внешних батарей, установить кол-во внешних батарей (например EB01 - 1 батарея).
Предположительно это влияет на расчёт ёмкости в команде BL? и зарядный ток.
EF?Пишет допустимые отклонения частоты в ECO mode, в процентах.
Например - (005 005
EV?Пишет допустимые отклонения напряжения в ECO mode, в процентах.
Например - (005 005
FУзнать некоторые параметры настроек,
в ответ строка: #MMM.M QQQ SS.SS RR.R
# - маркер
MMM.M - номинальное напряжение (220.0, 230.0, и т.п.)
QQQ - ?
SS.SS - стандартное напряжение батареи (48.0 например)
RR.R - номинальная частота (50.0)
FLT?
FUNC?На некоторых ИБП возвращает 7-значное число, вероятно какие-то флаги опций или возможностей.
Например - (0000078
FW?Версия прошивки.
GR?, GR0, GR1В настройках WinPower функция Energy Saving управляет этими командами.
IУзнать производителя и модель, в ответ строка: #Company_Name UPS_Model Version
IP?, IPN, IPW, IPGУзнать или установить режим допустимых отклонений: нормальный(N)/широкий(W)/генератор(G).
Команда переключает соответствующие светодиоды на панели (у Ippon Smart Winner).
LT??
PD?
PE?
QЗвук разрешить/запретить. Команда циклически переключает текущий режим звук.
Посмотреть текущий режим звука можно в Q1.
Q1Самая главная команда, для опроса текущего состояния. Софт её ежесекундно запрашивает.
В ответ приходит такая строка: (MMM.M NNN.N PPP.P QQQ RR.R SS.S TT.T abcdefgh
( - маркер
MMM.M - входное напряжение
NNN.N - вроде бы регистр запоминающий напряжение перед сбоем
PPP.P - выходное напряжение
QQQ - текущая нагрузка в процентах
RR.R - текущая частота сети
SS.S - текущее напряжение батарей (может быть как суммарным, так и расчётным на 1 элемент)
TT.T - температура
a - сбой входного напряжение, работа от батареи
b - батарея сильно разряжена
c - AVR
d - неисправность
e - тип ИБП (1 Standby, 0 Online)
f - выполняется тест
g - ИБП выключен программно (командой S)
h - звуковые сигналы разрешены
Q4Ещё один вариант для опроса текущего состояния.
В ответ приходит такая строка: (MMM.M ???.? ???.? NNN.N PPP.P ??? QQQ RR.R ??? ??? SS.S TT.T flags
flags - разные флаги состояний:
E - выполняется тест
A - сбой входного напряжение, работа от батареи
C - Bypass/AVR
L - ?
M - ?
I - ?
Некоторые модели поддерживающие Q4 - поддерживают и Q1.
Q2 Q3 Q5 Q6 Q7 QS D QGSТоже варианты опроса текущего состояния, у некоторых моделей.
QA?
QBLПишет информацию о батарее, например - (026.5 02 01 068 255
1 - напряжение батареи,
2 - кол-во батарей последовательно,
3 - кол-во батарей параллельно,
4 - проценты ёмкости,
5 - расчётное время до нуля, минуты.
QIСерийник
QLDLСтатистика по минимальному и максимальному уровню нагрузки.
QMODКод текущего состояния (тест, от батареи, AVR, и т.п. - их более десятка)
QMDПаспортные данные об ИБП - мощность, кол-во батарей, вход, выход, и т.п.
QMFПроизводитель
QMT?
QOFПишет режим выходной частоты, например - (50.0
QPДопустимые границы входного напряжения и частоты, при выходе за которые будет переход на батарею.
Например - (45.0 55.0 184 264 EpbkcrafDo - допустим диапазон 45…55Гц, 184…264В, и какие-то флаги.
QRIПаспортные данные об ИБП:
номинальное выходное напряжение, допустимый ток, напряжение батарей, частота тока.
QVFWВерсия прошивки.
SnnВыключить питание через nn минут (.1, …, .9, 01…99).
Например S.5 выключит питаниче через 30 секунд, S05 выключит питание через 5 минут.
SnnRmmmmВыключить питание через nn минут (.1, …, .9, 01…99) и включить через mmmm минут (0001…9999).
Не все поддерживают время менее минуты, и не все поддерживают команду Snn.
Например Winner поддерживает SnnRnnnn, но не поддерживает Snn.
SASV07??
SD? SD0 SD1?
SR?
TТест на 10секунд
TLТест до разрядки батареи
TnnТест на указанное время, nn - минуты 01…99.
VОтвечает настройки режима AVR - например - 165 200 220 240 275
где соответственно указаны:
1 - нижняя граница перехода на батарею,
2 - нижняя граница включения повышеющей ступени AVR,
3 - номинальное напряжение,
4 - верхняя граница включения понижающей ступени AVR,
5 - верхняя граница переходя на батарею.
V?Пишет режим выходного напряжения, например - (V220
V220, V230, V240Переключает выходное напряжение (и соответствующий светодиод).
Проверка - в команде F либо V?.
WA?
WH?
WMОтвечает какую-то цифру, например - (3
Предположительно какой-то флаг режимов работы ИБП.
Команды со «?» обычно выводят какие-либо данные - вроде нет команд с «?» которые бы могли что-то изменить в ИБП.
Остальные команды - следует использовать аккуратно, т.к. они могут внести какие-либо изменения.
Если ИБП не знает вводимую команду - он отвечает эту же команду, нету общего слова о незнакомой команде.
Если ИБП команду принял успешно - он может не ответить ничего (если команда не вопросительная, а должна что-то изменить в ИБП).
Некоторые модели ИБП отвечают «NAK» на неподдерживаемую команду, и «ACK» на поддерживаемую.
Подробные описания этих и других команд можно найти на сайте Network UPS Tools.


История развития UPS LM

v.1.2.4.20 (2018.11.11)Добавлена поддержка некоторых ИБП которые раньше не работали из-за BL?-команды, добавлена фильтрация ложных низких напряжений в статистике, добавлен отладочный лог.
v.1.2.3.15 (2018.03.28)Мелкие доработки, функция проверочной отправки email в настройках.
v.1.2.2.11 (2017.09.30)Мелкие доработки, поддержка работы через SrvAny.exe (пока не полная).
v.1.2.0.9 (2017.06.11)Борьба с глюками Касперского - были ложные детекты на UPX.
v.1.2.0.7 (2017.06.06)Исправлена ошибка при отправке email, исправлена ошибка при вводе длинных ИБП-команд, добавлена возможность выключать ИБП по событиям.
v.1.1.0.6 (2017.04.28)Мелкие доработки.
v.1.1.0.5 (2016.12.18)Мелкие доработки, исправления сообщений об ошибках, переход на OpenSSL v1.1 (для email-клиента).
v.1.0.0.4 (2016.08.03)Мелкие доработки.
v.1.0.0.3 (2016.04.03)Первая публичная версия.