Wialon IPS
Пример на GitHub >>> (opens in a new tab)
Модель
Задача: Предположим, у вас есть мониторинговый блок, подключенный к автомобилю и работающий по протоколу Wialon IPS. Известно, что, помимо базовых значений, определенных в протоколе, он передает следующие дополнительные параметры.
Параметр | Имя в пакете |
---|---|
Скорость CAN | can_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.
В шаблонной модели есть много параметров. С помощью поиска по модели можно понять, какие параметры уже присутствуют, а какие нужно добавить самостоятельно.
Параметр | Имя в пакете |
---|---|
Скорость CAN | can_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 |
Удалите или скройте из отображения лишние параметры и оставьте только нужные.
Добавьте два отсутствующих параметра.
Подробнее о формировании аргументов Wialon IPS >>>
Также в шаблонной модели есть примеры нескольких команд, сформируйте на базе них команды вашего блока.
Важно: Согласно протоколу, текст каждой команды должен заканчиваться концевиком пакета \r\n
(#can_closealldoor#\r\n)
, который означает возврат каретки и перенос строки. Однако так как это не печатные, а управляющие символы, то в интерфейсе платформы в поле ввода команды они не отображаются. Хотя их можно увидеть, если перейти на вкладку HEX.
Чтобы вы избежали ошибок при формировании своих команд, для модели Wialon IPS реализована возможность не добавлять \r\n (0D0A) в поле ввода текста команды. Вам достаточно указать только сам текст команды от решетки (#) до решетки (например, #can_openalldoor#). Управляющие символы \r\n на этапе отправки команды платформа подставит сама.
Подробнее о формировании действий Wialon IPS >>>
Посмотрите превью объекта с моделью, которую вы создали, нажав кнопку Показать превью.
При желании выберите иконку для отображения объекта на карте или загрузите свое изображение.
Модель для импорта >>> (opens in a new tab)
Объект
Создайте объект для вашего автомобиля. Выберите модель, которую только что создали. Затем введите идентификатор, соответствующий IMEI блока мониторинга, с префиксом wialon:. Укажите имя объекта.
После сохранения откроется инструкция по настройке устройства на платформу.
Подключение
Для подключения автомобиля к платформе в настройках конфигуратора блока мониторинга укажите
- хост dev.rightech.io
- порт 20332
Убедитесь, что после сохранения настроек данные от устройства присылаются и отображаются в интерфейсе. После получения пакета с координатами объект должен отобразиться на карте.
Отправьте команды и проверьте, что подключенное устройство на них реагирует.
Подробнее о подключении устройств >>>
Логика
В качестве примера взаимодействия нескольких устройств в одном автомате рассмотрим следующую задачу.
Задача: Предположим, что чайник из примера MQTT нужно включать и выключать автоматически, когда вы приезжаете и уезжаете из дома. Значит, необходимо в автомате осуществить контроль входа/выхода из некоторой геозоны, определяемой областью вокруг дома. Тогда, как только автомобиль попадет в эту геозону, чайник включится, и дома вас будет ждать горячий чай. А если вы уезжаете, то чайник выключится, если вдруг он остался включенным.
Автомат будет содержать два состояния: дома и вне дома. Переходы между этими состояниями будут происходить при получении событий входа и выхода из геозоны.
Создайте новый автомат. Выберите две модели: чайника и автомобиля, так как в автомате будет организовано взаимодействие между двумя объектами с этими моделями. События будут поступать от автомобиля, а команды будут отправляться на чайник.
Так как по логике работы сценария автоматизации предусматривается цикличный контроль за нахождением в геозоне, автомат будет бесконечным, конечное состояние можно отодвинуть из поля зрения и не использовать. Создайте два состояния автомата.
Переходы между состояниями будут происходить при получении событий о входе или выходе из геозоны. Проверка дополнительных условий в данном случае не требуется. Обратите внимание, чтобы при выборе событий была активна модель автомобиля, так как события, полученные от него, будут служить для срабатывания перехода.
Теперь добавьте команды, которые будут выполняться в состояниях: включение и выключение чайника. Обратите внимание, чтобы при выборе действий была активна модель чайника, так как команды будут отправляться на него.
Автомат готов. Выберите объекты и запустите его.
Этот же автомат вы можете запускать для других объектов - например, чтобы чайник вашего соседа включался и выключался, когда он будет приезжать и уезжать соответственно.
Автомат запущен, однако для перехода между состояниями должны поступать события о входе и выходе из контролируемой геозоны.
Подробнее о возможностях автоматов >>>
Автомат для импорта >>> (opens in a new tab)
Геозоны
Создайте геозону, определяющую область вокруг вашего дома. Вы можете выбрать для этого один из типов геозон: полигон, прямоугольник или круг.
Добавьте геозону на объект автомобиля. После получения актуальных координат появится статус нахождения в геозоне In/Out. Здесь же вы можете посмотреть события, которые генерируются при входе и выходе. Именно они использовались в автомате.
Теперь при входе и выходе из геозоны происходит переход между состояниями.
Команды отправляются на чайник.