UPS Lite Manager — программа для работы с ИБП

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

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

Скриншот - Основной экран UPS Lite ManagerСкриншот - Настройки обработки событий в UPS Lite ManagerСкриншот - Терминал ручного ввода ИБП-команд в UPS Lite Manager

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 по Windows11, 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, QS или 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.6.0.45 (2023.05.22) Оптимизация алгоритма опроса;
Мелкие внутренние доработки;
Добавлена возможность локализации (использование внешних lng-файлов);
Исправлена ошибка со срабатыванием оповещения по уровню напряжения батарей;
Добавлена поддержка новых UPS-протоколов (Voltronic P/T — QS HEX);
Добавлены новые команды опроса ёмкости батареи (DQ1, QBV);
Добавлен эмулятор ответов UPS (Shift+About);
Переход на OpenSSL v3.1 (для работы email-уведомлений не забудьте обновить OpenSSL);
Доработки лога;
Новые команды в командной строке — запуск теста, включение/выключение звука.
v.1.5.2.31 (2022.10.11) Мелкие оптимизации в сборке, совместимость с NX/DEP и ASLR.
v.1.5.1.30 (2022.05.24) Исправлена проблема с отображением опроса BL?-команды на ИБП которые на самом деле не поддерживают эту команду;
Исправлена проблема с запуском просмотра лога при длинных путях;
Запуск просмотра лога с Shift — открывает лог состояний ИБП;
Оптимизирован формат справки команд (поэтому размер файла стал значительно меньше).
v.1.5.0.27 (2022.05.04) Исправлена ошибка приводящая к постоянному Out of sync request Qx на некоторых моделях ИБП (которые формируют строку ответа с нечётным кол-вом байт или с 0x00 байтом).
Добавлена проверка доступности обновлений (только вручную, из меню о программе).
Поддержка экранов с DPI масштабированием (теперь шрифты не искажаются).
Запись в лог входа/выхода в спящий режим.
Мелкие доработки.
v.1.4.0.25 (2022.01.10) Исправлена проблема с запуском файлов с ключами (опции оповещений надо заново настроить); Добавлена настройка поля темы для email (актуально для случаев когда несколько ИБП подключены, чтобы различать почту от них); Разные мелкие исправления потенциальных ошибок.
v.1.3.0.22 (2021.02.14) Поддержка командной строки (пока только команда для выключения/включения ИБП поддерживается, для справки см. ups_lm /?).
Мелкие доработки.
v.1.2.5.21 (2020.09.07) Многочисленные доработки в почтовом клиенте (SMTP): теперь работает OpenSSL 1.1.1g (и есть TLS 1.3), поправлен формат заголовка from (иначе на некоторых серверах была ошибка 555 5.5.2 Syntax error), отладочный лог email имеет ещё один режим — запись только в случае ошибок, разные мелкие доработки в email, база серверов для автонастройки обновлена — работоспособность проверена на бесплатных почтовых службах AOL, MailRu, Yandex, GMail, GMX, Rambler, OfficeCom/Live.
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) Первая публичная версия.

Скачать “UPS_LM_v160.rar” – 56,16 КБВерсия 1.6.0.45, 2023-05-22

Скачать “UPS_LM_v152.rar” – 47,23 КБВерсия 1.5.2.31, 2022-10-11

Скачать “UPS_LM_v151.rar” – 42,19 КБВерсия 1.5.1.30, 2022-05-24

Скачать “UPS_LM_v150.rar” – 52,56 КБВерсия 1.5.0.27, 2022-05-04

Скачать “UPS_LM_v140.rar” – 51,42 КБВерсия 1.4.0.25, 2022-01-10