О каких данных идет речь
Начнем с терминов: что в данном случае мы имеем в виду под «данными»?
Данные – это сообщения, которые сохраняет и передает устройство, установленное на объекте. Такие сообщения включают в себя:
- время;
- информацию от GPS-модуля: координаты, скорость, высоту, количество спутников;
- параметры от внешних и внутренних датчиков: уровень топлива от ДУТ, количество оборотов колеса от одометра и так далее.
Wialon принимает эти данные, в случае необходимости вносит в них изменения и обрабатывает.
Расскажем подробно о каждом этапе работы с данными.
Время в Wialon
Для Wialon время – это исключительно важная информация, так как именно по времени происходит сортировка сообщений.
Как это работает: трекер формирует сообщение, используя формат Unix-времени (количество секунд, прошедших с полуночи 1 января 1970 года) и отправляет на сервер Wialon.
Как время влияет на данные
- Wialon обрезает время до секунды, а миллисекунды не указывает. При этом популярные трекеры вроде Teltonika, Ruptela, Galileosky могут генерировать более одного сообщения в секунду. При большом потоке сообщений это может привести к путанице, поскольку у Wialon нет другого критерия сортировки сообщений, кроме времени.
Команда разработчиков Wialon рассматривает возможность увеличения размера поля для времени на три символа. Но реализация и тестирование этой доработки – дело небыстрое, так как обработка данных по секундам и миллисекундам должна быть максимально надежной.
- Время сохранения сообщения трекером меньше либо равно времени его отправки трекером из своей памяти, и все это меньше либо равно времени прихода на сервер.
Выглядит это так:
Правило Wialon для времени сохранения сообщения
На практике пользователь может столкнуться с ситуацией, которую мы называем «сообщение из будущего»: сервер получает сообщение с меткой времени, которое по его часам еще не наступило. Из-за чего это происходит:
- Конфигурация устройства. Если в трекере не установлен часовой пояс UTC+0, то трекер может отправить сообщение на сервер с неправильной меткой времени. В итоге Wialon может получить сообщение с временной меткой «из будущего» и будет вынужден изменить ее. Решение простое – настроить время трекера по UTC+0.
- Синхронизация времени. Ситуация характерна для Wialon Local: когда не настроена синхронизация, возможны отклонения по времени у сервера на секунды и даже минуты. Это приводит к нарушению упомянутого выше неравенства. Чтобы этого избежать, администратор сервера должен настроить периодическую синхронизацию времени по NTP (протоколу сетевого времени).
Параметры датчиков
Параметры – это значения в сообщениях, которые описывают состояние отслеживаемого объекта и установленного на него оборудования.
Что осложняет работу с параметрами
- Нечитабельность данных. Информация, которую Wialon получает, не всегда понятна пользователю.
Когда пользователь видит значение temperature13, он понимает: речь идет о температуре. Но температуре чего: двигателя, топлива или воздуха? В градусах по Цельсию или Фаренгейту?
И таких вопросов может быть очень много по любому параметру. Каждый производитель трекеров имеет свое представление о том, как нужно записывать значения.
Wialon со своей стороны унифицирует общие для всех трекеров параметры. Например, параметр speed – это всегда скорость, lat, lon – координаты и так далее.
- Отсутствие единого стандарта отображения данных. Wialon работает с 2 300 моделями оборудования, и их число растет. Подобная гибкость имеет свои минусы: невозможно автоматически стандартизировать значения параметров при таком количестве оборудования и случаев его использования.
Чтобы расшифровать сообщения от трекеров, вы можете зайти в специальный раздел «GPS/ГЛОНАСС оборудование» на вкладке «Оборудование».
- В строке «Поиск оборудования» введите интересующую модель.
- Далее выберите вкладку «Параметры».
- Вы получите список параметров, их описание и единицы измерения (если это актуально).
Фильтрация данных
Wialon удаляет те данные, которые попадают в категорию неточных согласно настройкам валидности. Все настройки осуществляет пользователь, без них Wialon ничего не удаляет.
Коротко напомним, как работает фильтрация валидности:
- Зайдите на вкладку «Дополнительно» у объекта.
- Включите раздел «Фильтрация валидности сообщений».
- Выберите условия фильтрации. Например, по скорости (наиболее распространенный критерий для фильтрации) или минимальному количеству спутников.
- Для трекеров, которые сами могут определить, считается ли сообщение невалидным, воспользуйтесь опцией «Пропускать невалидные сообщения».
Фильтрация валидности сообщений
Датчики
Несмотря на то, что датчики тоже работают с параметрами, они сильно упрощают их отображение для пользователя:
- Датчики определяют логику обработки параметра. Каждый из типов датчиков имеет связанные с ним алгоритмы в Wialon. Например, в отчетах для температуры и веса есть отдельные колонки, которые Wialon заполняет, опираясь на тип датчика.
- Датчики улучшают доступный функционал. Частый пример от наших партнеров – подключение относительного одометра или датчика пробега, чтобы конечный пользователь получил более точные данные по пробегу и поездкам, чем на основе GPS.
- Датчики дают доступ к новому функционалу. Примеров множество: ДУТопределяет сливы, датчик зажигания считает моточасы, а датчик пассажиров назначает пассажиров. Без создания этих датчиков подобный функционал не доступен.
Как датчики обрабатывают данные
- Выражение данных через математические формулы. В строке, где указан параметр, пользователь может задать формулу. Например, это может быть простая формула, переводящая метры в километры с помощью коэффициента. Более сложные варианты также доступны: если пользователь хочет увидеть ускорение, он вводит формулу, по которой Wialon делит разность скорости между двумя сообщениями на разность времени между ними.
- Таблица расчета. Она позволяет отобразить упрощённые зависимости, используя лишь некоторые из точек, которые интегратор определяет на практике.
Например, тарировка бака при использовании датчика уровня топлива помогает определить соответствие уровня топлива в баке объему этого топлива.
Также с помощью таблицы расчета можно сопоставить значение датчика с диапазоном исходного параметра.
Например, если напряжение больше 23, то датчик зажигания включен, то есть равен 1, а если меньше, то датчик выключен и выдает 0.
- Валидация. С помощью валидации можно связать значения нескольких датчиков между собой. Для этого используются не только математические, но и логические операции. Например, проверка на неравенство нулю.
3 основных вида обработки данных
Разобравшись с тем, что такое данные в Wialon и где есть «узкие» места с их предобработкой, переходим к финальной обработке этих данных.
Есть три ключевых метода обработки данных в Wialon, с которыми чаще всего встречаются пользователи. Два из них – онлайн и аналитика – хорошо известны. Третий – события – появился относительно недавно.
Сразу стоит отметить, что в качестве исходные данных эти методы берут одни и те же сообщения.
Онлайн
Алгоритм работы метода обработки данных онлайн – самый простой и прозрачный: он обрабатывает каждое новое сообщение в режиме реального времени.
- Вкладка «Мониторинг». На ней рядом со списком объектов есть множество колонок с разными индикаторами. Пользователь также может кликнуть на иконку объекта и получить расширенные данные, например, значения ДУТ. Данные датчиков уровня топлива изменились – Wialon обновил информацию.
- «Дашборд». Информация, например, геозона с объектами или состояние движения, представлены в виде диаграмм с онлайн-данными.
- Уведомления. Они также относятся к методу обработки данных онлайн. С их помощью можно рассчитывать длительность состояния объекта.
Аналитика: сообщения, треки и отчеты
В некотором смысле аналитику можно противопоставить онлайну: онлайн обрабатывает каждое приходящее сообщение здесь и сейчас, а аналитика работает с законченным периодом.
Например, если пользователь построил отчет за последний час, а потом трекер прислал какие-то данные из «черного ящика» за этот час после формирования отчета, то отчет их не будет видеть до тех пор, пока пользователь не сформирует его еще раз.
Инструменты аналитики
- Вкладка «Сообщения»: здесь не только отображаются полученные данные, но также рассчитываются пробег и длительность поездки.
- Вкладка «Треки» учитывает детектор поездок и отображает заправки и прочие маркеры.
- Отчеты: представляют собой гибкий инструмент для отображения широкого спектра информации.
Как работает аналитика
Wialon выгружает набор данных за указанный период, а затем работает с ними по заранее известной логике. При этом логика для каждого инструмента аналитики будет разной.
Например, таблица «Поездки» ориентируется на детектор поездок, таблица «Заправки» – на свойства из датчика уровня топлива, а таблица «Хронология» может отобразить поездки и заправки одновременно.
События
К онлайну и аналитике мы добавили события, в каком-то смысле объединив ключевые плюсы двух других методов.
От онлайна взяли оперативность: события учитывают все новые сообщения, обрабатывая их в фоне.
От аналитики – работу с объемом сообщений: события учитывают ранее накопленные сообщения и обрабатывают их еще раз при необходимости. В отличие от онлайна, событие отображает информацию при временном отсутствии данных. Это значит, что если в последнем сообщении нет информации по какому-то параметру, то событие возьмет эту информации из последнего известного сообщения. Онлайн не смотрит так далеко и просто ставит прочерк.
Что получаем в итоге: в тот момент, когда пользователь запросит информацию, данные уже обработаны и могут быть сразу же отображены.
На данный момент такой алгоритм применяется для показаний 6 видов:
- поездки;
- датчики;
- зажигание;
- превышение скорости;
- счетчики;
- топливо.
Где используются события
- Мобильное приложение Wialon. События наиболее популярны на смартфонах, так как обеспечивают быстрый доступ к наиболее актуальным данным в любой момент времени.
- Уведомления о сливах и заправках. Эти уведомления стали возможны именно благодаря событиям.
- «Дашборд». Здесь события используются для отображения части карточек: состояние подключения (подключены/не подключены), состояние движения (стоят/движутся, т.д.).
- Таблица по превышениям скорости в отчетах. Хотя отчеты относятся к инструментам аналитики, эта таблица работает именно на событиях.
- Всплывающие подсказки и расширенная информация. При соответствующих настройках события помогают отобразить последние известные данные по датчикам. Таким образом Wialon может работать с трекерами, которые отчитываются о состоянии только в момент изменения, вместо того, чтобы постоянно отправлять однообразные сообщения.
Например, во время движения транспортного средства трекер может отправлять сообщение «двигатель работает» снова и снова. Но гораздо экономичнее прислать сообщение «двигатель работает» один раз, когда его включили, а затем – сообщение «двигатель не работает», когда состояние изменилось и двигатель выключили. Так события позволяют по одному сообщению «двигатель работает» или «двигатель не работает» судить о том, что было в промежутке.
Расхождения между типами обработки данных
В идеале расхождений между событиями и аналитикой не должно быть. Но в реальности они встречаются. Чаще всего это связано с различием в алгоритмах. Но в этом случае мы видим скорее разную скорость отображения результата, а не разные результаты.
Если говорить о расхождениях значений, это возможно по нескольким причинам.
- Большой объем данных. Алгоритм событий, который обрабатывает данные только в хронологическом порядке, сначала рассортировывает все сообщения, а затем начинает обрабатывать их с того места, где появились новые данные.
В случае серьезной разницы, которая не исчезает через какое-то время, пользователь всегда может обратиться в техподдержку. У таких задач высокий приоритет, и команда быстро и тщательно работает над каждым случаем расхождения.
Как избежать проблемы: настроить выдачу сообщений из трекера в хронологическом порядке: это позволит быстрее обрабатывать данные, так как событиям не придется пересчитывать старые данные несколько раз.
- Изменения настроек. Представим, что весь месяц пользователь отслеживал данные в формате событий в мобильном приложении и каждый день видел одни значения. Затем 31 числа изменил настройки, например, датчиков топлива, и построил отчет за месяц. Данные в отчете могут отличаться от тех, что он видел до этого в событиях. Так происходит потому, что отчет показывает данные с учетом обновленных настроек за весь месяц, а события автоматически пересчитались только за последние 24 часа.