Страница 13 из 23

Re: "Живые" графики нужна помощь.

Добавлено: Пн сен 22, 2014 2:19 pm
denis
после вышеописанного в руках будет "удочка", которая поможет строить любые графики.

Re: "Живые" графики нужна помощь.

Добавлено: Пн сен 22, 2014 8:25 pm
dimik
Это рабочие библиотеки с привязкой по времени.
Давно уже просил Сергея поправить, обещал поглядеть, прошло много месяцев......
В общем после каждого обновления просто просто меняю соответствующие библиотеки на эти, и все работает. ;)

Re: "Живые" графики нужна помощь.

Добавлено: Вт сен 23, 2014 9:20 am
PAV
А можно по шагам, чего делать надо, чтобы, например, вывести значение sensTemp1 за месяц?

Re: "Живые" графики нужна помощь.

Добавлено: Вт сен 23, 2014 2:57 pm
dimik
По шагам:
1. развернуть архивы.
2. заменить папки pChart и highCart папками из архивов.

и посмотреть что произойдет с Вашими графиками из поста выше :)

Re: "Живые" графики нужна помощь.

Добавлено: Вт сен 23, 2014 3:12 pm
PAV
Блииин. Ну не мудрите, пожалуйста. Вот есть данные датчика движения например. SensorMovement1.status.
Что нужно сделать, чтобы получить график его срабатывания? Какой код? Какие действия.
Пожалуйста, всем будет полезно.
Папки разархивировал и вставил.

Re: "Живые" графики нужна помощь.

Добавлено: Вт сен 23, 2014 3:48 pm
dmw
Почемуто мне кажется это всем поможет:
http://smartliving.ru/Main/WizardGraphics

Re: "Живые" графики нужна помощь.

Добавлено: Вт сен 23, 2014 7:55 pm
denis
dmw писал(а):Почемуто мне кажется это всем поможет:
http://smartliving.ru/Main/WizardGraphics
как я понимаю это не поможет - это не "живые" графики. см. стр.1 этой темы.

Re: "Живые" графики нужна помощь.

Добавлено: Вт сен 23, 2014 11:40 pm
dimik
PAV писал(а):Блииин. Ну не мудрите, пожалуйста. Вот есть данные датчика движения например. SensorMovement1.status.
Что нужно сделать, чтобы получить график его срабатывания? Какой код? Какие действия.
Пожалуйста, всем будет полезно.
Папки разархивировал и вставил.
Чего-то вы не договариваете. На предыдущей странице Вы сами приводили код страницы. Поменяйте имя переменной Moscow.Temp на свою SensorMovement1.status

Re: "Живые" графики нужна помощь.

Добавлено: Ср сен 24, 2014 7:33 am
denis
попробую помочь еще раз.
в коде выолженном на странице http://smartliving.ru/forum/viewtopic.p ... t=90#p5642

необходимо кусок кода

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

sensornames = ['1',
             '2', 
            '3',
            '4',
            '5']; 
заменить на

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

sensornames = ['SensorMovement1.status',
             'SensorMovement2.status', 
            'SensorMovement3.status',
            'SensorMovement4.status',
            'SensorMovement5.status']; 
и будет у вас 5 графиков с 5-ти датчиков движения. у людей получилось судя по комментам на той странице все получилось.

у меня так строятся графики температур, но это все баловство - по жизни оказалось не нужно)

Re: "Живые" графики нужна помощь.

Добавлено: Ср сен 24, 2014 10:02 am
PAV
Давайте правда по шагам.
Скачал ваши архивы, распаковал, положил в pcharts и highcharts соответственно.
В папке highcharts создал файл mytest.php следующего содержания:

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

<?php

$name = "MIN";
if (isset($_GET['name'])) $name="".$_GET['name'];

$d=preg_match('/(.+)\.(.+)/is', $name, $m);

$object_id = $m[1];

$rcn = mysql_connect("localhost","root","");
mysql_select_db("db_terminal");

 $sqlstr="SET SESSION time_zone = '-0:00'";
 $res=mysql_query($sqlstr);


$sqlstr="SELECT * FROM `objects` WHERE `TITLE`='{$object_id}'";
 
$res=mysql_query($sqlstr);


while ($row=mysql_fetch_array($res)) {

$object_id=$row['ID'];
$class_id = $row['CLASS_ID'] ;


};
 

$sqlstr="SELECT * FROM `properties` WHERE CLASS_ID=$class_id AND `TITLE`='{$m[2]}'";

$res=mysql_query($sqlstr);

 


while ($row=mysql_fetch_array($res)) {

$property_id=$row['ID'];


};

$sqlstr="SELECT * FROM `pvalues` WHERE PROPERTY_ID=$property_id AND `OBJECT_ID`=$object_id";
 
$res=mysql_query($sqlstr);

 


while ($row=mysql_fetch_array($res)) {

$value_id=$row['ID'];


};



$sqlstr = "SELECT UNIX_TIMESTAMP(`ADDED`) as `ADDED` , `VALUE` FROM `phistory` WHERE `VALUE_ID`=$value_id ORDER BY added";
$res = mysql_query($sqlstr);

$number = mysql_num_rows($res);
printf("[");

$first = false;

$old_ADDED=0;

if ($number > 0)
{
  while ($row=mysql_fetch_array($res)) {
    $cur_ADDED=$row['ADDED'];

   if ($old_ADDED!=$cur_ADDED ){
   if ($first) printf(",");
    printf("[");
    printf($row['ADDED']*1000);
    printf(", ");
    printf($row['VALUE']+$delta);
    printf("]");
   $old_ADDED=$row['ADDED'];
   $first = true;
   }
   
 
  }
}
printf("]");



mysql_close();

?>
Создал страничку graph.html следующего содержания:

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

<!DOCTYPE HTML>
<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <title>Highstock Example</title>
                <script type="text/javascript" src="/highcharts/js/jquery-1.7.1.min.js"></script>
                <script type="text/javascript" language="javascript">





 var cnt = 0, seriesOptions = [],  names = ['темп 1',
                               ];
 sensornames = ['sensorMovement1.status',
          ];



      
    createAll();

    function createAll() {
   

   
        cnt = 0;
        $.each(names, function(i, name) {
      
   //   alert(sensornames[i]);
      
       url = '/highcharts/mytest.php?name='+sensornames[i]
   //   alert (url);
            $.getJSON(url, function(data) {
                seriesOptions[i] = {name: name,
                           data: data,
                           tooltip: { yDecimals: 1}};
                cnt++;
                if (cnt == names.length) {
   //         alert('======');
                    createChart();
                }
            });
        });
    }

    function createChart() {

     Highcharts.setOptions({
            lang: {
                months:   ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль',
                           'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],

                shortMonths:   ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл',
                           'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],

                weekdays: ['Вск', 'Пнд', 'Втр', 'Срд', 'Чтв', 'Птн', 'Сбт']
            }
        });

   
        window.chart = new Highcharts.StockChart({
          chart : { renderTo : 'container',
                 zoomType: 'xy'
               },
         title : { text : 'График температур'},
         legend: { enabled : true ,
                 layout : 'horizontal',
                   align : 'center',
                 verticalAlign : 'top',
                 x : 0,
                 y : 20
                   },
      
            xAxis : { maxZoom : 1 * 24 * 36000 },
            series : seriesOptions
        });
      
    }

                </script>
        </head>
        <body>
<script src="./js/highstock.js"></script>
<script src="./js/modules/exporting.js"></script>

<div id="container" style="height: 500px; min-width: 500px"></div>
        </body>
</html>
Открываю страницу - страница пустая. Вообще.
Пробую 1.1.1.1/highcharts/mytest.php?name=sensorMovement1.status
Выдает - [] и все
Что делаю не так?
Пароль на mysql стоит, но тут просто запрос, пустое поле так и оставляем.

UPD: пароль нужен. ввел пароль, заработала 1.1.1.1/highcharts/mytest.php?name=
НО, например, USD.data выводит отлично, а вот sensorMovement1.status - опять пустота, почему?
Графики не строятся, на странице пусто, в смысле нет даже осей и проч, просто пустая стр.