Настройка и работа с графиками в системе
-
Добрый день!
Прошу осветить данный вопрос.
В принципе сделал нужные мне наборы графиков. Включил фиксацию нужных данных, добавил графики, которые входят в свои наборы графиков. Однако есть ньюансы в фиксации данных, либо отображении графиков. Сейчас делаю фиксацию каждые 300 секунд. Некоторые каналы считываю так же каждые 300 секунд, однако почему-то показания на графиках и в вебе различные. Например, в вебе наблюдаю значения больше 10, на графике (после перехода и доп.обновления) наблюдаю меньше 8 (как будто предыдущее измерение) и далее апроксимация. Сценарии срабатывают как надо (судя по значениям в вебе), однако по графику этого не вижу. Позже снова смотрю на график - он достроился по реальным показаниям. Вывод график не строиться в реальном времени.
Вопрос - как сделать построение графика он-лайн. Канал считался - значение отобразилось в вебе, записалось в БД и соответственно отобразилось на графике?
-
Добрый день, извините за задержку с ответом
Сейчас делаю фиксацию каждые 300 секунд. Некоторые каналы считываю так же каждые 300 секунд, однако почему-то
показания на графиках и в вебе различные. Позже снова смотрю на график - он достроился по реальным показаниям.
Это происходит из-за того что интервал сохранения данных и интервал получения данных имеют разные точки отсчета:
данные получены, но в базу будут записаны в худшем случае почти через 5 мин (300 сек), если предыдущее значение было записано
только что.
Вопрос - как сделать построение графика он-лайн. Канал считался - значение отобразилось в вебе, записалось в БД и соответственно отобразилось на графике?
Нужно поставить галку: Cохранять при изменении. Тогда запись в БД будет делаться синхронно с получением данных
при условии изменения. В вашем случае, если данные поступают регулярно и при этом достаточно редко, это лучший вариант.
Сохранять с интервалом используется обычно, если данных очень много. Или наоборот, мало, а точки на графике хочется видеть.
Сейчас реальные данные можно видеть только на часовых графиках. Для остальных графиков используются агрегированные данные. Процедура агрегирования происходит каждые полчаса, применяются алгоритмы сглаживания.
-
Нужно поставить галку: Cохранять при изменении. Тогда запись в БД будет делаться синхронно с получением данных
при условии изменения.
Хорошо, тогда чтобы сохранять каждое считанное значение надо в поле "Дельта изменения до следующего сохранения" записать 0?
Что такое "Допуск при сжатии аналоговых данных?" Это усреднение кривой? Можно поподробнее.
-
Хорошо, тогда чтобы сохранять каждое считанное значение надо в поле "Дельта изменения до следующего сохранения" записать 0?
Да.
Что такое "Допуск при сжатии аналоговых данных?" Это усреднение кривой? Можно поподробнее.
Для аналоговых данных применяется алгоритм Дугласа-Пекера, используем библиотеку simplify.js
"Суть алгоритма состоит в том, чтобы по данной ломаной, аппроксимирующей кривую, построить ломаную с меньшим числом точек. Алгоритм определяет расхождение, которое вычисляется по максимальному расстоянию ε > 0 между исходной и упрощённой кривыми."
Допуск при сжатии - это и есть ε
-
Понятно. Спасибо!
-
Можно как-нибудь отключить все сглаживания/интерполяцию графиков? Чтобы все отображалось один в один - получил в 10:30 значение 167, перешел на график - а там в 10:30 появилось значение 167, а не непонятно какое интерполированное.
-
В дневных и часовых графиках всегда отображаются т.н. сырые данные. Если стоит настройка "Сохранять при изменении" и Дельта=0, то время получения совпадает с временем получения данных.
Если речь идет о выводе последнего значения равным последнему полученному, было сделано по просьбе пользователей . Возможно, сделаем опционально.
На месячных и годовых графиках сейчас данные всегда сглаживаются, чтобы уменьшить объем.
-
Если стоит настройка "Сохранять при изменении" и Дельта=0, то время получения совпадает с временем получения данных.
Стоит дельта=0 и "Сохранять при изменении". Однако на суточном графике как-то аппроксимируются значения. Например, сейчас сработал канал от условия датчик освещенности > 110 (показания реальные - 116). Захожу в график, а там идет какая-то 5-10 минутная прямая линия от предыдущего значения, например 95. И только спустя минут 10-15 вижу, что реально график пошел на верх (светает, однако).
Справедливости ради отмечу, что опрос датчика освещенности - раз в 5 минут.