Модуль графики Analog

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

Модератор: immortal

Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вс ноя 01, 2015 7:32 pm

analog.php и остальные файлы были оригинальные (т.е. "из коробки" - не менял их с тех пор как установил МЖД - это с 7 октября этого года). Добавил только pChart.class. Может попробовать все файлы с мая 2013 года закинуть в МЖД?
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вс ноя 01, 2015 7:42 pm

olehs писал(а):analog.php вернули оригинальный?
Сравнил - файл analog.php от 2013 года полностью соответствует текущему файлу.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Модуль графики Analog

Сообщение olehs » Вс ноя 01, 2015 7:48 pm

Вы говорили, что исправили analog.php на файл .\pChart\class\pData.class.php.
Верните как было и подложите 3 файла из архива рядом с analog.php.
У меня заработало.
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вс ноя 01, 2015 8:06 pm

Сделал. Вернул обратно analog.php, файлы из архива положил в ту же директорию - не помогло. Сейчас попробую поэкспериментировать с модулем Multi Analog.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вс ноя 01, 2015 8:20 pm

Нашёл ошибку у себя (пробовал разные варианты написания строки запроса) - вместо "p=..." написал "p1=...". Сейчас исправил, но опять вместо графика получаю алармы, в этот раз скрипту не нравятся шрифты:
Warning: imageftbbox(): Could not find/open font in /var/www/pChart/pChart.class on line 557
Warning: imagettftext(): Could not find/open font in /var/www/pChart/pChart.class on line 567
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вс ноя 01, 2015 9:33 pm

Заработало!!!
Траблы были из-за линуксовой регистрозависимости. Поменял слово "Font" на "font" в файле analog.php в 2-х местах:

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

//---------------------------- Title
  
 $Test->setFontProperties("./pChart/fonts/tahoma.ttf",10);  
 if ($_GET['title']) {
  $Test->drawTitle(100,15,$_GET['title'],150,150,150);
 } else { }

//---------------------------- Font

 $Test->setFontProperties("./pChart/fonts/tahoma.ttf",8);  
 
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Пн ноя 02, 2015 6:29 pm

Столкнулся ещё с одной проблемой: график рисует только прямую линию. Хотя в базе данных лежат различающиеся данные. Долго смотрел как SQL-запросы формируются, в итоге вышел на следующий неприятный факт:
в МЖД установлен часовой пояс Азия/Екатеринбург (GMT+5)
СпойлерПоказать
Безымянный.png
Безымянный.png (2.94 КБ) 9910 просмотров
а по факту на самой системе установлен часовой пояс Москва (GMT+3):

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

pi@raspberrypi /etc $ date
Mon Nov  2 18:20:32 MSK 2015
В итоге что получается: в базу данных МЖД ложит значение какой-либо переменной с меткой времени GMT+5. При этом SQL-сервер записывает что данная запись была сделана во столько-то, но уже с GMT+3!!!
Потом в analog.php мы создаём запрос вида:

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

SELECT ID, VALUE, UNIX_TIMESTAMP(ADDED) as UNX FROM phistory WHERE VALUE_ID='362' AND ADDED>=('2015-11-02 19:08:55') AND ADDED<=('2015-11-02 20:08:55') ORDER BY ADDED
и получаем следующий ответ:

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

history_value[0]=-2.80,      time: 1446480670 (Mon Nov 02 2015 21:11:10 GMT+0500)
history_value[1]=-2.70,      time: 1446481270 (Mon Nov 02 2015 21:21:10 GMT+0500)
history_value[2]=-2.70,      time: 1446483070 (Mon Nov 02 2015 21:51:10 GMT+0500)
history_value[3]=-2.60,      time: 1446483670 (Mon Nov 02 2015 22:01:10 GMT+0500)
 
В общем что я хотел сказать - если будут подобные траблы с графиком (прямая линия при заведомо различающихся исторических данных) - проверяйте часовые пояса на МЖД и в системе.
И хотелось бы ещё нормальный SQL-запрос не по времени создания, а по фактически записанному времени в базе, а также чтобы МЖД менял часовой пояс и для всей системы.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Пн ноя 02, 2015 6:46 pm

Оставлю здесь небольшую инструкцию как менять часовой пояс в линуксе, вдруг кому пригодится.
Меняем часовой пояс в ЛинуксПоказать
Проверяем разрешения на файл /etc/localtime:

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

pi@raspberrypi /etc $ ls -al /etc/localtime
-rw-r--r-- 1 root root 1342 Apr 10  2015 /etc/localtime
Проверяем текущую дату:

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

pi@raspberrypi /etc $ date
Mon Nov  2 18:37:11 MSK 2015
Можно попробовать выставить по гринвичу:

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

pi@raspberrypi /etc $ sudo  ln -sf /usr/share/zoneinfo/GMT /etc/localtime
Проверяем текущую дату:

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

pi@raspberrypi /etc $ date
Mon Nov  2 15:39:33 GMT 2015
А теперь устанавливаем нужный нам часовой пояс (в моёмслучае это Азия/Екатеринбург)

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

pi@raspberrypi /etc $ sudo  ln -sf /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime
Проверяем что дата изменилась:

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

pi@raspberrypi /etc $ date
Mon Nov  2 20:40:00 YEKT 2015
P.S. После смены часового пояса нужно перезагрузиться.

--------------------
Добавил 06.02.2016
Столкнулся с проблемой - время было выставлено некорректно, хотя демон ntp и был запущен. В мануалах говорится что время не будет обновляться автоматически если разница по времени между ntp-сервером и нашим компом - больше 1000 с. Помогает следующее:

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

sudo service ntp stop
sudo ntpdate ru.pool.ntp.org
# Проверяем что дата выставилась корректно:
date
sudo service ntp start
Последний раз редактировалось Ko/|xo3HUk Сб фев 06, 2016 12:49 pm, всего редактировалось 1 раз.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вт ноя 03, 2015 11:04 pm

Доброго всем времени суток!

Прежде всего хочу поблагодарить Alex за этот модуль Analog.
Долго пытался настроить модуль Analog, столкнулся с некоторыми проблемами, но всё-же решил их и запустил этот модуль, но результат меня не порадовал - на тёмной теме смотрятся данные графики не очень:
СпойлерПоказать
old.png
old.png (28.09 КБ) 9859 просмотров
Ну с этим разобрался - поставил фон, вроде всё нормально, но почему-то график не линией рисуется, а заливается:
СпойлерПоказать
old2.png
old2.png (34.02 КБ) 9859 просмотров
Также столкнулся с такой проблемой (писал уже выше) - модуль написан в 2013 году, много воды утекло и в теперешнем pChart уже нет, например, файла pChart.class.
В итоге решил разобраться с файлом analog.php и прикрутить его к теперешней версии pChart 2.1.4: http://www.pchart.net/release/pChart2.1.4.zip
Программист из меня, конечно, никакой, но копипастить умею :)
Все файлы из архива pChart2.1.4.zip распаковал в папку /var/www/pChart2 (старую директорию /var/www/pChart пока оставил). Туда же скопировал файл analog.php и уже там его редактировал. Полностью весь архив папки pChart2 вместе с моим analog.php (удалил файл шрифта calibri.ttf, т.к. размер архива превышал 1Мб):
pChart2.zip
(933.51 КБ) 250 скачиваний
Файл шрифта calibri:
calibri.zip
(403.88 КБ) 240 скачиваний
Переделал немного формирование данных для графика, что-то старое удалил, что-то новое добавил. НЕ ТЕСТИРОВАЛ функции фильтров, выборку за пользовательский период, и аналитику.
Тестировал графики с 2-мя переменными, хотя сделано как и в исходной версии - возможно до 9 переменных на одном графике.

Под спойлером примеры разных видов графиков для одних и тех же переменных. Запрос для формирования графиков был такой:

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

http://192.168.1.69/pChart2/analog.php?p1=ESP8266_Outside.Temper_1&type=3d&p2=ESP8266_Hall.Temper_1&n1=Улица&n2=Зал&width=1280&height=720$c1a=20&c2a=40&gtype=spline          
Виды графиковПоказать
line.png
Line
line.png (69.02 КБ) 9859 просмотров
spline.png
Spline
spline.png (70 КБ) 9859 просмотров
area.png
Area
area.png (68.38 КБ) 9859 просмотров
bar.png
Bar
bar.png (141.39 КБ) 9859 просмотров
bestfit.png
BestFit
bestfit.png (67.03 КБ) 9859 просмотров
filledspline.png
FilledSpline
filledspline.png (62.82 КБ) 9859 просмотров
UPD 06.11.2015: Добавил возможность ручного масштабирования (параметры &min= и &max=). Если эти параметры не указаны, то используется автомасштабирование. Также сделал лейблы на графиках полупрозрачными (см. в analog.php параметр "BoxAlpha"=>40). Здесь уже максимальное число вложений, так что обновлённый файл см. в новом посте: http://majordomo.smartliving.ru/forum/v ... 454#p26454.
Последний раз редактировалось Ko/|xo3HUk Пт ноя 06, 2015 4:34 pm, всего редактировалось 5 раз.
За это сообщение автора Ko/|xo3HUk поблагодарили (всего 2):
Amarok (Ср ноя 04, 2015 9:34 am) • ABola (Пн янв 25, 2016 5:22 pm)
Рейтинг: 2.33%
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Модуль графики Analog

Сообщение Ko/|xo3HUk » Вт ноя 03, 2015 11:06 pm

Не влезли все картинки в один пост:
СпойлерПоказать
filledstep.png
FilledStep
filledstep.png (59.91 КБ) 9859 просмотров
plot.png
Plot
plot.png (61.38 КБ) 9859 просмотров
stackedarea.png
StackedArea
stackedarea.png (61.46 КБ) 9859 просмотров
stackedbar.png
StackedBar
stackedbar.png (210.73 КБ) 9859 просмотров
step.png
Step
step.png (59.9 КБ) 9859 просмотров
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ответить