RU

Wialon IPS

Модель

🚩
Задача: Предположим, у вас есть мониторинговый блок, подключенный к автомобилю и работающий по протоколу Wialon IPS. Известно, что, помимо базовых значений, определенных в протоколе, он передает следующие дополнительные параметры.
ПараметрИмя в пакете
Скорость CANcan_speed
Пробегcan_odo_km
Напряжение батареиacc_voltage
Бортовое напряжениеext_voltage
Топливо в процентахfuel_lev_p
Зажиганиеign
Двигатель заведенengine_is_on
Дверь водителяdriver_door
Дверь пассажираpass_door
Левая задняяl_rear_door
Правая задняяr_rear_door
Багажник открытtrunk
Паркингparking
Габаритные огниmarker_lights
Ближний свет фарdipped_beam
Ручной тормозhand_break
Ножной тормозpedal_break
🚩
Также в описании блока сказано, что он обеспечивает реакцию на следующие команды.
ДействиеКоманда
Закрыть все двери#can_closealldoor#\r\n
Открыть все двери#can_openalldoor#\r\n
Поморгать габаритами#can_blinkerflasing#\r\n
Клаксон#can_horn#\r\n
Габариты и клаксон#can_hornblinker#\r\n
Остановить двигатель#can_stopengine#\r\n
Запустить двигатель#can_startengine#\r\n
Для подключения блока автомобиля к платформе создайте для него модель Wialon IPS.
В шаблонной модели есть много параметров. С помощью поиска по модели можно понять, какие параметры уже присутствуют, а какие нужно добавить самостоятельно.
ПараметрИмя в пакете
Скорость CANcan_speed
Пробегcan_odo_km
Напряжение батареиacc_voltage
Бортовое напряжениеext_voltage
Топливо в процентахfuel_lev_p
Зажиганиеign
Двигатель заведенengine_is_on
Дверь водителяdriver_door
Дверь пассажираpass_door
Левая задняяl_rear_door
Правая задняяr_rear_door
Багажник открытtrunk
Паркингparking
Габаритные огниmarker_lights
Ближний свет фарdipped_beam
Ручной тормозhand_break
Ножной тормозpedal_break
Удалите или скройте из отображения лишние параметры и оставьте только нужные.
Добавьте два отсутствующих параметра.
Также в шаблонной модели есть примеры нескольких команд, сформируйте на базе них команды вашего блока.
🚩
Важно: Согласно протоколу, текст каждой команды должен заканчиваться концевиком пакета \r\n (#can_closealldoor#\r\n), который означает возврат каретки и перенос строки. Однако так как это не печатные, а управляющие символы, то в интерфейсе платформы в поле ввода команды они не отображаются. Хотя их можно увидеть, если перейти на вкладку HEX.
Чтобы вы избежали ошибок при формировании своих команд, для модели Wialon IPS реализована возможность не добавлять \r\n (0D0A) в поле ввода текста команды. Вам достаточно указать только сам текст команды от решетки (#) до решетки (например, #can_openalldoor#). Управляющие символы \r\n на этапе отправки команды платформа подставит сама.
Посмотрите превью объекта с моделью, которую вы создали, нажав кнопку Показать превью.
При желании выберите иконку для отображения объекта на карте или загрузите свое изображение.

Объект

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

Подключение

Для подключения автомобиля к платформе в настройках конфигуратора блока мониторинга укажите
  • хост dev.rightech.io
  • порт 20332
Убедитесь, что после сохранения настроек данные от устройства присылаются и отображаются в интерфейсе. После получения пакета с координатами объект должен отобразиться на карте.
Отправьте команды и проверьте, что подключенное устройство на них реагирует.

Логика

В качестве примера взаимодействия нескольких устройств в одном автомате рассмотрим следующую задачу.
🚩
Задача: Предположим, что чайник из примера MQTT нужно включать и выключать автоматически, когда вы приезжаете и уезжаете из дома. Значит, необходимо в автомате осуществить контроль входа/выхода из некоторой геозоны, определяемой областью вокруг дома. Тогда, как только автомобиль попадет в эту геозону, чайник включится, и дома вас будет ждать горячий чай. А если вы уезжаете, то чайник выключится, если вдруг он остался включенным.
Автомат будет содержать два состояния: дома и вне дома. Переходы между этими состояниями будут происходить при получении событий входа и выхода из геозоны.
Создайте новый автомат. Выберите две модели: чайника и автомобиля, так как в автомате будет организовано взаимодействие между двумя объектами с этими моделями. События будут поступать от автомобиля, а команды будут отправляться на чайник.
Так как по логике работы сценария автоматизации предусматривается цикличный контроль за нахождением в геозоне, автомат будет бесконечным, конечное состояние
можно отодвинуть из поля зрения и не использовать. Создайте два состояния автомата.
Переходы между состояниями будут происходить при получении событий о входе или выходе из геозоны. Проверка дополнительных условий в данном случае не требуется. Обратите внимание, чтобы при выборе событий была активна модель автомобиля, так как события, полученные от него, будут служить для срабатывания перехода.
Теперь добавьте команды, которые будут выполняться в состояниях: включение и выключение чайника. Обратите внимание, чтобы при выборе действий была активна модель чайника, так как команды будут отправляться на него.
Автомат готов. Выберите объекты и запустите его.
💡
Этот же автомат вы можете запускать для других объектов - например, чтобы чайник вашего соседа включался и выключался, когда он будет приезжать и уезжать соответственно.
Автомат запущен, однако для перехода между состояниями должны поступать события о входе и выходе из контролируемой геозоны.

Геозоны

Создайте геозону, определяющую область вокруг вашего дома. Вы можете выбрать для этого один из типов геозон: полигон, прямоугольник или круг.
Добавьте геозону на объект автомобиля. После получения актуальных координат появится статус нахождения в геозоне In/Out. Здесь же вы можете посмотреть события, которые генерируются при входе и выходе. Именно они использовались в автомате.
Теперь при входе и выходе из геозоны происходит переход между состояниями.
Команды отправляются на чайник.