APC HS 500
Модератор: immortal
-
- Сообщения: 39
- Зарегистрирован: Вс апр 22, 2012 3:18 pm
- Благодарил (а): 0
- Поблагодарили: 4 раза
Re: APC HS 500
Да, тоже столкнулся с странным поведением графиков когда они сделаны в странице. В меню работает, а когда отдельная страница то графики не обновляются, то вообще не показываются (только иконка).
Еще мне кажется в графиках нужно чуть поменять отображение информации. Очень часто показание датчика идет по верхней или нижней границе и непонятно сразу что он показывается (видно даже на предыдущем посте). Думаю график(данные) нужно всегда показывать в области 80% от всей области отображения (10% отступ сверху и 10% снизу). Либо должен задаваться интервал в котором показываем.
Также было бы не плохо если была возможность отображения пороговой величины (красная линиия на графике), возможно этот функционал уже есть в pChart и его просто надо прикрутить
Еще мне кажется в графиках нужно чуть поменять отображение информации. Очень часто показание датчика идет по верхней или нижней границе и непонятно сразу что он показывается (видно даже на предыдущем посте). Думаю график(данные) нужно всегда показывать в области 80% от всей области отображения (10% отступ сверху и 10% снизу). Либо должен задаваться интервал в котором показываем.
Также было бы не плохо если была возможность отображения пороговой величины (красная линиия на графике), возможно этот функционал уже есть в pChart и его просто надо прикрутить
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: APC HS 500
Задание мах и мин величины (диапазона) графика просто просится на реализацию.
Ещё было бы неплохо задавать оттенок графика (розовый — мощность, голубой — влажность, красный — выход за границы диапазона и т.п).
Но главный вопрос пока — обновление графика на отдельной странице. Надо с этим как-то разобраться...
Ещё было бы неплохо задавать оттенок графика (розовый — мощность, голубой — влажность, красный — выход за границы диапазона и т.п).
Но главный вопрос пока — обновление графика на отдельной странице. Надо с этим как-то разобраться...
-
- Сообщения: 39
- Зарегистрирован: Вс апр 22, 2012 3:18 pm
- Благодарил (а): 0
- Поблагодарили: 4 раза
Re: APC HS 500
В общем поразбиравшись с алгоритмом генерации графиков я пришел к выводу что процесс генерации достаточно ресурсоемкий и показывая несколько график одновременно он просто не успевает генерировать все, те походу они устаревают раньше чем покаызваются. Я поставил сервер на нетбуке и в момент генерации загрузка ЦП прыгает до 100%. Думаю в этом дело. Пока решил вопрос установкой обновления страницы раз в 30 секунд.Alex писал(а):Задание мах и мин величины (диапазона) графика просто просится на реализацию.
Ещё было бы неплохо задавать оттенок графика (розовый — мощность, голубой — влажность, красный — выход за границы диапазона и т.п).
Но главный вопрос пока — обновление графика на отдельной странице. Надо с этим как-то разобраться...
По поводу отображение графика, покапавшись в исходниках и описании PChart поменял параметр в файле
htdosc/pChart/index.php в строке
$Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,213,217,221,TRUE,0,2);
поставил параметр - SCALE_START0 (это оторжание масштаба графика вместе с нулевой отметкой), так мне показалось удобнее.
Разбить графики по цветам и добавить линии реально с помощью функционала который есть в библиотеки, так что это вопрос времени. Поправить php код думаю тоже не проблема.
документация по либе здесь, если кому надо http://pchart.sourceforge.net/documenta ... pic=pChart#
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: APC HS 500
На домашней странице графики пока не обновляются автоматически...только после перезагрузки страницы.Alex писал(а):Немного поколдовал и график в меню управления заработал, а на домашней странице — нет. Видимо, надо что-то добавить в коде.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: APC HS 500
Ну, если на домашней странице графики действительно не обновляются, то будем ждать... Кстати, на моём компьютере генерация графика загружает процессор на 10%. А как установить принудительное обновление страницы раз в 30 секунд?
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: APC HS 500
Поколдовал ещё немного и вот результат. По-моему неплохо!
- Вложения
-
- 6.png (28.07 КБ) 12536 просмотров
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: APC HS 500
Даже очень неплохоAlex писал(а):Поколдовал ещё немного и вот результат. По-моему неплохо!
По возможности выкладывайте скрины и кода, чтобы люди видели реализацию....Потом будет возможность добавлять в статьи на сайте примеры реализации....
Вопрос такого плана:
Можно ли в html коде ставить условия чтобы выводить например различным цветом устройство "Online" или "Offline"
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: APC HS 500
> Можно ли в html коде ставить условия чтобы выводить например различным цветом устройство "Online" или "Offline"
Самому интересно. Но я html-теги вижу первый раз в жизни 8(). Видимо тут должны помочь более старшие товарищи
Самому интересно. Но я html-теги вижу первый раз в жизни 8(). Видимо тут должны помочь более старшие товарищи
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: APC HS 500
Инструкция для 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
Вот и всё! Получаем симпатичную и информативную картинку.
Часть 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
Вот и всё! Получаем симпатичную и информативную картинку.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: APC HS 500
Сделал страничку управления АРС-ом (в сценах). Значения переменных автоматически меняются, а графики - нет. Надо перезагружать сцену вручную. Это так и должно быть?
- Вложения
-
- apc control
- apc.png (58.73 КБ) 12268 просмотров