[Приложение] Open Hardware Monitor

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

dimitriy
Сообщения: 14
Зарегистрирован: Пн ноя 26, 2012 5:39 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение dimitriy » Ср дек 12, 2012 1:27 pm

Alex писал(а): Ещё одна проблема. На сколько я понял OHM имеет опцию автозагрузки, но автозагружаясь не стартует веб-сервер. Кто может - помогите разобраться.
У меня запуск сервера работал если в windows добавить ярлык программы для автозагрузки, а не использовать штатную опцию автозагрузки.

Алекс, можно тубя попросить выложить исходники твоего веб-интерфейса - очень уж здорово сделано.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение Alex » Ср дек 12, 2012 4:18 pm

У меня запуск сервера работал если в windows добавить ярлык программы для автозагрузки, а не использовать штатную опцию автозагрузки.
Хорошо если так. Надо у себя проверить
Алекс, можно тубя попросить выложить исходники твоего веб-интерфейса - очень уж здорово сделано.
Я просто накидал запросы в таблицу и всё. У вас мои запросы работать не будут, просто замените параметры вызова на те, которые работают у вас.

Код: Выделить всё

<meta http-equiv=refresh content=180>

<table width="800">
  <tr>
    <td>
<br>
 <div align="center"><font size="5" color="lightgray" face="Arial"><b>Сервер MajorDoMo</b></font></div><br><br>
            <br>
            <div align="center">
              <img src="/pChart/s.php?p=analog20.value&objt=smartStick1&dca=blue&unit=°&max=%analog20.graphMax%&middle=0&min=%analog20.graphMin%&label=CPU temp&health=%analog20.health%&dbalert=%analog20.alert1%&balert=%analog20.alert2%&galert=%analog20.alert3%&oalert=%analog20.alert4%&ralert=%analog20.alert5%">&nbsp
              <img src="/pChart/s.php?p=analog21.value&objt=smartStick1&dca=blue&unit=%&max=%analog21.graphMax%&middle=0&min=%analog21.graphMin%&label=CPU&health=%analog21.health%&dbalert=%analog21.alert1%&balert=%analog21.alert2%&galert=%analog21.alert3%&oalert=%analog21.alert4%&ralert=%analog21.alert5%">&nbsp
              <img src="/pChart/s.php?p=analog22.value&objt=smartStick1&dca=blue&unit=%&max=%analog22.graphMax%&middle=0&min=%analog22.graphMin%&label=Memory&health=%analog22.health%&dbalert=%analog22.alert1%&balert=%analog22.alert2%&galert=%analog22.alert3%&oalert=%analog22.alert4%&ralert=%analog22.alert5%">&nbsp
             <img src="/pChart/s.php?p=analog23.value&objt=smartStick1&dca=blue&unit=rpm&max=%analog23.graphMax%&middle=0&min=%analog23.graphMin%&label=FAN CPU&health=%analog23.health%&dbalert=%analog23.alert1%&balert=%analog23.alert2%&galert=%analog23.alert3%&oalert=%analog23.alert4%&ralert=%analog23.alert5%">&nbsp
             <img src="/pChart/s.php?p=analog24.value&objt=smartStick1&dca=blue&unit=rpm&max=%analog24.graphMax%&middle=0&min=%analog24.graphMin%&label=FAN CPU&health=%analog24.health%&dbalert=%analog24.alert1%&balert=%analog24.alert2%&galert=%analog24.alert3%&oalert=%analog24.alert4%&ralert=%analog24.alert5%">&nbsp
            <img src="/pChart/s.php?p=analog25.value&objt=smartStick1&dca=blue&unit=°&max=%analog25.graphMax%&middle=0&min=%analog25.graphMin%&label=HDD temp&health=%analog25.health%&dbalert=%analog25.alert1%&balert=%analog25.alert2%&galert=%analog25.alert3%&oalert=%analog25.alert4%&ralert=%analog25.alert5%">&nbsp
           <br> 

</div>
</td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>


<br>
<table>
  <tr>
    <td><br><br>
 <div align="center"><font size="3" color="gray" face="Arial"><b>Температура процесора</b></font></div>
            <div align="center">
           <br>
            <font size="5" color="lightgray" face="Arial"><b>%analog20.value%° %analog20.directionArrow%</b></font><br><br>
            <font size="2" color="gray" face="Arial">Последнее обновление: </font>
            <font size="2" color="brown" face="Arial"><b>%analog20.updated_%</b></font><br>
            <font size="2" color="gray" face="Arial">Максимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog20.statDayMax% (%analog20.statDayMaxTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Минимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog20.statDayMin% (%analog20.statDayMinTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Разница: </font>
            <font size="2" color="brown" face="Arial"><b>%analog20.statDayDelta%</b></font><br>
          </div>

    </td>
    <td><br><br>
 <div align="center"><font size="3" color="gray" face="Arial"><b>Загрузки процесора</b></font></div>
            <div align="center">
           <br>
            <font size="5" color="lightgray" face="Arial"><b>%analog21.value%%%analog21.directionArrow%</b></font><br><br>
            <font size="2" color="gray" face="Arial">Последнее обновление: </font>
            <font size="2" color="brown" face="Arial"><b>%analog21.updated_%</b></font><br>
            <font size="2" color="gray" face="Arial">Максимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog21.statDayMax% (%analog21.statDayMaxTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Минимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog21.statDayMin% (%analog21.statDayMinTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Разница: </font>
            <font size="2" color="brown" face="Arial"><b>%analog21.statDayDelta%</b></font><br>
          </div>
    </td>
    <td><br><br>
       <div align="center"><font size="3" color="gray" face="Arial"><b>Загрузка памяти</b></font></div>
            <div align="center">
           <br>
            <font size="5" color="lightgray" face="Arial"><b>%analog22.value%%%analog22.directionArrow%</b></font><br><br>
            <font size="2" color="gray" face="Arial">Последнее обновление: </font>
            <font size="2" color="brown" face="Arial"><b>%analog22.updated_%</b></font><br>
            <font size="2" color="gray" face="Arial">Максимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog22.statDayMax% (%analog22.statDayMaxTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Минимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog22.statDayMin% (%analog22.statDayMinTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Разница: </font>
            <font size="2" color="brown" face="Arial"><b>%analog22.statDayDelta%</b></font><br>
          </div>
    </td>
  </tr>
  <tr>
    <td>
<img src="/pChart/?p=analog20.value&type=6h&title= &width=280&height=210&gcolor=red&gtype=fcurve&scale=0">&nbsp
    </td>
    <td>
<img src="/pChart/?p=analog21.value&type=6h&title= &width=280&height=210&gcolor=brown&gtype=fline&scale=0&points=0">&nbsp
    </td>
    <td>
<img src="/pChart/?p=analog22.value&type=6h&title= &width=280&height=210&gcolor=orange&gtype=fcurve&scale=0">&nbsp
    </td>
  </tr>
  <tr>
    <td><br><br>
  <div align="center"><font size="3" color="gray" face="Arial"><b>Корпусной вентилятор</b></font></div>
            <div align="center">
           <br>
            <font size="5" color="lightgray" face="Arial"><b>%analog23.value%rpm%analog23.directionArrow%</b></font><br><br>
            <font size="2" color="gray" face="Arial">Последнее обновление: </font>
            <font size="2" color="brown" face="Arial"><b>%analog23.updated_%</b></font><br>
            <font size="2" color="gray" face="Arial">Максимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog23.statDayMax% (%analog23.statDayMaxTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Минимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog23.statDayMin% (%analog23.statDayMinTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Разница: </font>
            <font size="2" color="brown" face="Arial"><b>%analog23.statDayDelta%</b></font><br>
          </div>
</td>
    <td><br><br>
  <div align="center"><font size="3" color="gray" face="Arial"><b>Процессорный вентилятор</b></font></div>
            <div align="center">
           <br>
            <font size="5" color="lightgray" face="Arial"><b>%analog24.value%rpm%analog24.directionArrow%</b></font><br><br>
            <font size="2" color="gray" face="Arial">Последнее обновление: </font>
            <font size="2" color="brown" face="Arial"><b>%analog24.updated_%</b></font><br>
            <font size="2" color="gray" face="Arial">Максимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog24.statDayMax% (%analog24.statDayMaxTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Минимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog24.statDayMin% (%analog24.statDayMinTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Разница: </font>
            <font size="2" color="brown" face="Arial"><b>%analog24.statDayDelta%</b></font><br>
          </div>
</td>
    <td><br><br>
  <div align="center"><font size="3" color="gray" face="Arial"><b>Температура жесткого диска</b></font></div>
            <div align="center">
           <br>
            <font size="5" color="lightgray" face="Arial"><b>%analog25.value%° %analog25.directionArrow%</b></font><br><br>
            <font size="2" color="gray" face="Arial">Последнее обновление: </font>
            <font size="2" color="brown" face="Arial"><b>%analog25.updated_%</b></font><br>
            <font size="2" color="gray" face="Arial">Максимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog25.statDayMax% (%analog25.statDayMaxTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Минимальное значение: </font>
            <font size="2" color="brown" face="Arial"><b>%analog25.statDayMin% (%analog25.statDayMinTime%)</b></font><br>
            <font size="2" color="gray" face="Arial">Разница: </font>
            <font size="2" color="brown" face="Arial"><b>%analog25.statDayDelta%</b></font><br>
          </div>
</td>
  </tr>
  <tr>
    <td>
<img src="/pChart/?p=analog23.value&type=6h&title= &width=280&height=210&gcolor=gray&gtype=fcurve&scale=0">&nbsp
</td>
    <td>
<img src="/pChart/?p=analog24.value&type=6h&title= &width=280&height=210&gcolor=gray&gtype=fcurve&scale=0">&nbsp
</td>
    <td>
<img src="/pChart/?p=analog25.value&type=6h&title= &width=280&height=210&gcolor=green&gtype=fcurve&scale=0">&nbsp
</td>
  </tr>
</table>
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение Alex » Ср дек 12, 2012 6:44 pm

raptorialfungus а вы запускали ваш код у себя? У вас работает? Я вставил в минутный цикл такой код

Код: Выделить всё

function searchJson($obj, $value){
  global $sensorvalue;

  foreach($obj as $item) {
    foreach($item as $child) {

      if (isset($child->id) && $child->id == $value) {
        $sensorvalue = $child->Value;
        return;
      }
      searchJson($child,$value);

    }
  }

  return null;
}

$ch = curl_init('http://192.168.3.33:8085/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$ohm = curl_exec($ch);
$json = json_decode($ohm);

searchJson($json,'26');
sg('analog20.value',$sensorvalue);

searchJson($json,'28');
sg('analog21.value',$sensorvalue);
В analog20.value и analog21.value не попадает ничего или (предположительно) мусор. :(
В чём может быть ошибка?
raptorialfungus
Сообщения: 75
Зарегистрирован: Чт ноя 29, 2012 4:13 pm
Благодарил (а): 0
Поблагодарили: 9 раз

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение raptorialfungus » Ср дек 12, 2012 7:11 pm

Alex писал(а):raptorialfungus а вы запускали ваш код у себя? У вас работает? Я вставил в минутный цикл такой код
Запускал, но не внутри MajorDoMo, а в отдельном php скрипте :oops:
Просто тестировал на работе, а там нет MajorDoMo.
Чуть попозже попробую дома запустить эту программулину и проверить досконально.
Кроме проблем с глобальной переменной $sensorvalue не представляю, что может быть.
Надо попробовать Debmes в разных местах подобавлять.
...
Точняк, не устанавливается переменная $sensorvalue из функции почему-то. Сейчас разберусь. В остальном код работает правильно.

Код: Выделить всё

function searchJson($obj, $value){

  foreach($obj as $item) {
    foreach($item as $child) {

      if (isset($child->id) && $child->id == $value) {
        sg('ThisComputer.temp', $child->Value);
        return;
      }
      searchJson($child,$value);

    }
  }

  return;
}

$ch = curl_init('http://192.168.1.15:8085/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$ohm = curl_exec($ch);
$json = json_decode($ohm);

searchJson($json,'26');
sg('analog20.value',gg('ThisComputer.temp'));

searchJson($json,'28');
sg('analog21.value',gg('ThisComputer.temp'));
Не получается использовать обычные глобальные переменные во вложенных циклах почему-то. В отдельно стоящих php все в порядке. Пришлось использовать временную переменную через sg(). На выходе в ThisComputer.temp имеем результат.

Андрей
Андрей
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение Alex » Ср дек 12, 2012 9:59 pm

Если запускать из цикла просто ничего не работает, даже 'ThisComputer.temp' не создаётся (дело не доходит).

Если запустить из скрипта, выдаёт:

Warning: Invalid argument supplied for foreach() in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(130) : eval()'d code on line 4

4: foreach($item as $child) {

И штук 50 одинаковых ерроров. :(
raptorialfungus
Сообщения: 75
Зарегистрирован: Чт ноя 29, 2012 4:13 pm
Благодарил (а): 0
Поблагодарили: 9 раз

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение raptorialfungus » Ср дек 12, 2012 10:21 pm

Alex писал(а):Если запускать из цикла просто ничего не работает, даже 'ThisComputer.temp' не создаётся (дело не доходит).
Там нет ругани про json_decode в $json = json_decode($ohm);?
Может не загружен модуль json.so в php?
http://slaptijack.com/system-administra ... for-php-5/
Debmes($ohm); сразу после curl_exec выдает нормальную информацию?
Андрей
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение Alex » Ср дек 12, 2012 11:02 pm

Там нет ругани про json_decode в $json = json_decode($ohm);?
В MajorDoMo полная тишина. Никаких сообщений, кроме приведённого выше.
Может не загружен модуль json.so в php?
Уменя стандартная конфигурация MajorDoMo. Если он там должен быть, то наверное загружен. Как это можно проверить?
Загрузить не проблема. Как понять нужно мне это или нет?
Debmes($ohm); сразу после curl_exec выдает нормальную информацию?
Так, давайте по шагам. Как я понял:

1. Я вставляю Debmes($ohm); сразу после curl_exec

2. Далее. Где и как смотреть что выдаёт Debmes?

3. Каковы критерии нормальности выдаваемой информации? :) Шутка. Что там должно быть написано и что искать?
raptorialfungus
Сообщения: 75
Зарегистрирован: Чт ноя 29, 2012 4:13 pm
Благодарил (а): 0
Поблагодарили: 9 раз

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение raptorialfungus » Ср дек 12, 2012 11:18 pm

Alex писал(а):
Может не загружен модуль json.so в php?
Уменя стандартная конфигурация MajorDoMo. Если он там должен быть, то наверное загружен. Как это можно проверить?
В корне сервера лежит test.php. Перед закрывающей ?> добавить команду phpinfo(); и загрузить в браузере http://адрес/test.php
Должен быть раздел
json
json support enabled
json version 1.2.1
Alex писал(а):
Загрузить не проблема. Как понять нужно мне это или нет?
Если устраивают веб-переменные, то, разумеется, дальше можно не мучаться ;)
Alex писал(а):1. Я вставляю Debmes($ohm); сразу после curl_exec
2. Далее. Где и как смотреть что выдаёт Debmes?
3. Что там должно быть написано и что искать?
1. Да
2. путь_к_корню_web/debmes/последний текстовый файл
3. Должно быть: {"id": 0, "Text": "Sensor" ...
Андрей
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение Alex » Чт дек 13, 2012 12:16 am

Должен быть раздел
json
json support enabled
json version 1.2.1
Есть. Всё точно так.
Если устраивают веб-переменные, то, разумеется, дальше можно не мучаться
Какие мучения? Нормальный процесс. Веб-переменные устаивают, не устраивает, что json не работает. :)
Должно быть: {"id": 0, "Text": "Sensor" ...
Полный набор от id 0 до последнего id.

Код: Выделить всё

"id": 26, "Text": "Core #1 - #2", "Children": [], "Min": "55,0 В°C", "Value": "55,1 В°C", "Max": "70,5 В°C", "ImageURL": "images/transparent.png"}], "Min": "", "Value": "", "Max": "", "ImageURL": "images_icon/temperature.png"}, {"id": 27, "Text": 
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Мониторинг системных ресурсов локально и через сеть

Сообщение Alex » Чт дек 13, 2012 1:00 am

Странно как то. То висели пустые индикаторы примерно минут сорок. Сейчас посмотрел — появились цифры. Вроде правильные. ??? Ничего не менял!

Ладно, потестирую — отпишусь.
Ответить