Navtelecom

Пример на GitHub >>>

Модель

📌 Задача: Предположим, у вас есть трекер для мониторинга транспорта, подключенный к самокату и работающий по протоколу Navtelecom. Известно, что он передает следующие параметры.
Пример
Номер параметра в протоколе
FLEX
Код события21.0
Время события31.0
Статус функциональных модулей 151.0
Статус функциональных модулей 261.0
Уровень GSM71.0
Количество спутников81.0
Навигационный приемник включен81.0
Валидная навигация81.0
Широта101.0
Долгота111.0
Скорость131.0
Курс141.0
Пробег151.0
Напряжение батареи201.0
Самокат разблокирован31, 1-й выход1.0
Состояние виртуальных датчиков акселерометра1393.0
Угол наклона относительно местной вертикали1403.0
Угол тангажа1413.0
Угол крена1413.0
📌 Также в описании трекера сказано, что он обеспечивает реакцию на следующие команды.
КомандаОписание
Запрос модели и версии устройстваСистемная команда
Запрос информации о прошивкеСистемная команда
РазблокироватьВключить выход 1
ЗаблокироватьВыключить выход 1
Включить фаруВключить выход 2
Выключить фаруВыключить выход 2
Перезапуск устройстваСистемная команда

Для подключения трекера самоката к платформе создайте для него модель Navtelecom.

В шаблонной модели есть все параметры из разделов протокола FLEX 1.0, 2.0 и некоторые параметры из раздела FLEX 3.0. С помощью поиска по модели можно понять, какие параметры уже присутствуют, а какие нужно добавить самостоятельно.

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

Подробнее о формировании аргументов Navtelecom >>>

Также в шаблонной модели заранее определены все возможные для отправки команды. Команды для включения и выключения выходной линии 1 в данном случае отвечают за блокировку самоката, а выходной линии 2 — за фару. Переименуйте данные команды. Другие необходимые команды можно оставить без изменения, а все лишние действия удалить или скрыть из отображения.

Подробнее о формировании действий Navtelecom >>>

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

При желании выберите иконку для отображения объекта на карте или загрузите свое изображение.

Модель для импорта >>>

Объект

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

После сохранения откроется инструкция по настройке устройства на платформу.

Подробнее о создании объекта >>>

Объект для импорта >>>

Подключение

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

  • хост dev.rightech.io
  • порт 21400

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

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

Подробнее о подключении устройств >>>

Логика

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

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

Автомат будет содержать три состояния: 

  • ожидание срабатывания события по пересечению геозон;
  • вне разрешенной геозоны;
  • в запрещенной геозоне.

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

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

Создайте новый автомат.

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

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

Теперь добавьте команды для отправки уведомлений.

Автомат готов. Выберите объект самоката и запустите его. 

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

Подробнее о возможностях автоматов >>>

Автомат для импорта >>>

Геозоны

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

Добавьте геозоны на объект самоката. После получения актуальных координат появится статус нахождения в геозонах In/Out.

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

Теперь при входе и выходе из геозон происходит переход между состояниями и отправляются уведомления.

Подробнее о геозонах >>>

Код геозоны Park >>>

Код геозоны Living sector >>>