Домашняя страничка Стефурак П.Б. Управление агентом Smart UPS APC.
 
 
  
  
 
Промзона \ Управление агентом Smart UPS APC.
Управление отключением Smart UPS APC из командной строки.
 
Не секрет, что одним из ведущих поставщиков решений бесперебойного питания является компания APC.
 
В комплект поставки оборудования APC входит ПО "APC PowerChute", которое позволяет управлять
устройствами, получать информацию о них, программировать реакцию на различные события (описание
ПО "APC PowerChute" и его архитектуры я оставлю за рамками данный статьи -
все легко находится поисковыми системами).
 
Не сказал бы, что это самое удобное ПО, задачи свои оно вполне успешно решает, но есть в нем
и определенные проблемы и ограничения.
 
Как раз вот это маленькое "но" и привело меня к тому, чтобы создать свое решение для управления
агентом Smart UPS APC.  
Проблема
 
В "APC PowerChute" есть возможность настроить отключение оборудования в определенное время:
   
 
Проблема в том, что "это" не работает :). Точнее работает, но "хитро" :).
 
Если настроить отключение в пределах ближайшего часа - все происходит, как задумано.
Но если попробовать настроить отключение, например через 2 часа - ничего не получается!
Событие не срабатывает и оборудование не отключается!
 
И этому есть более-менее внятное объяснение - взглянем на web интерфейс APC agent (этот агент
устанавливается на каждый компьютер, к которому подключен по USB/COM UPS APC) раздел "Server Shutdown - Shutdown Now":
   
 
Итого: может сервер APC PowerChute и умеет передавать агентам информацию об отключении не в пределах
ближайшего часа, но они, увы, просто не могут ее обработать (диапазон времени ограничен ближайшим часом)!  
И как с этим бороться
 
Быстрого и простого готового решения я не нашел.
 
С одной стороны, отказываться от ПО "APC PowerChute" нет возможности. С другой - задачу по отключению
оборудования в произвольное время надо решить. Руками каждый день задавать необходимые настройки через web интерфейс или ПО "APC PowerChute"
- это ну явно не выход (это при том, что настроить отключение можно только максимум в пределах ближайшего часа).
 
Ок, напишем свое управление агентом APC, с "библиотекаршами и шахматами" -
исходные тексты программы (код снабжен комментариями)..
 
Алгоритм упрощенно:
штатный scheduler ОС в нужное время запускает наше ПО;
ПО подключается по web интерфейсу к нужному агенту APC;
логинится в систему с нужными именем и паролем;
отправляет настройки на отключение агенту (аналогично странице "Server Shutdown - Shutdown Now").
 
По умолчанию заданы следующие настройки - shutdown через 10 мин ( т.е. если оборудование надо например отключить в 18:30,
настраиваем старт задачи в 18:20. ОС будет корректно отключена самим агентом APC), автоматическое включение - через 14ть
часов (включится около 8:30 на следующий день).
 
Для корректной работы протокола https, ПО должны быть доступны библиотеки libeay32.dll и ssleay32.dll.
 
 
Исходные тексты программы (код снабжен комментариями).   
Synapse.