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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

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

Сообщение denis » Пн сен 22, 2014 2:19 pm

после вышеописанного в руках будет "удочка", которая поможет строить любые графики.
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am
Благодарил (а): 3 раза
Поблагодарили: 8 раз

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

Сообщение dimik » Пн сен 22, 2014 8:25 pm

Это рабочие библиотеки с привязкой по времени.
Давно уже просил Сергея поправить, обещал поглядеть, прошло много месяцев......
В общем после каждого обновления просто просто меняю соответствующие библиотеки на эти, и все работает. ;)
Вложения
pChart.rar
(8.12 КБ) 232 скачивания
highcharts.rar
(136.02 КБ) 204 скачивания
За это сообщение автора dimik поблагодарил:
tsember (Пн мар 30, 2015 10:20 pm)
Рейтинг: 1.16%
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Вт сен 23, 2014 9:20 am

А можно по шагам, чего делать надо, чтобы, например, вывести значение sensTemp1 за месяц?
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am
Благодарил (а): 3 раза
Поблагодарили: 8 раз

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

Сообщение dimik » Вт сен 23, 2014 2:57 pm

По шагам:
1. развернуть архивы.
2. заменить папки pChart и highCart папками из архивов.

и посмотреть что произойдет с Вашими графиками из поста выше :)
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Вт сен 23, 2014 3:12 pm

Блииин. Ну не мудрите, пожалуйста. Вот есть данные датчика движения например. SensorMovement1.status.
Что нужно сделать, чтобы получить график его срабатывания? Какой код? Какие действия.
Пожалуйста, всем будет полезно.
Папки разархивировал и вставил.
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

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

Сообщение dmw » Вт сен 23, 2014 3:48 pm

Почемуто мне кажется это всем поможет:
http://smartliving.ru/Main/WizardGraphics
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

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

Сообщение denis » Вт сен 23, 2014 7:55 pm

dmw писал(а):Почемуто мне кажется это всем поможет:
http://smartliving.ru/Main/WizardGraphics
как я понимаю это не поможет - это не "живые" графики. см. стр.1 этой темы.
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am
Благодарил (а): 3 раза
Поблагодарили: 8 раз

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

Сообщение dimik » Вт сен 23, 2014 11:40 pm

PAV писал(а):Блииин. Ну не мудрите, пожалуйста. Вот есть данные датчика движения например. SensorMovement1.status.
Что нужно сделать, чтобы получить график его срабатывания? Какой код? Какие действия.
Пожалуйста, всем будет полезно.
Папки разархивировал и вставил.
Чего-то вы не договариваете. На предыдущей странице Вы сами приводили код страницы. Поменяйте имя переменной Moscow.Temp на свою SensorMovement1.status
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

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

Сообщение denis » Ср сен 24, 2014 7:33 am

попробую помочь еще раз.
в коде выолженном на странице 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-ти датчиков движения. у людей получилось судя по комментам на той странице все получилось.

у меня так строятся графики температур, но это все баловство - по жизни оказалось не нужно)
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Ср сен 24, 2014 10:02 am

Давайте правда по шагам.
Скачал ваши архивы, распаковал, положил в 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 - опять пустота, почему?
Графики не строятся, на странице пусто, в смысле нет даже осей и проч, просто пустая стр.
Ответить