[Модуль] Charts (charts)

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

Модератор: immortal

Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Модуль Charts

Сообщение Amarok » Пн фев 06, 2017 1:31 pm

Попросил Сергея внести clock в его модуль charts
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Модуль Charts

Сообщение serghei » Пн фев 06, 2017 1:41 pm

Вообще в этой библиотеке очень много "веселых" и интересных графиков есть. Одна проблема - я пока не знаю как привязать мои цифры к стрелкам на АМС. Попробую пойти окольными путями - сначала сливать данные в МД а потом их оттуда забирать. ((( Но это бред какой то.....
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
EvgenyG
Сообщения: 217
Зарегистрирован: Вт июл 21, 2015 4:59 pm
Откуда: Москва
Благодарил (а): 56 раз
Поблагодарили: 1 раз

Re: Модуль Charts

Сообщение EvgenyG » Ср фев 08, 2017 4:53 pm

EvgenyG писал(а):
EvgenyG писал(а):up
ещё для температуры необходимо задавать диапазон для шкалы
у меня в полу 2 датчика температуры
они показывают температуру с разницей от 0.1 до 2 градусов
на графике у них почти всегда разные шкалы
оооочень неудобно
up
Планируется ли расширение функционала и добавление возможности установки диапазона для шкалы?
Ещё раз попрошу о помощи, как настроить шкалу отображения для графика?
Можно ли объединить шкалы для графиков с одинаковыми единицами?
MDM Raspberry Pi 3b, esp32, ModBUS, esp8266, NooLite(MTRF-64-USB, SU-1-***, SLF-1-300, PM112, радиопульты PU)
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Модуль Charts

Сообщение directman66 » Пт фев 10, 2017 7:56 am

Почему-то из типов графиков есть только Gause и Solid Gaude. И нет класических графиков как на картинках.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Модуль Charts

Сообщение Jager » Пт фев 10, 2017 8:28 am

directman66 писал(а):Почему-то из типов графиков есть только Gause и Solid Gaude. И нет класических графиков как на картинках.
Установите период отличный от нуля и появятся остальные графики.
За это сообщение автора Jager поблагодарил:
directman66 (Пт фев 10, 2017 8:49 am)
Рейтинг: 1.16%
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Модуль Charts

Сообщение serghei » Вс фев 12, 2017 12:18 pm

В очередной раз запустил МД из старой версии 0.8 от Adzam , подключил АМС , получаю температуру с далласа и вывожу на график с историей. НО ! Когда выключаю физически ардуину , последнее значение температуры остается в памяти МД и продолжают отображаться на графике. Это глюк модуля или кого то еще? Ведь значения Uptime ардуины не меняется и по идее МД знает ,что датчик отвалился. Кстати то же самое происходит и в АМС на " домашней" странице. Если отвалился сенсор , даже перезапуск браузера не помогает - все равно выводится последнее значение из XML таблицы.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
EvgenyG
Сообщения: 217
Зарегистрирован: Вт июл 21, 2015 4:59 pm
Откуда: Москва
Благодарил (а): 56 раз
Поблагодарили: 1 раз

Re: Модуль Charts

Сообщение EvgenyG » Вс фев 12, 2017 12:43 pm

serghei писал(а):Когда выключаю физически ардуину , последнее значение температуры остается в памяти МД и продолжают отображаться на графике. Это глюк модуля или кого то еще?
Вроде нормальное поведение
Переменная же есть
И она отображается на графике
Надо отдельно прописывать, что если Uptime не меняется, то переменную заменяем на 0 или ещё что-то.
MDM Raspberry Pi 3b, esp32, ModBUS, esp8266, NooLite(MTRF-64-USB, SU-1-***, SLF-1-300, PM112, радиопульты PU)
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: Модуль Charts

Сообщение ipz » Ср фев 15, 2017 8:31 pm

EvgenyG писал(а): Ещё раз попрошу о помощи, как настроить шкалу отображения для графика?
Можно ли объединить шкалы для графиков с одинаковыми единицами?
Нужно задать единицу измерения в настройках. Если не нужны никакие символы в единице измерения я ставлю точку.
Только работает, если задать всем сразу. Часть графиков не получится объединить под одной осью. Только все.
chart.jpg
chart.jpg (8.51 КБ) 6260 просмотров
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: Модуль Charts

Сообщение ipz » Ср фев 15, 2017 8:44 pm

serghei писал(а):последнее значение температуры остается в памяти МД и продолжают отображаться на графике. Это глюк модуля или кого то еще?
МДМ не причем. Это Highcharts так отрисовывает график: от последнего полученного значения до текущего момента рисует прямую линию. Такое решение имеет право на жизнь.
chart3.jpg
chart3.jpg (2.35 КБ) 6251 просмотр
Например, счетчик ошибок - он может только расти, сброс в нуль только принудительно, поэтому такой график выглядит естественно.
Можно провести мышкой над ним и увидеть где стоит маркер (даже если маркеры отключены)

Если нужно нарисовать мгновенные значения, например, расход воды, то лучше использовать столбики (и да, сбрасывать в нуль, если это не происходит на передающей стороне)

А так возможны и другие артефакты:
chart1.jpg
chart1.jpg (9.85 КБ) 6254 просмотра
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Модуль Charts

Сообщение serghei » Пт фев 17, 2017 5:40 pm

I_I_Imonder писал(а): ...Добавил индикаторы на сцену, но они появляются на секунду и пропадают, куда рыть?
Скорее всего проблема с модулем. У меня древняя версия МД (около года). Индикаторы есть , но значений нет ( NaN ). На свежей системе значения появляются на 5 секунд и опять NaN. Браузер орет про не корректные имена свойств.


PS В общем разобрался я. Ошибка была в названии переменной. Всегда надо " название.свойство". И до кучи прицепить Jquery библиотеку. Для температуры с Openweathermap
СпойлерПоказать

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

<body onload="init()">

<canvas id="canvasTin" width="401" height="401"></canvas> // Размер спидометра
 
<script>
    var scroll = false;
    var RadialTin;
    function init() {
        // Initialzing gauge
        // Define some sections
        //раскрасим шкалу -15..+15 голубой
        //15...25 зеленый
        //-30...-15,25...30 желтый
        var sections = [steelseries.Section(-15, 15, 'rgba(0, 0, 220, 0.3)'),
                        steelseries.Section(15, 25, 'rgba(0, 220, 0, 0.3)'),
                        steelseries.Section(-30, -15, 'rgba(220, 220, 0, 0.3)'),
                        steelseries.Section(25, 30, 'rgba(220, 220, 0, 0.3)') ],

            // Define one area
            // розовый сектор
            areas = [steelseries.Section(30, 40, 'rgba(220, 0, 0, 0.3)'),
                     steelseries.Section(-40, -30, 'rgba(220, 0, 0, 0.3)'),],
            //treshold = 25 - лампочка начинает мигать
        RadialTin = new steelseries.Radial('canvasTin', {
                            gaugeType: steelseries.GaugeType.TYPE4,
                            size: 401,
                            section: sections,
                            area: areas,
                            minValue:-40,
                            maxValue:40,
                            titleString: "Температура",
                            unitString: "Градусы",
                            threshold: 25,
                            lcdVisible: true
                        });
       //RadialTin.setBackgroundColor(steelseries.BackgroundColor.WHITE);
       
        RadialTin.setBackgroundColor(steelseries.BackgroundColor.STAINLESS); // Тут внутренности спидометра
        
        
         RadialTin.setFrameDesign(steelseries.FrameDesign.GLOSSY_METAL); // Раскрашиваем обод спидометра

        //upd
       // live_upd("/pChart/?op=value&p=ws.tempInside", RadialTin);
        
            live_upd("/pChart/?op=value&p=ow_fact.temperature", RadialTin);
           
        // Start the update
        //читаем данные каждые 7 с
        setInterval(function(){ live_upd("/pChart/?op=value&p=ow_fact.temperature", RadialTin); },7000);
        
        //setInterval(function(){ live_upd("/pChart/?op=value&p=ws.tempInside", RadialTin); },7000);
}

    function live_upd(url,gauge) {
             $.ajax({
             url: url,
             }).done(function(data) { 
              if (data!='') {gauge.setValueAnimated(parseFloat(data));}
             });
     }


</script>

<script src="../SteelSeries/jquery.js"></script>  // скачиваем и прикручиваем библиотеку
 
<script src="../SteelSeries/tween-min.js"></script>
<script src="../SteelSeries/steelseries-min.js"></script>
</body>
Громадное спасибо Xor и Adzam за терпение и науку!!
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить