Fleetrun
Hecterra
NimBus
Другие приложения
Wialon для Android/iOS
Logistics
Wialon Local
Wialon Hosting
Distance Tag
WiaTag
Configurator
Содержание
Не срабатывает команда
  • technical_consulting
  • commands
  • sms

Wialon не только принимает данные от трекеров, но также может отправлять на них команды. В данной статье вы найдете условия для выполнения команд, описание особенностей разных каналов отправки команд, а также возможные проблемы и варианты их решения.

Условия для выполнения команд

Для выполнения команд необходимо учитывать сразу нескольких условий, которые касаются сервиса, учетной записи, пользователя и объекта. Рассмотрим эти условия по порядку.

  1. В учетной записи включена услуга Команды.



  2. Пользователь обладает специальным правом Отправка команд в отношении объекта.



  3. Команда создана на одноименной вкладке Команды в свойствах объекта.


    Для создания команд пользователь должен обладать специальным правом Создание, редактирование и удаление команд в отношении объекта.

  4. Для выполнения команд по каналу SMS существует еще несколько дополнительных условий:
    • В учетной записи включена услуга SMS-сообщения.

    • В сервисе должны быть доступны SMS, то есть счетчик на верхней панели должен быть больше нуля.

      Данный счетчик не отображается, если в сервисе для отправки SMS используется персональный модем.

    • На вкладке Основное в свойствах объекта должен быть указан Телефонный номер в международном формате, на который трекер будет получать SMS.

Особенности каналов отправки команд

Канал (тип связи) для отправки команды выбирается в ее свойствах. В зависимости от выбранного канала при выполнении команды необходимо учитывать состояние соединения объекта с сервером.

Объект поддерживает интернет соединение с сервером, если от него приходят сообщения с данными или keep alive/heart beat пакеты. Для проверки нынешнего статуса соединения можно использовать столбец Состояние соединения на панели Мониторинг.

КаналОсобенности

GPRS (TCP/UDP)

Объект обязательно должен поддерживать интернет соединение с сервером.

Virtual

Данный канал аналогичен по принципу отправки с TCP/UDP, однако виртуальная команда может быть выполнена, даже когда объект не подключен к серверу. В момент выполнения команда становится в очередь, а ее фактическая отправка будет произведена в момент выхода объекта на связь.

Для каждого типа устройства в Wialon предусмотрено ограничение количества виртуальных команд в очереди, а при переполнении очереди новая виртуальная команда вытеснит из очереди самую старую команду (она не будет отправлена).
SMSОбъект может не поддерживать интернет соединение с сервером.
АвтоПри отправке программа сама выберет тот канал, который доступен в данный момент. Если доступно несколько типов, то использован будет тот канал, который находится выше в данной таблице.
Если выбранный для команд канал связи в данный момент доступен, то кнопка выполнения команды напротив объекта в панели Мониторинг станет активной.

Проверка отправки команды со стороны Wialon

Факт выполнения команды фиксируется в Журнале объекта. Также эта информация доступна для просмотра:

  • на вкладке Сообщения при запросе Отправленных команд;
  • на вкладке Сообщения при запросе SMS-сообщений;
  • в отчете с таблицей Отправленные команды.

Запись о выполнении команды в журнале означает, что команда была выполнена со стороны Wialon. Далее она отправляется по TCP/UDP каналу или передается модему/SMPP шлюзу на отправку.

Если команда не была выполнена при нажатии соответствующей кнопки, то следует проверить соблюдение вышеуказанных требований. Ели все требования были соблюдены и объект не терял связь в момент выполнения команды, то вы можете отправить на support@gurtam.com подробное описание проблемы (имя пользователя, объект, имя команды и время выполнения) для анализа специалистами технической поддержки Wialon.

Возможные проблемы и методы их решения

Если по журналу Wialon команда выполнена, но реакции от трекера нет, то с высокой вероятностью проблема связана с работой сторонних систем. Возможно, трекер не получил команду, трекер не выполнил запрограммированные действия по команде или не прислала в Wialon ответ/файл на команду. Наиболее часто встречаемые проблемы такого рода и возможные действия для их исправления приведены ниже.

ПроблемаВозможные причиныВарианты действий
SMS-команда не доставлена на объект

Проблемы с доставкой SMS-сообщений и TCP/UDP команд обычно связаны с проблемами на уровне сетей операторов связи/интернет провайдеров. Следует совместно с провайдером проверять маршрут доставки сообщения, устранять неполадки сети или искать другие маршруты доставки.

Если вы используете пакет 500 SMS, напишите техподдержке Wialon на support@gurtam.com.
Если вы используете собственный SMPP шлюз или модем, обратитесь к вашему SMPP провайдеру или GSM оператору для анализа ситуации.

Команда доставлена, но с некорректным текстом

Обычно такая проблема связана с кодировкой оператора связи и актуальна в основном для SMS-сообщений. В Wialon используется стандартная кодировка A5 (CCITT T.50)/ASCII (ANSI X3.4). Оператор связи получателя может использовать другой протокол и в результате не верно декодировать сообщение.

Пользователь должен связаться с оператором связи получателя для исправления ситуации.

Альтернативой является использование собственного SMPP шлюза с требуемой кодировкой.
Команда доставлена с корректным текстом, но трекер не выполнил/отклонил команду

В SMS задан неверный формат команды. Необходимо перепроверить синтаксис согласно руководству по прибору или обратиться к производителю оборудования.

Если используются стандартные команды Wialon (кроме Произвольное сообщение), убедитесь, что в команде переданы корректные параметры (например, номер входа трекера для активации). Также вы можете обратиться в техподдержку Wialon по адресу support@gurtam.com, предоставив подробное описание проблемы.

SMS команда получена от номера отправителя, который не внесен в список разрешенных.

Внесите разрешенный номер в настройках трекера.

Команда получена с неразрешенного трекеру IP.

Внесите разрешенный IP в настройках трекера. IP в Wialon Hosting зависит от дата-центра сервиса, и его можно видеть во вкладке Основное в свойствах любого объекта.

В настройках объекта не введен Пароль для выполнения команд (или он не совпадает с паролем в трекере).

Перепроверьте пароль для выполнения команд. Для пароля рекомендуется использовать латиницу, т.к. другие языки могут декодироваться трекером некорректно.

Трекер не исправен.

Аппаратный или программный сбой на уровне трекера следует проанализировать с инженером, обслуживающим данный трекер.

Команда доставлена, выполнена трекером, но не получен ответ в системе Wialon

Для некоторых типов устройств существует дополнительная настройка протокола оборудования, где следует активировать соответствующий флаг или ввести настройки для приема и отображения сообщений от трекера.

Найдите и активируйте соответствующую опцию при конфигурации устройства на вкладке Основное. Кнопка конфигурации находится справа от поля ввода типа устройства и является активной, если возможность конфигурации предусмотрена самим устройством.

Команда поступила c виртуального номера, который не может выступать в качестве получателя SMS.

В Wialon Hosting используется виртуальный номер 79037676122. Вы можете обратиться в техподдержку Wialon по адресу support@gurtam.com и уточнить возможность переключения вашего сервиса на другой доступный телефонный номер отправителя, чтобы получать SMS ответы трекеров на этот номе.
Если из-за особенностей маршрутов доставки SMS в определенную страну вы не можете задать другой номер отправителя для отправки SMS, то наиболее удобным решением будет подключить для своего сервиса Hosting собственный SMPP шлюз с возможностью приема SMS от трекеров. По вопросу подключения своего SMPP шлюза к сервису Hosting обратитесь к вашему менеджеру (или к техподдержке Wialon за техническими консультациями).


Сергей Новиков,Инженер отдела технического консалтинга

Датчики: объяснение таблицы расчета
  • technical_consulting
  • calculation_table

Одним из первых и главных этапов работы с Wialon является настройка датчиков в объекте. Если правильно настроить датчики, то некоторые стандартные алгоритмы будут давать более точные результаты, и вы сможете использовать недоступный ранее функционал. В данной статье будет детально рассмотрена таблица расчета, инструмент с одноименной вкладки, так как при настройке датчиков чаще всего именно он вызывает трудности.

В статье содержится информация разной сложности. Основная часть будет полезна для понимания логики работы таблицы расчета. Однако желающие смогут найти здесь и более детальные математические формулировки, которые будут выделены в специальные блоки «Математическая минутка». Для общего понимания статьи читать эти блоки необязательно.

Общий принцип работы датчиков

Wialon поддерживает множество типов трекеров (актуальное количество можно найти на сайте gurtam.com в разделе Оборудование), и каждый из них «говорит» на своем «языке». Поэтому приходящие от разных типов трекеров параметры, которые отображаются на вкладке Сообщения, могут содержат одну и ту же информацию (например о температуре или пробеге), но при этом иметь разные имена. Чтобы пользователь не замечал различий при использовании объектов с разными типами трекеров, для каждого объекта в Wialon необходимо создать датчики. Также датчики имеют определенный тип, что позволяет системе понимать, какой алгоритм необходимо использовать для обработки приходящих значений.

Однако зачастую просто выбрать тип датчика и указать в нем параметр оказывается недостаточно, потому что значение параметра приходит в неочевидном для пользователя виде. Например, temp=125 может означать 125°F, 125°C, 12.5°C или вообще −3°C. Для преобразования приходящего параметра в нужный вид имеется 3 метода:

  1. Выражение в строке Параметр;
  2. Таблица расчета;
  3. Валидация.

Их можно использовать по отдельности или комбинировать. Если использовать несколько методов одновременно, то они будут применяться именно в том порядке, в котором они перечислены выше.

Схематично использование датчиков можно представить следующим образом:

  • Подключенный к трекеру датчик измеряет некоторую физическую величину, которую мы обозначим S.
  • Датчик преобразует эту величину и передает трекеру. От трекера в Wialon приходит параметр X.
  • На основе параметра в Wialon создается датчик. Чтобы получить понятное для пользователя значение Y, в датчике к параметру применяются преобразования f(X).
  • В идеале после преобразований в датчике значение Y=f(X) должно равняться величине S, которая измерялась на первом этапе. Далее Y будет использоваться во всплывающих подсказках, отчетах, уведомлениях и другом функционале Wialon.

Так как в этой статье рассматривается только настройка таблицы расчета в Wialon, то из приведенной выше схемы мы будем обращать внимание лишь на следующие элементы:

Когда используется таблица расчета

Как правило, таблица расчета используется в тех случаях, когда необходимо преобразовать входной параметр. Однако для этого служат все 3 упомянутых выше метода. В каком же случае стоит прибегать именно к таблице расчета?

С точки зрения практического применения можно сказать, что таблица расчета используется

  • для тарировочной таблицы (например для датчиков веса или уровня топлива);
  • для цифровых датчиков на основе аналоговых входных данных (например для датчиков зажигания на основе напряжения);
  • для датчиков на основе кодов, которые описывают разные события, но приходят в одном параметре (например device_status=4 означает включение зажигания, а device_status=13 — нажатие тревожной кнопки и т.д.);
  • для датчиков, которые должны отображать положительные и отрицательные значения, хотя связанный с ними параметр имеет только положительные значения (например для датчиков температуры);
  • для любых датчиков, в которых необходимо разделить диапазон корректных и ошибочных значений (например если датчик присылает особые значения в параметре, которые сигнализируют об ошибках).
 Математическая минутка

Другими словами, таблицу расчета стоит использовать, если

  • формула Y=f(X) неизвестна, но на практике были установлены соответствия между некоторыми X и Y;
  • формула Y=f(X) является слишком сложной (например содержит функции sin, cos, log и т.д., которые не поддерживаются в Wialon);
  • формула Y=f(X) имеет разный вид на разных интервалах и не может быть описана одной функцией;
  • необходимо разделить диапазон корректных и ошибочных значений.

Настройка таблицы расчета

Таблица расчета подразумевает работу с самыми простыми линейными функциями. То есть таблица расчета преобразовывает данные в соответствии со следующей формулой: Y=a⋅X+b — это один из вариантов уравнения прямой.

Если разобраться в том, как работает каждая составляющая этого инструмента, то с его помощью можно собирать достаточно полезные и необычные решения. Поэтому далее мы рассмотрим каждую область вкладки Таблица расчета в отдельности, визуализируя ее влияние на результат с помощью графика.

Чтобы увидеть график, который соответствует заполненной таблице расчета, нужно нажать на иконку  в верхней части вкладки.

Пары XY

В правой части расположен блок Пары XY. Его заполнения недостаточно для работы таблицы расчета, однако он может упростить ее настройку.

Мы рекомендуем использовать пары XY только для датчиков уровня топлива, чтобы вносить тарировочную таблицу. В иных случаях стоит самостоятельно рассчитывать и вносить значения X, a и b.

Добавлять пары можно как вручную, так и с помощью импорта CSV или TXT файлов (экспорт доступен только в CSV). После заполнения всех строк этого блока необходимо нажать на клавишу Генерировать (подразумевается «Генерировать таблицу расчета на основе пар XY»), что приведет к расчету значений X, a и b в левой части окна.

Каждая из добавленных пар XY соответствует точке на графике. Как вы можете знать, прямую можно провести через 2 точки. Следовательно, если внести 5 пар XY, то на графике получится 4 прямые.

Пары с одинаковым значением X вводить запрещено. Это технически невозможно, так как одному значению X не может соответствовать два или более значения Y. При этом вводить одинаковые значения Y можно.

X — входное значение

Центральный блок вкладки Таблица расчета содержит в себе строки со значениями X, a и b. Каждая из строк соответствует прямой на графике. Значение X в каждой строке означает начало новой прямой, то есть задает интервал, где будут использоваться новые значения a и b.

Последняя строка влияет на все дальнейшие значения до +∞, а первая строка влияет на значения даже до первого указанного X, то есть начиная с ∞. Поэтому писать несколько строк подряд с одинаковыми значениями a и b не имеет смысла.

В качестве примера рассмотрим таблицу со следующими значениями:

Иначе это условие можно записать так:

  • От ∞ до 3 (не включая) применяется уравнение Y=1⋅X-2.
  • От 3 (включая) до 5.5 (не включая) применяется уравнение Y=0⋅X+3.
  • От 5.5 (включая) до +∞ применяется уравнение Y=-0.5⋅X+2.

Пример графика, получаемого при заполнении таблицы расчета

a — коэффициент наклона прямой

При a=0 наклон будет 0°, то есть прямая будет параллельна оси X.
При a=1 наклон будет 45°, то есть чем больше будет коэффициент, тем ближе будет прямая к оси Y.
При a=-1 наклон будет 45°, то есть отрицательные значения этого коэффициента наклоняют прямую вниз, а положительные — вверх.

Пример графика прямой Y=a⋅X с разным коэффициентом наклона

Определить коэффициент наклона прямой бывает довольно просто: его значение равно отношению изменения Y к изменению X.

В качестве примера можно рассмотреть зеленую прямую на графике выше. По ней видно, что Y увеличивается с 0 до 1, когда X растет с 0 до 3, а значит для этой прямой коэффициент a=(1-0)/(3-0)=1/3=0.33.

b — смещение прямой по оси Y

При b=0 смещение отсутствует.
При b>0 смещение прямой происходит вверх относительно оси X.
При b<0 смещение происходит вниз.

Пример линий с разным смещением

При использовании пар XY значение b автоматически вычисляется таким образом, чтобы следующий отрезок прямой плавно продолжал предыдущий.

Вычислить значение b не получится так же просто, как коэффициент наклона, так как в большинстве случаев у него нет понятной аналогии вне математики кроме смещения прямой вверх или вниз.

Единственным исключением является случай, когда с помощью таблицы расчета настраивается цифровой датчик. В таком случае a=0, и формула принимает вид Y=b. Следовательно, значение b будет равно тому, что вы ожидаете увидеть в качестве Y.

Нижняя и верхняя границы

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

Рассмотрим пример с датчиком уровня топлива. Предположим, что значения параметра от 3 до 250 соответствуют объему топлива от 0 литров до 100 литров. А значения параметра 0 или 255 означают ошибки, которые мы хотим исключить, чтобы они не интерпретировалось как реальный объем (так как в рассматриваемом баке не может быть меньше 0 или больше 100 литров топлива). Для этого примера можно предложить решение с выключенной опцией Применять после расчета:

Также существует решение с включенной опцией Применять после расчета:

Так как нижняя граница входит в разрешенный диапазон, то мы можем указать значения из условия (3 или 0). Но верхняя граница в разрешенный диапазон не входит, поэтому в этом поле нужно указывать значение чуть больше, чем в условии (250.1 или 100.1).

Из примера можно понять, что опция Применять после расчета влияет на то, к каким значениям применяются границы: если она выключена, то отсеиваются значения по оси X (входные значения до применения таблицы расчета), а если она включена, то отсеиваются значения по оси Y (значения датчика после применения таблицы расчета).

Для визуализации работы границ рассмотрим еще один пример, в котором к одной и той же прямой применены одни и те же границы, а различие заключается только в опции Применять после расчета, которая значительно влияет на результат.

Нижняя граница равна 2, верхняя граница равна 3, опция «Применять после расчета» отключена

Нижняя граница равна 2, верхняя граница равна 3, опция «Применять после расчета» включена


Принцип работы таблицы расчета

Иногда, чтобы понять суть явления, следует пойти от обратного. Если нам известна точная формула Y=f(X), которая связывает входное и выходное значения на всем диапазоне, то прибегать к таблице расчета нет необходимости достаточно просто использовать выражение в строке Параметр. Давайте рассмотрим такой случай.

Для примера предположим, что входное значение связано с выходным следующей формулой: Y=0.5⋅X2.
В качестве параметра возьмем adc3. Чтобы описать такую формулу в Wialon, в строку Параметр нужно вставить следующее выражение: const0.5*adc3^const2

График функции Y=0.5⋅X2

Но что делать, если мы не знаем точную формулу Y=f(X)? Именно в таком случае нам поможет таблица расчета.

Предположим, что в определенных условиях мы знаем значения измеряемой величины (это будет Y) и можем проверить, какое значение будет принимать параметр в Wialon в этих точках (это будет X). Таким образом можно получить значения, например, в 4 точках: (0; 0), (1; 0.5), (2; 2), (3; 4.5). Далее нанесем эти точки (X, Y) на график и соединим их отрезками красного цвета.

Воспроизведение части функции Y=0.5⋅X2 отрезками, построенными по 4 точкам

Несложно заметить, что результат близок к тому, который получается по формуле, но все же отличия имеются. В некоторых случаях такой точности будет достаточно, а если ее не хватает, то можно измерить значения в большем количестве точек. На графике ниже приведен пример уже для 6 точек: (0; 0), (0.5; 0.125), (1; 0.5), (1.5; 1.125), (2; 2), (3; 4.5).

Воспроизведение части функции Y=0.5⋅X2 отрезками, построенными по 6 точкам

Из рассмотренного примера можно сделать следующий вывод: связь между X и Y можно описать не только формулой, но и с помощью нескольких прямых линий, пусть иногда и упрощенно. В этом и заключается суть использования таблицы расчета.

 Математическая минутка

Таблица расчета использует точечную аппроксимацию и линейную интерполяцию.

Точечная аппроксимация — это нахождение функции, которая близка к исходной, на основе набора заранее известных значений. В Wialon она используется для приблизительного воспроизведения функции на основании пар XY.

Линейная интерполяция — это расчет значений на участках между изначально известными точками по прямым, которые проходят через эти точки. В Wialon она используется, для вычисления значений в точках, которые находятся между введенными ранее парами XY, по приблизительно воспроизведенной функции.

Обоснование и примеры использования

В данном разделе рассмотрим несколько случаев, при работе с которыми не обойтись без таблицы расчета.

Форма кривой, которая описывает связь между X и Y, может быть довольно сложной.

Например, при использовании датчика уровня топлива требуется произвести тарировку бака, а форма графика, построенного по тарировочной таблице, будет зависеть от геометрии бака, которая никогда не является идеальной (может иметь закругления, вмятины, внутренние ребра жесткости и так далее).

График, построенный по тарировочной таблице с малым шагом между замерами

Описать подобную зависимость одной формулой довольно проблематично. Более простой способ описать кривую для системы — это разбить ее на интервалы, где она ведет себя примерно как прямая линия, и определить формулы этих линий. Напомню, что получить подобный результат можно с помощью пар XY.

Воспроизведение формы сложной кривой отрезками, проходящими через 11 точек

Также иногда зависимость между X и Y может быть различной на нескольких интервалах. Для ее описания требуется использовать систему из нескольких выражений, что нельзя сделать в строке Параметр в свойствах датчика.

Например, некоторые датчики температуры работают следующим образом: значения X в диапазоне от 0 до 127 соответствуют положительной температуре, а в дипазоне от 128 до 255 — отрицательной. Никаким другим методом, кроме таблицы расчета, подобный случай корректно не обработать. Для этого потребуются две строки:

X=0; a=1; b=0
X=128; a=1; b=-256

График температуры, на котором более высокие значения параметра
соответствуют отрицательной температуре

Цифровые датчики являются еще одним ярким примером ситуации, когда зависимость между X и Y является различной на нескольких интервалах. Например, датчик зажигания можно создать на основе параметра напряжения, и для этого нужно учесть два условия: Y=0 при X<14, Y=1 при X≥14. Но, как мы уже знаем, сделать это с помощью выражения в свойствах датчика не получится. А на вкладке Таблица расчета для этого потребуется всего две строки:

X=0; a=0; b=0
X=14; a=0; b=1

В цифровых датчиках коэффициент наклона всегда равен 0.

График состояния зажигания в зависимости от напряжения

 Математическая минутка

В статье уже несколько раз упоминалось, что для датчика в идеале нужна формула связи X и Y, а таблицу расчета мы используем из-за отсутствия других вариантов. На самом деле, такую формулу можно попробовать рассчитать, однако для этого нужно иметь представление о численных методах анализа и соответствующее ПО. При этом результат скорее всего будет сложен для понимания и будет плохо поддаваться корректировке в будущем. Чтобы это продемонстрировать, мы рассчитали интерполяционный полином для следующих 7 точек: (0; 5), (400; 8), (1000; 22), (1850; 78), (2800; 160), (3600; 195), (4096; 200).

Результат полиномиальной интерполяции в данном случае имеет следующий вид:

Y=1.78962834270398⋅10-19⋅X6-7.99064624017665⋅10-16⋅X5-4.83816855045549⋅10-12⋅X4+
+2.62803612257704⋅10
-8⋅X3-1.24091655860425⋅10-5⋅X2+8.58707470047479⋅10-3⋅X+5

Эту формулу можно ввести в строку Параметр в свойствах датчика (с учетом синтаксиса Wialon), и она действительно будет рабочей. График такой функции в диапазоне от 0 до 4096 имеет следующий вид:

Однако если описываемая зависимость будет иметь более сложный вид, чем изображено на графике выше, то придется взять больше точек или даже использовать другой метод интерполяции, что может привести к тому, что результат станет еще более сложным для восприятия. Поэтому линейная интерполяция, которая используется в таблице расчета в Wialon, на этом фоне выглядит очень выигрышно, так как она достаточно точная и простая.

Олег Жарковский,Тренер по Wialon

Как выбрать параметр датчика
  • technical_consulting
  • sensor_parameters
  • sensor_types

Если вы знаете тип устройства, его конфигурацию и то, как оно было установлено, то вы можете знать, какой параметр выбрать для датчика в Wialon. Но если вы начали работать с Wialon недавно и у вас есть сомнения, то эта статья может помочь вам подобрать параметр, исходя из того, как это обычно делают другие пользователи.

Общие рекомендации

  1. Список параметров и их описание можно найти на странице конкретного устройства на сайте gurtam.com в разделе Оборудование. Для этого введите в строку Поиск оборудования нужную модель устройства. Также можно выбрать одну из категорий типов оборудования и найти нужную модель в списке. После на странице оборудования перейдите на вкладку Параметры (пример такой страницы для WiaTag).

    Если на странице оборудования отсутствует описание параметров, обратитесь к специалистам по оборудованию через почту hw@gurtam.com.
  2. В большинстве случаев понять содержание параметра можно по его английскому наименованию. Например, в параметре fuel_lvl наиболее вероятно будет отображаться значение уровня топлива, в параметре total_mileage — значения датчика пробега, и т.д. Наименования параметров, полученных из CAN-шины, обычно начинаются с префикса can

  3. Параметры, которые передает устройство, могут быть описаны в документации к оборудованию. Документация, как правило, представлена на сайте производителя.

  4. Существует список виртуальных параметров, которые определены в системе по умолчанию и подходят практически для любого типа оборудования:
    • speed — скорость движения;
    • altitude — высота над уровнем моря;
    • sats — количество спутников;
    • course — курс (направление движения);
    • lat — географическая широта;
    • lon — географическая долгота;
    • time — UNIX-время сообщения;
    • regtime — время регистрации сообщения на сервере.

Метод поиска и проверки выбранного параметра зависит от типа датчика, в котором он используется. Ниже мы рассмотрим несколько примеров для наиболее часто используемых типов датчиков.

Датчик зажигания

Датчик зажигания — это цифровой датчик, который показывает, запущен двигатель или нет. Когда значение цифрового датчика принимает нулевое значение, он считается выключенным, а когда значение принимает ненулевое значение, датчик считается включенным.

Датчик зажигания не отображает положение ключа зажигания «ACC», при котором двигатель не заведен, но дополнительное оборудование уже доступно для использования.

В качестве параметра для Датчик зажигания может подойти один из цифровых входов (в конце сообщений параметр формата I/O). Он описывает состояние всех цифровых входов и выходов одновременно, и по нему можно определить состояние конкретного цифрового входа inN (логика выбора номера входа N описана в другой статье).

Также можно попробовать создать датчик зажигания на основе параметра, отображающего внешнее напряжение (обычно он называется pwr_ext). В таком случае в свойствах датчика необходимо создать Таблицу расчета. В руководстве пользователя приведен пример такой таблицы. При использовании данного примера нужно лишь изменить пороговое значение напряжения, при достижении которого зажигание будет считаться включенным.

Практический метод выбора и проверки параметра

  1. Выключите двигатель и дождитесь получения нескольких сообщений от трекера.
  2. Включите двигатель и дождитесь поступления еще нескольких сообщений.
  3. Сравните сообщения, полученные в пункте 1 и 2. Если скачкообразно изменился только один параметр, то наиболее вероятно, что он и будет показывать состояние зажигания. Если изменилось несколько параметров, то выбрать нужный можно с помощью дополнительной проверки, описанной в следующем пункте.
  4. Изучите сообщения с ненулевой скоростью. Предполагается, что зажигание включено при наличии скорости, а также в нескольких сообщениях до и после наличия скорости. При этом рекомендуется рассматривать интервалы длительностью хотя бы от пяти минут, так как некоторые трекеры могут менять режим отправки сообщений после начала и завершения движения.
 Пример

От объекта поступили сообщения со следующими параметрами:


Скоростьparam1param2param3
15526.00301000
25626.00401020
35726.00511015
4026.00611004
5026.0071476
6026.0080489
71026.00901001
81126.01011004

Предположим, что зажигание у объекта было выключено в 5-м и 6-м сообщении (выделены красным цветом). В остальных сообщениях зажигание включено (выделены зеленым цветом).

param1  значение постоянно увеличивалось на всех интервалах, скачкообразные изменения отсутствуют, связи с наличием или отсутствием скорости нет. Следовательно, данный параметр не может быть использован для датчика зажигания.

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

param3  на интервалах, когда зажигание предполагается включенным, параметр принимает значение более 1000, а на интервалах, когда зажигание выключено, значение скачкообразо падает до уровня менее 500. Следовательно, можно попробовать использовать данный параметр в датчике зажигания, применив таблицу расчета.

Датчики для учета пробега

На данный момент в Wialon существует два датчика для учета пробега:

  • Датчик пробега отображает весь пробег объекта с момента установки датчика.
  • Относительный одометр отображает пробег между рассматриваемым и предыдущим сообщениями.

Если устройство присылает параметры сразу для обоих упомянутых типов датчиков, то показания одометра необязательно должны полностью совпадать с разницей, которая получается при вычитании показаний датчика пробега в двух соседних сообщениях. Это связано с тем, что алгоритм расчета у датчиков может различаться со стороны самого устройства. Для демонстрации пользователю рекомендуется выбирать тот датчик, который показывает более достоверные результаты.

Оба датчика для учета пробега используют в качестве единиц измерения километры (или мили). Если приходящий параметр имеет другие единицы измерения, то необходимо применить коэффициент для перевода в километры (или мили). Например, если параметр can_odo отображает значение в метрах, то в строку Параметр в свойствах датчика необходимо будет записать следующую формулу для перехода к километрам: can_odo/const1000

Практический метод выбора и проверки параметра

Чтобы проверить, правильно ли выбран параметр для Датчика пробега или Относительного одометра, можно использовать инструмент Расстояние. Значения параметров и измеренное между двумя сообщениями расстояние чаще всего не совпадает полностью, но являются соизмеримыми. Это связано с тем, что инструмент Расстояние математически рассчитывает расстояние между двумя точками с выбранными координатами, а датчики, как правило, считают пройденные километры, исходя из количества вращений колеса и его диаметра.

Параметр можно использовать в Датчике пробега, если

  • его значение не изменяется, когда объект стоит;
  • его значение увеличивается при движении объекта;
  • разница его значений в двух соседних сообщениях соизмерима со значением, полученным при использовании инструмента Расстояние.

Параметр можно использовать в Относительном одометре, если

  • он равен нулю, когда объект стоит;
  • он имеет положительное значение, когда объект движется;
  • он имеет приблизительно равные значения, когда объект движется с одинаковой скоростью;
  • его значение соизмеримо со значением, полученным при использовании инструмента Расстояние.
 Пример

От объекта поступили сообщения со следующими параметрами:

Создайте Датчик пробега на основе параметра mileage, так как он постоянно растет в движении и не падает до нуля во время остановки.

Создайте Относительный одометр на основе параметра odo, так как он имеет разные значения в движении и падает до нуля во время остановки. Однако его значение кажется слишком большим, поэтому попробуйте применить формулу odo/const1000.

Измерьте пробег объекта между несколькими парами сообщений при помощи инструмента Расстояние, расположив измеряемые отрезки поверх трека.

Сравните полученные значения:

Датчик пробегаРазница с предыдущим по датчику пробегаОтносительный одометрИнструмент Расстояние
16801.54 км1.00 км
26802.52 км6802.52 - 6801.54 = 0.98 км1.00 км1.000 км
36803.51 км6803.51 - 6802.52 = 0.99 км1.00 км1.020 км
46804.00 км6804.00 - 6803.51 = 0.49 км0.50 км0.500 км
56804.20 км6804.20 - 6804.00 = 0.20 км0.50 км0.160 км
66804.20 км6804.20 - 6804.20 = 0.00 км0.00 км-

Значения приблизительно равны, а потому можно предположить, что параметры для обоих датчиков выбраны верно.
Обратите внимание, что у разных датчиков может быть разная точность. В таком случае в Счетчике пробега и Детекторе поездок рекомендуется использовать тот датчик, который присылает показания, наиболее близкие к предполагаемым.

Топливные датчики

На данный момент в Wialon существует несколько типов топливных датчиков:

  • Датчик абсолютного расхода топлива (ДАРТ) показывает расход топлива за весь период эксплуатации объекта. Следовательно, для получения данных о расходе за конкретный период используется следующий алгоритм: вычисляется разница показаний датчика в конце и в начале рассматриваемого интервала.
  • Датчик мгновенного расхода топлива (ДМРТ) показывает количество израсходованного топлива с момента предыдущего измерения (сообщения). Следовательно, для получения данных о расходе за конкретный период используется следующий алгоритм: вычисляется сумма показаний датчика во всех сообщениях на рассматриваемом интервале.
  • Импульсный датчик расхода топлива (ДИРТ) — принцип работы этого датчика аналогичен ДМРТ.
  • Датчик уровня топлива (ДУТ) предназначен для расчета количества топлива в баке. По нему можно считать расход, а также контролировать сливы и заправки.
  • Импульсный датчик уровня топлива (ИДУТ), как и предыдущий датчик, предназначен для расчета количества топлива в баке. По нему можно считать расход, а также контролировать сливы и заправки. Отличие от ДУТ заключается в том, что при расчете используются данные из предыдущего сообщения, и разница значений импульсов двух соседних сообщений делится на разницу времени между ними. Данный тип датчика почти не применяется на практике — вместо него большинство пользователей предпочитают обычный ДУТ.

Если устройство присылает параметры сразу для нескольких упомянутых типов датчиков, то их показания, а также результаты вычисления по ним могут различаться. Это связано с разницей методов измерения, а также особенностями работы с топливом. Для демонстрации пользователю рекомендуется выбирать тот датчик, который показывает более достоверные результаты.

Информация о топливе может содержаться в параметрах со следующими именами: fuel_lvlfuel_usedcons_totalcan_fuelrs485_llsadc1adc2 и т.п.

Выбирать тип датчика необходимо, исходя из того, как меняется значение параметра. Рассмотрим различное поведение параметров ниже.

ДАРТ

Параметр можно использовать в Датчике абсолютного расхода топлива, если

  • его значение не изменяется, когда двигатель не работает;
  • его значение увеличивается во время работы двигателя;
  • его значение растет быстрее при движении или работе под нагрузкой, чем при остановке или отсутствии нагрузки.

ДМРТ и ДИРТ

Параметр можно использовать в Датчике мгновенного расхода топлива или Датчике импульсного расхода топлива, если

  • он равен нулю, когда двигатель не работает;
  • он имеет положительное значение, когда двигатель работает;
  • он имеет приблизительно равные значения, когда объект движется с одинаковой скоростью или работает под одинаковой нагрузкой.

ДУТ

Параметр можно использовать в Датчике уровня топлива, если

  • его значение не меняется, когда двигатель не работает;
  • его значение постепенно уменьшается, когда двигатель работает;
  • его значение падает быстрее при движении или работе под нагрузкой, чем при остановке или отсутствии нагрузки;
  • его значение колеблется вокруг фактического значения при работе двигателя и движении;
  • его значение резко растет во время заправки.

В отличие от датчиков расхода топлива параметр от ДУТ может вести себя не так, как описано выше, потому что во время остановки или движения может осуществляться слив топлива, объект может двигаться под наклоном, температура может значительно меняться в течение дня, в топливе могут содержаться примеси и т.д. Подробнее о проблемах при контроле топлива и методах их решения можно почитать в разделе Другие материалы → Топливо.

Ниже приведен пример графика изменения параметра ДУТ, который захватывает интервалы поездки и заправки.

В некоторых случаях параметр ДУТ ведет себя противоположным образом: при работе двигателя его значение растет, а при заправке — падает. Это отличие будет нивелировано после проведения тарировки бака и внесения ее результатов в Таблицу расчета.

Екатерина Гриб,Инженер отдела технического консалтинга

Как выбрать номер цифрового входа/выхода (I/O)
  • technical_consulting
  • sensor_parameters

Цифровой вход и цифровой выход являются контактами (пинами разъема), на которые подается напряжение только двух уровней: один из них соответствует включенному состоянию (1, или Вкл), а второй — выключенному (0, или Выкл). Исходя из этого, цифровые входы и выходы используют для подключения к трекеру устройств или схем, которые передают только два возможных состояния. Например, к цифровому входу трекера можно подключить датчик состояния двери, чтобы трекер мог определить, открыта она или нет. А к цифровому выходу трекера можно подключить противоугонное устройство, который будет управляться трекером и блокировать зажигание.

Отмечу, что если клиенту требуется точное числовое значение, то нужен аналоговый разъем. Потому что если, например, для ДУТ использовать цифровой вход, то вы лишь сможете узнать, есть ли в баке топливо или нет.

Количество цифровых входов и выходов на трекере может быть довольно большим (например, у Galileosky 7-го поколения в зависимости от модификации и конфигурации может быть от 6 до 10 цифровых входов). Поэтому у пользователей часто возникает вопрос: к какому цифровому входу или выходу монтажник подключил интересующее клиента устройство? С помощью инструкции ниже вы сможете получить требуемый ответ.

Отображение цифровых входов/выходов

Вначале стоит отметить, что состояние цифровых входов и выходов в Wialon представлено в виде двух шестнадцатеричных чисел (HEX), получаемых из двоичных чисел (BIN), в которых каждому биту соответствует вход/выход с таким же номером. Параметр с этими значениями имеет имя I/O (сокращение от Inputs/Outputs) и содержит в себе два числа, разделенных косой чертой: слева от нее располагается значение, соответствующее состоянию всех входов, а справа — состоянию выходов.

Почему выбрана такая реализация? Давайте разберемся на примере.

Предположим, что к цифровым входам 1, 3, 4 и 7, а также выходам 1, 3, 6 и 8 подключено оборудование. Также предположим, что в рассматриваемом сообщении все упомянутые входы и выходы активированы. Если бы для каждого из них использовался отдельный параметр в сообщении, то вы бы увидели следующее:

in1=1, in2=0, in3=1, in4=1, in5=0, in6=0, in7=1, in8=0, out1=1, out2=0, out3=1, out4=0, out5=0, out6=1, out7=0, out8=1

А в нынешней реализации в Wialon вы увидите следующую запись:

I/O=4D/A5

И очевидная краткость записи в данном случае является ключевым преимуществом.

Определение номера активированного цифрового входа/выхода

Если номер N входа или выхода известен, то соответствующий ему параметр будет иметь вид inN, а параметр выхода — outN. Например, четвертый вход — это in4, а выход — out4.

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

Подбор

При подключении оборудования монтажники чаще всего используют первые входы/выходы. То есть если речь идет про устройство или схему, которые передают информацию трекеру, то проверять стоит in1-in4, а если про устройство или схему, которыми управляет трекер, — out1-out4.

Для поиска нужного входа вы можете создать 4 датчика с типом Произвольный цифровой датчик на основе этих параметров (например, в первом датчике в строке Параметр будет in1, во втором — in2 и так далее). Затем перейдите в панель Сообщения, выберите тип сообщений Сообщения с данными и в меню ниже укажите Значения датчиков. После этого запросите сообщения за интервал, когда оборудование было сперва выключено, а потом включено, чтобы найти момент перехода из состояния Выкл в состояние Вкл в одном из столбцов, каждый из которых соответствует созданному датчику.

Это самый быстрый практический метод нахождения нужного входа (аналогично можно работать с выходами, но использовать в таком случае нужно параметры out1, out2 и так далее). Если он не сработал, то вы можете прибегнуть к математическому подходу.

Математический подход

Если вам неизвестен номер входа/выхода, к которому подключено оборудование, то вы можете воспользоваться следующей инструкцией:

1. Перейдите в панель Сообщения, выберите тип сообщений Сообщения с данными и в меню ниже укажите Исходные данные.
2. Запросите сообщения за интервал, когда оборудование было сперва выключено, а потом включено.
3. После отображения таблицы с сообщениями от трекера обратите внимание на колонку Параметры и найдите там параметр I/O (он расположен в самом конце строки).

Предположим, что в сообщении, где оборудование было выключено, параметр I/O=102/0, то есть цифровые выходы деактивированы (или даже не подключены), а некоторые цифровые входы активированы.

4. Откройте приложение Калькулятор (оно предустановлено на каждом компьютере, либо его аналоги можно найти в интернете) и переключите его в режим Программист (или аналогичный, который позволяет переводить значения из одной системы счисления в другую).
5. Переключите калькулятор на шестнадцатеричную систему счисления (HEX).
6. Введите найденное ранее значение 102.
7. Приложение автоматически (либо по нажатию клавиши ввода) представит вам данное число в разных системах счисления. Нас интересует запись в двоичном виде (BIN), которая состоит только из нулей и единиц.

8. Изучите полученное двоичное число. Учтите, что отсчет номера бита идет справа налево (как и в десятичной системе, где единицы находятся справа, слева от них находятся десятки, потом сотни, тысячи и так далее): 0001 0000 0010
9. Определите номера битов для данного числа (нумерация битов в Wialon начинается с 1):

Номер121110987654321
Значение000100000010

10. Из этой записи можно сделать вывод, что в данном сообщении активированы входы 2 и 9 (то есть in2=1, in9=1), а все остальные входы деактивированы (то есть их значение равно нулю).
11. Теперь найдите сообщение, в котором оборудование было включено. Предположим, что оно содержит параметр I/O=10A/0.
12. Повторите шаги 4-8 для значения 10A.

13. Определите номера битов для данного числа:

Номер121110987654321
Значение000100001010

14. В данном сообщении активированы входы 2, 4 и 9 (то есть in2=1, in4=1 и in9=1).
15. Сравните результаты шагов 10 и 14. Как несложно заметить, они отличаются лишь состоянием параметра in4, то есть в приведенном примере оборудование было подключено ко входу 4.

Использование цифровых входов/выходов

Параметр цифрового входа или выхода можно использовать так же, как и любой другой параметр.

При создании датчиков для цифровых входов/выходов больше всего подходят типы из группы Цифровые, так как они подразумевают только два состояния (Вкл и Выкл).

Уникальным методом использования, который доступен только для цифровых входов, является уведомление с типом Цифровой вход, для которого даже не нужно создавать датчик.

Олег Жарковский,Тренер по Wialon

Некорректный пробег
  • technical_consulting
  • trips

Некорректный пробег может влиять на расчет средней скорости, средний расход топлива на километр, интервалы техобслуживания и, конечно же, на показатель пройденного расстояния. Поэтому очень важно отслеживать и устранять возникшие проблемы как на стороне оборудования, так и на стороне ПО.

Если вы столкнулись с проблемой некорректного определения пробега в отчете, на треке или в сообщениях, то в первую очередь проверьте, какой тип счетчика пробега выбран у вас на вкладке Основное в свойствах объекта:

  • GPS
  • GPS + датчик зажигания
  • Датчик пробега
  • Относительный одометр

Узнав, какой счетчик используется в вашем объекте, выберите соответствующий раздел статьи.

1. GPS

На корректность пробега при использованнии данного типа счетчика может влиять неустойчивая связь со спутниками, сбои в передаче данных, а также использование дополнительных датчиков. Рассмотрим эти варианты подробнее.

a. Выбросы координат и неправильная хронология сообщений

Выбросы координат могут появляться из-за плохой связи со спутниками Глобальной Навигационной Спутниковой Системы (ГНСС). Чтобы определить, что выбросы имели место, перейдите на вкладку Сообщения и выгрузите данные для нужного объекта за проблемный период. На карте вы увидите трек, по которому можно будет определить наличие выбросов: координаты сообщений значительно отстоят от фактического местаположения объекта.


В данном примере явным признаком проблем с определение местоположения объекта является параметр HDOP – он имеет значения >1

Wialon имеет ограничение: не более 1 сообщения должно приходить от объекта за 1 секунду. Если терминал передает более 1 сообщения в 1 секунду, хронология сообщений может нарушится и трек будет выглядеть аналогичным образом. Причина - некорректная расстановка сообщений с позиционными данными (координатами) в базе данных Wialon. В таких случаях, в настройках терминала следует снизить частоту отправки сообщений с данными.

Возможные варианты решения:

  • Использовать Фильтрацию валидности сообщений;
  • Изменить настройки Детектора поездок.

В примере выше при помощи датчика зажигания в детекторе поездок, удалось избавиться от выбросов, т. к. они фиксируются на интервале без включенного зажигания:



b. Использование датчика пробега

В некоторых случаях счетчик (вкладка Основное в свойствах объекта) работает на основе GPS-координат, но при этом также создан отдельный датчик пробега (вкладка Датчики в свойствах объекта). В отчетах, например, с таблицей Поездки колонка Пробег будет выводить значение по GPS (суммарное расстояние между координатами), но значение колонок Начальный/Конечный пробег будет рассчитано следующими методами:

  • Если значение датчика пробега имеется в первом/последнем сообщении интервала, то система использует эти значения.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. 10 км
  2. -- км
  3. -- км
  4. 15 км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км (как в сообщении), в колонке Конечный пробег получим 15 км (как в сообщении).

Аналогичный пример, но значение датчика пробега доступно только в последнем сообщении:

  1. -- км
  2. -- км
  3. -- км
  4. 15 км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Конечный пробег получим 15 км (как в сообщении).

И еще один пример, где значение датчика пробега доступно только в первом сообщении:

  1. 10 км
  2. -- км
  3. -- км
  4. -- км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км (как в сообщении).

  • Если в первом сообщении интервала нет значения датчика пробега, то система ищет первое доступное сообщение со значением датчика пробега на этом интервале, а потом из него вычитается пробег до начала поездки, рассчитанный по GPS-координатам.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. -- км
  2. -- км
  3. -- км
  4. 15 км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 15 км - расчитаное по GPS-координатам значение или 15 км - 2 км = 13 км, в колонке Конечный пробег получим 15 км (как в сообщении).

  • Если в последнем сообщении интервала нет значения датчика пробега, то система ищет последнее доступное сообщение со значением пробега на этом интервале, а потом к нему прибавляется пробег до конца поездки, рассчитанный по GPS-координатам.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. 10 км
  2. -- км
  3. -- км
  4. -- км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км (как в сообщении), в колонке Конечный пробег получим 10 км + расчитаное по GPS-координатам значение или 10 км + 2 км = 12 км.

  • Если в первом и последнем сообщении нет значения датчика пробега, то система ищет первое доступное значение датчика, а потом из него вычетает пробег расчитаный по GPS-координатам чтобы получить начальное значение, а чтобы получить конечное значение наоборот прибавляет к значению датчика пробег расчитаный по GPS-координатам.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. -- км
  2. 10 км
  3. 15 км
  4. -- км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км - расчитаное по GPS-координатам значение до первого сообщения интервала, в колонке Конечный пробег получим 10 км + расчитаное по GPS-координатам значение до последнего сообщения интервала.

В такой ситуации если из-за каких-то сбоев датчик пробега не работал и присылал 0 км, возможно возникновение отрицательных значений пробега:


В данном примере для объекта создан датчик пробега на основе параметра can_mileage, который отсутствует в сообщениях вплоть до 18.12.2019 16:38:54:


После 16:38 и далее параметр всегда имеет значение 0, а датчик, соответственно, – значение 0 км.

Возможные варианты решения:

  • Удалить датчик пробега и полностью перейти на пробег по GPS-координатам;
  • Устранить проблему на стороне оборудования или переключиться на параметр с корректными значениями.

В примере выше решением стало удаление датчика и переход только на GPS пробег, т. к. значения параметра не считывались с CAN-шины.

2. GPS + датчик зажигания

На корректность пробега при использованнии данного типа счетчика может оказывать влияние неустойчивая связь со спутниками, сбои в передаче данных, а также использование дополнительных датчиков. Однако существенным отличием от типа GPS и довольно частой причиной проблем в данном типе счетчика будет использование датчика зажигания, который работает некорректно. Рассмотрим этот вариант подробнее.

Некорректное значение датчика зажигания

В качестве счетчика пробега выбрана опция GPS + датчик зажигания. При построении трека (через вкладку Сообщения, Треки или Отчеты) пробег равен 0 км, при этом сам трек на карте виден:



Трек на карте строится по координатам из сообщений, в то время как алгоритм расчета пробега учитывает не только координаты и расстояние между сообщениями, но и проверяет, включено ли зажигание.

В данном примере для объекта не создан датчик с типом Зажигание, поэтому система игнорирует все сообщения и выводит 0 км пробега:


Возможные варианты решения:

  • Переключить счетчик пробега на GPS;
  • Добавить корректно работающий датчик зажигания.


В примере выше объект не присылает параметр, на основе которого можно определить состояние зажигания, потому проблема решена переключением на тип счетчика GPS.

3. Датчик пробега

Показания любых датчиков, в том числе пробега, могут быть подвержены таким внешним факторам, как отключение питания, наводки, неисправности в датчиках, ошибки калибровки и конфигураций датчиков/терминалов. Рассмотрим подробнее несколько примеров ошибок.

a. Сброс значений параметра пробега

Некоторые терминалы перестают передавать показания датчика пробега на короткий интервал времени (например, из-за отключения питания, наводок по цепи питания, иных проблем с оборудованием). В таких случаях накопленный суммарный пробег по объекту может отличаться от последнего доступного значения датчика:





В примере суммарный пробег по счетчику пробега составляет 26943 км, а по датчику пробега – всего 7069 км.

Причина  сброс параметра датчика пробега.


В такой ситуации происходит сброс до 0 км и далее снова рост до 6452 км (в примере такие сбросы повторялись неоднократно).

Возможные варианты решения:

  • Использовать Нижнюю границу в настройках датчика;
  • Использовать Валидацию, если сброс происходит при определенных обстоятельствах и удается выявить зависимость с другими параметрами (датчиками).

В примере выше достаточно применить нижнюю границу (0.01), т. к. сброс происходит произвольно и нет зависимости от других датчиков.





Таким образом посредством нижней границы удалось исключить нулевые значения (сброс до 0 км) и избежать некорректного расчета пробега.

b. Сообщения с одинаковой временной меткой (опция С переполнением включена)

Терминалы могут присылать сообщения слишком часто. Wialon имеет ограничение: не более 1 сообщения должно приходить от объекта за 1 секунду. При получении данных с большей частотой их хронология может быть нарушена и меньшее значение пробега может попасть в базу после сообщения с бо́льшим значением, пример на картинке ниже:


В таких ситуациях происходит переполнение счетчика до моксимально возможного значения  2147483648.

Возможные варианты решения:

  • Отключить опцию С переполнением в настройках датчика (если была активирована).

В примере выше опция С переполнением была включена. Отключив ее, мы получили более корректное значение пробега:


с. Сообщения с одинаковой временной меткой (опция С переполнением выключена)

Сообщения могут приходить с одинаоквой временной меткой, нарушая хронологию, например:

В целом, на картинке выше, пробег выглядит корректным  25.01 км, в отличаи от предыдущего примера, где ошибка была очевидна. Однако, если взять из сообщений начальное значение датчика пробега на интервале   9917.81 км и конечное  9942.44 км, вычесть разницу, то получим пробег  24.63 км.

Разница составляет 0.38 км на относительно небольшом отрезке трека. Погрешность будет расти с увеличением объема данных (количеством поездок). Причина ошибки - это конечно же нарушение хронологии сообщений. Система ожидает, что значение датчика будут расти. В примере видим падение с 9931.03 км до 9930.85 км и последующий рост до 9931.29 км. Происходит повторный расчет пробега между сообщениями зо значением датчика 9930.85 км и 9931.29 км, т.е. добавляются лишние 0.44 км.

Возможные варианты решения:

  • Переключить счетчик пробега на GPS;
  • Устранить проблему на стороне оборудования;
  • Переключить датчик пробега на тип Относительный одометр и применить валидацию.

В примере выше удалось получить более корректные значения пробега с помощью перевода датчика пробега на тип Относительный одометр с добавлением валидации. Датчика относительного одометра основан на параметре в виде выражения: mileage-#mileage. Валидатор основан на параметре в виде выражения: time-#time. Нижняя граница для валидатора  0, a тип валидации  Проверка на неравенство нулю. Счетчик пробега во вкладке Основное переключен на  Относительный одометр.

После применения валидации, пробег составил  24.65 км. Сообщения, в которых временная метка совпадает, исключаются из расчета.

При возникновении вопросов по конкретным практическим случаям вы можете обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме краткое описание ситуации со скриншотами, точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а одни сутки), а также прочие важные детали.

Павел Чеботарёв,Тренер по Wialon

Проблемы при изменении прав доступа на объекты
  • technical_consulting
  • access_rights

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

Чаще всего полный доступ к объекту (все права) имеют только те пользователи, которые осуществляют его настройку, а остальные пользователи имеют ограниченные права, достаточные для работы с объектом. Во избежание некорректного изменения настроек важно предоставлять пользователю только те права, которые ему действительно нужны.

Наблюдаемая проблема и метод ее решения

При повседневной работе права на объект зафиксированы в нужном виде и не меняются. Однако при изменении прав могут возникнуть трудности, или иногда права могут меняться без вашего участия, и в итоге имеющиеся настройки могут отличаться от ожидаемых. В данной статье будут рассмотрены стандартные проблемы такого рода. Выберите один из представленных ниже вариантов в соответствии с тем, какую ситуацию вы наблюдаете.

1. После сокращения прав пользователь все равно имеет более широкие права

Объект может входить в группу, в отношении которой у пользователя также имеется права. В таком случае пользователь будет обладать более широким переченем прав из двух возможных.

Для исправления ситуации попробуйте исключить объект из группы или убрать права пользователя на группу, в которую входит объект. После внесения данных изменений задайте нужные права на объект еще раз.

Объект может входить сразу в несколько групп, и в таком случае рекомендуется проверить права пользователя на все эти группы. Список групп, в которые входит объект, отображается на вкладке Группы в свойствах этого объекта.

2. При снятии всех прав на объект отображается ошибка и изменения не применяются

Наиболее вероятно, данный пользователь является создателем объекта. На данный момент забрать у создателя все права на созданный им элемент невозможно. При попытке сделать это будет отображаться ошибка с текстом «Нельзя забрать права доступа у создателя элемента».

Для исправления ситуации необходимо изменить создателя этого объекта. Для этого можно перенести объект в другую учетную запись. Объект должен находиться в учетной записи пользователя, который непосредственно использует этот объект.

Мы создали видео о применении инструмента Сменить учетную запись из интерфейса управления (CMS):

3. При расширении прав изменения не сохраняются

В Wialon используется следующий принцип иерархии: невозможно дать какому-либо пользователю больше прав на некий элемент, чем имеет создатель этого пользователя на тот же самый элемент. Если вы расширяете список прав, но изменения не сохраняются, это может означать, что у создателя пользователя недостаточно прав на объект.

Для исправления ситуации предоставьте более широкий список прав на объект пользователям, выше по иерархии. После — самому пользователю, которому было необходимо расширить права (то есть пройдите по всей ветке иерархии учетных записей сверху вниз).

Проверить стурктуру сервиса можно с помощью инструмента Иерархия сервиса в интерфейсе управления (CMS).

4. Права меняются, хотя вы не вносите изменений

Для изменения прав доступа к объекту пользователь должен обладать правом Управление доступом к элементу в отношении этого объекта. Доступ к объекту может быть сразу у нескольких пользователей. Соответственно, несколько пользователей могут вносить изменения. Отследить изменения можно с помощью Журнала, который можно просмотреть на вкладке Сообщения или в отчете с помощью одноименной таблицы.

Для исправления ситуации проанализируйте Журнал и отключите возможность менять права доступа для тех пользователей, которые не должны этого делать.

5. Права меняются, хотя никто из пользователей не вносит изменений

Чаще всего такие изменения могут происходить с определенным равным периодом или при определенных условиях. В таком случае причиной является работа Заданий с типом Изменить доступ к объектам или Уведомлений со способом действия Изменить доступ к объектам или Изменить состав групп объектов.

Для исправления проверьте правильность настройки заданий и уведомлений (при необходимости их можно удалить или остановить).

6. Права меняются, хотя пользователи, задания и уведомления не делают этого

В Wialon реализована возможность изменять настройки элементов (в том числе менять права) посредством API-запросов. Такие запросы все равно выполняются от имени конкретного пользователя, при этом вход и выход из системы при помощи API-запроса в некоторое стороннее приложение логируется. Эту информацию можно отследить в свойствах пользователя на вкладке Журнал или в интерфейсе управления (CMS) на вкладке Пользователи в колонке Последний вход.

Для исправления ситуации проанализируйте логику работы стороннего приложения. Если в приложении используется токен пользователя, созданного специально для работы со сторонним приложением, то данному пользователю можно изменить список прав и отключить право Управление доступом к элементу, либо можно изменить флаги его токена. Если в приложении используется токен того же пользователя, что и для входа в интерфейс мониторинга, то нужно пересмотреть логику работы приложения, избавившись от изменения прав пользователей относительно объектов.

Изменения прав на объект логируются в Журнале (на вкладке Сообщения или в отчете с помощью одноименной таблицы). В колонке Хост будет написано имя пользователя, если изменения внесены вручную или через API-запрос, либо «задание» или «уведомление», если изменения внесены с помощью этого функционала.

Записи из Журнала можно удалять. В таком случае информация об изменении прав отображаться не будет. Если вы предполагаете, что столкнулись с такой ситуацией, пожалуйста, свяжитесь с технической поддержкой Wialon по почте support@gurtam.com.

Екатерина Гриб,Инженер отдела технического консалтинга

Уведомления в Telegram
  • technical_consulting
  • notifications_to_telegram

Возможность отправлять информацию по разным канал является большим преимуществом. Стандартные варианты имеют свои минусы: отправленное по электронной почте письмо может затеряться в спаме, а SMS являются платными и не всегда доходят до получателя. В таких условиях мессенджер Telegram может стать удобной альтернативой. 

Telegram является сторонним сервисом для Wialon. В интернете вы можете свободно найти инструкции о необходимых настройках. Однако для упрощения работы партнеров мы собрали в одной статье ключевые шаги, которые потребуются для отправки уведомлений в Telegram из Wialon для открытых и закрытых групп, каналов, индивидуальных и массовых рассылок.

Часть информации (токены и ID) в инструкциях будет скрыта, так как это приватная информация. На понимание инструкций это не влияет.

Предварительные требования

Создать бота следуя инструкции. Здесь и далее будем предполагать, что Telegram установлен на вашем компьютере или телефоне. Работу по настройке можно вести в обеих версиях, однако делать это на компьютере проще, так как вам придется копировать информацию в настройки уведомления в Wialon.

Категории уведомлений

Условно, уведомления можно разделить на две категории:

  • «индивидуальные» — для одного выделенного пользователя (например клиент с одним личным автомобилем)
  • «массовые» — для нескольких пользователей сразу (например одной группы, команды, отдела, компании)

Настройка для Telegram уведомлений в Wialon одна — нужно задать Токен бота и ID канала:

Обычно вопросы возникают с ID канала. Именно от того, как вы заполните это поле, зависит, будет ли уведомление индивидуальным или массовым.

Индивидуальные уведомления

Открываем ссылку (приведена ниже) на компьютере или на телефоне с установленным Telegram:

https://telegram.me/userinfobot

В ответ получаем собственный ID:

Этот собственный ID и задаем в настройках уведомления:

При сработке такого уведомления, сообщение придет в чат боту и увидите его только вы:

Чем еще примечателен такой способ, так это возможностью использовать один токен для разных ID пользователей. Т.е. одного бота используем для множества индивидуальных уведомлений и каждый клиент получает только свое уведомление.

Что бы узнать ID другого пользователя (следуйте инструкции userinfobot) просто перенаправьте ему сообщение этого пользователя (например у вас с ним чат уже есть, оттуда и перенаправляйте):

Массовые уведомления

Публичный канал

С массовой отправкой сразу нескольким пользователям все проще. Достаточно создать публичный канал Telegram, добавить туда бота и разрешить ему управлять уведомлениями.

В качестве ID канала для настройки уведомления в Wialon нужно использовать ID канала:

Берем только «pach_test» (без символов «t.me/»), ставим префикс «@» и добавляем в уведомление в Wialon:

Добавляем в этот канал любой нужный контакт (все они будут получать уведомления централизованно). Ждем сработки, результат ниже:

Закрытый канал

Создаем открытый канал, добавляем туда бота администратором. Отправляем запрос от имени бота в этот канал:

https://api.telegram.org/bot/sendMessage?chat_id=@yourchannelname&text=ping

Заменяем токен на токен своего бота:

Указываем ID своего канала:

Вставляем в адресную строку браузера и нажимаем Enter, например:

https://api.telegram.org/bot775ххххххх:AAH5Kp_cххххххххххххххххх/sendMessage?chat_id=@gurtamstudy&text=ping

В ответ получаем:

{"ok":true,"result":{"message_id":17,"chat":{"id":-1001xxxxxxxxx,"title":"Study","username":"gurtamstudy","type":"channel"},"date":1593066856,"text":"ping"}}

Удаляем сообщение, делаем канал закрытым. Вместо @yourchannelname в настройках уведомления используем значение «id»: -1001xxxxxxxxx

Закрытая группа

Отправка в группу может быть полезна, т.к. в ней есть возможность обсудить уведомление. Настройки выполняем аналогично настройке с закрытым каналом.

Создаем открытую группу, добавляем туда бота (можно без прав администратора). Отправляем запрос от имени бота в эту группу:

https://api.telegram.org/bot/sendMessage?chat_id=@yourchannelname&text=ping

Заменяем токен на токен своего бота:


Указываем ID своей группы:

Вставляем в адресную строку браузера и нажимаем Enter, например:

https://api.telegram.org/bot775ххххххх:AAH5Kp_cххххххххххххххххх/sendMessage?chat_id=@gurtam_study&text=ping

В ответ получаем:

{"ok":true,"result":{"message_id":2,"from":{"id":775ххххххх,"is_bot":true,"first_name":"pach_test","username":"pach_bot"},"chat":{"id":-1001xxxxxxxxx,"title":"Study group","username":"gurtam_study","type":"supergroup"},"date":1593070025,"text":"ping"}}


Удаляем сообщение, делаем группу закрытой. Вместо @yourchannelname в настройках уведомления используем значение «id»: -1001xxxxxxxxx

Павел Чеботарёв,Тренер по Wialon

10
  • 10
  • 25
  • 30
Спасибо за ваш отзыв!
Сообщить об ошибке
Текст с ошибкой Комментарий
Максимум 500 символов