Pull to refresh
0
Euler2012.com
Сервис GPS мониторинга ViaLatM. Решения M2M и IoT.

IoT и ViaLatM. Автоматизация посылки команд на объекты «Интернет вещей»

Reading time2 min
Views3.4K


В данной статье описывается как с помощью языка сценариев, встроенных в сервис VIALATM автоматизировать посылку команд на объекты из сферы «Интернет Вещей». Базовые сведения о языке сценариев давались в предыдущих статьях.


Описание последней версии языка сценариев (добавлены новые команды, операторы, процедуры) будет опубликовано в ближайшее время. Пока можно познакомиться с языком сценариев по ссылке Язык сценариев ViaLatM.

Посылка команд на объекты


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

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

Формат безусловного оператора:

COMMAND (UNIT.ZTEMPER_SETTER,12);

С помощью этого оператора на текущий объект (для которого выполняется сценарий), отправляется команда установки атрибута ZTEMPER_SETTER в значение 12.

Формат условного оператора:

COMMANDIF (UNIT.ROOM_TEMPER>20,UNIT.ZTEMPER_HEATER,OFF);

С помощью этого оператора на текущий объект отправляется команда выключения нагревателя (OFF) в том случае, если датчик температуры в комнате (ROOM_TEMPER) более 20 градусов.

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

Команды работы с несколькими объектами сервиса


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

CONST HEAT_ON = 1;
CONST HEAT_OFF = 0;
CONST NEAR_HOME = 20000 # 20km
DIST_TO_HOME = DISTANCE(L,UNIT(«IOT_HOME»).L);
COMMANDIF(DIST_TO_HOME<NEAR_HOME,UNIT(«IOT_HOME»).HEATER,HEAT_ON);

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

Скрипт выполняется для объекта — транспортное средство, которое должно быть оснащено GPS слежением (автомобильный или персональный трекер) и подключено к сервису. При приходе в сервис сообщений от этого объекта, вычисляется расстояние до дома.

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

Объекты, которые находятся вне выполняемого сценария задаются функцией UNIT(«OBJECT_ID»). Для трекеров, в качестве OBJECT_ID следует задавать IMEI, для объектов «Интернет Вещей» — корневую тему (HOME) и для этих объектов теме всегда должен предшествовать префикс «IOT_».

Заключение


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

В следующей статье будет рассказано как создавать уведомления по событиям и состояниям объектов из сферы интернет вещей.
Tags:
Hubs:
+5
Comments3

Articles

Information

Website
www.euler2012.com
Registered
Founded
Employees
1 employee (me only)
Location
Россия