Инструкция для APC HS 500 (черновой вариант).
Часть 1. Создаём объекты. (Подготовка).
Для начала надо создать класс сетевых устройств. Создаём новый класс и называем его
netDevice
, т. е. «сетевое устройство». Неотъемлемыми свойствами любого сетевого устройства являются IP-адрес и состояние «в сети»/«не в сети». На вкладке «Properties» создаём два свойства.
IpAddress
Link
первое будет содержать IP-адрес устройства, а второе состояние Online/Offline.
Далее, среди сетевых устройств встречаются сетевые UPS-ы. Соответственно создаём подкласс
netUPS
, который наделяем свойствами, характерными для сетевых UPS-ов, такими, как «Заряд», «Текущая мощность», «Ожидаемое время работы», «Работа от линии/батареи»:
Capacity
currentPower
Runtime
Source
Свойства «IP-адрес» и «Link» подкласс netUPS наследует от родительского класса. Далее создаём объект
APChs500
, как представителя класса netUPS-ов. И получаем объект со всеми шестью свойствами, которые нужно сначала заполнить, а затем использовать в наших целях.
Часть 2. Веб-переменные и Устройства Online. (Заполнение свойств).
APC HS 500 содержит встроенный веб-интерфейс с которого мы и будем брать необходимые нам значения переменных. Необходимые нам данные содержатся на страницах
http://ip/status.cgi и
http://ip/about.cgi (где ip – это IP-адрес UPS-а в сети). Причём для доступа к этим страницам не требуется вводить логин и пароль. Создаём веб-переменные.
Текущая мощность.
Создаём веб-переменную apcWatts
URL:
http://ip/status.cgi
SEARCH_PATTERN: providing:.+?006699>([\d]+)
LINKED OBJECT.PROPERTY: APChs500.currentPower
CHECK INTERVAL: 20
Символы в поле SEARCH_PATTERN — это не абракадабра, а т. н. «Регулярные выражения PHP». Все вопросы пропадают после прочтения странички
http://phpclub.ru/detail/article/regexp_1. По аналогии создаём другие веб-переменные.
Работа от линии/батареи
Создаём веб-переменную apcSource
URL:
http://ip/status.cgi
SEARCH_PATTERN: On ([a-zA-Z]{4})
LINKED OBJECT.PROPERTY: APChs500.Source
CHECK INTERVAL: 20
Заряд.
Создаём веб-переменную apcCapacity
URL:
http://ip/status.cgi
SEARCH_PATTERN: On .+? ([\d\.]+)
LINKED OBJECT.PROPERTY: APChs500.Capacity
CHECK INTERVAL: 20
Ожидаемое время работы.
Создаём веб-переменную apcRuntime
URL:
http://ip/status.cgi
SEARCH_PATTERN: clock1.gif align=absmiddle>([\d]+)
LINKED OBJECT.PROPERTY: APChs500.Runtime
CHECK INTERVAL: 20
IP-адрес.
Создаём веб-переменную apcIP
URL:
http://ip/about.cgi (не status.cgi !)
SEARCH_PATTERN: 192.168.1.([\d]+)
LINKED OBJECT.PROPERTY: APChs500.ipAddress
CHECK INTERVAL: 20
Чтобы знать в сети UPS или нет заходим в «Устройства Online» и создаём новый хост «UPS».
HOSTNAME: х.х.x.x (где х.х.х.х — IP-адрес UPS-а)
HOST TYPE: PING (HOST)
ONLINE CHECK INTERVAL: 20
Далее выбираем Online action: Exec Code: и вводим код
sg('APChs500.Link','Online');
, те присваиваем свойству Link объекта APChs500 значение 'Online'. Аналогично. Offline action: Exec Code:
sg('APChs500.Link','Offline');
Часть 3. Меню управления. (Отображение информации).
Итак, мы заполнили все свойства объекта APChs500 и осталось только отобразить их в удобном для нас виде. Для этого заходим в «Меню управления» и создаём новую секцию
Parent: ROOT
TITLE: (*): APS500
PRIORITY: 500
Type: Custom HTML Box
Data:
<font size="5" color="red" face="Arial">APC</font><font size="4" color="gray" face="Arial"> HS 500</font>
<br>
Мощность: <font color="cyan">%APChs500.currentPower%</font> ватт
<br>
Связь: <font color="cyan">%APChs500.Link%</font>
<br>
Питание: <font color="cyan">%APChs500.Source%</font>
<br>
Заряд: <font color="cyan">%APChs500.Capacity%</font> проц.
<br>
Ожидаемое время: <font color="cyan">%APChs500.runtime%</font> мин.
<br>
IP адрес: <font color="cyan">192.168.1.%APChs500.ipAddress%</font>
<br>
<font color="brown">.</font>
<div align="center"><img src="/pChart/?p=APChs500.currentPower&type=60m&width=280&%rand%"></div>
AUTO UPDATE LABEL: 60
Вот и всё! Получаем симпатичную и информативную картинку.
