Перейти к основному содержимому

Работа iRidium с сервисом IFTTT

Общие инструкции по настройке работы iRidium с сервисом IFTTT

Платформа IFTTT позволяет связать между собой два облачных сервиса. В сфере удаленного управления устройствами умного дома можно привести множество примеров работы с данной платформой.

Рассмотрим 2 наиболее используемых способа работы с IFTTT:

  1. Активация триггера IFTTT, когда сработало устройство умного дома.

**Пример. ** Когда умный замок на двери открылся, отправляется уведомление об этом на почту.

  1. Срабатывание устройства, когда активировался триггер IFTTT.

**Пример. ** Когда пришло новое сообщение на почту, нужно чтобы загорелась лампа.

Далее, на примерах, мы опишем настройку данных способов работы.

Важно

Для работы с сервисом IFTTT необходим iRidium Server и постоянное интернет-соединение.

Активация триггера IFTTT, когда сработало устройство умного дома

Настройка Webhook

  1. Зайдите на сайт IFTTT и авторизуйтесь
  2. После авторизации нажмите на свою учетную запись и из появившегося списка выберите New Applet

IFTTT_1.png

  1. Появится стандартная форма, нажмите +this

IFTTT_2.png

  1. В появившемся списке найдите и выберите Webhooks

IFTTT_3.png

  1. Для создания триггера создайте новый запрос (Receive a web request)

IFTTT_4.png

  1. Создайте событие, например, door_opened и нажмите create trigger
  2. Нажмите +that и выберите из списка, что должно произойти, когда сработает событие door_opened

IFTTT_5.png

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

  1. Для этого выберем Gmail

IFTTT_6.png

  1. Выберем действие - прислать письмо самому себе (Send yourself an email). Появится обзор нашего триггера, нам нужно его проверить и закончить создание нажатием кнопки Finish

IFTTT_7.png

Можно проверить работу нашего триггера. Для этого перейдите на вкладку Webhooks

IFTTT_8.png

И перейдите на страницу документации

IFTTT_9.png

На этой странице можно создать запрос. Для этого в поле {event} впишите название события (в нашем примере это door_opened) и нажмите кнопку Test It.

IFTTT_10.png

примечание

Также на этой странице вы увидите ваш уникальный ключ, он понадобится нам в дальнейшем для настройки проекта iRidium.

Настройка проекта iRidium Pro

  1. Создайте серверный проект
  2. Добавьте в него драйвер AV&Custom Systems (HTTP)

IFTTT_11.png

  1. Настройте его как показано ниже

IFTTT_12.png

  1. Добавьте виртуальный канал Event

IFTTT_13.png

  1. Создайте в проекте новый скрипт и добавьте в него следующее
IR.AddListener(IR.EVENT_START,0,function(){

var IFTTT_Token = "your key"; //сюда вписываем секретный ключ Webhook (берем его из раздела документации к Webhook)
var IFTTT = IR.GetDevice("IFTTT (Custom HTTP (TCP))"); //имя драйвера

IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(in_sName, in_nValue){
IFTTT.Send(["GET,/trigger/"+in_nValue+"/with/key/"+IFTTT_Token+"/"]);
});
IR.SubscribeTagChange("Server.Channels.Event"); //имя виртуального канала

IR.AddListener(IR.EVENT_RECEIVE_TEXT, IFTTT, function(text) {
IR.Log(text);
});

});
  1. В переменную IFTTT_Token впишите свой ключ, который вы получили на странице документации Webhook

  2. Добавьте драйверы с которыми вы будете работать (рассмотрим пример с Modbus TCP) и настройте их

IFTTT_14.png

  1. Настройте обратные связи утройств

IFTTT_14_1.png

  1. Создайте правило, по которому будет срабатывать событие Webhook:

When=> в тег драйвера поступит сигнал о том, что дверь открыта

IFTTT_15.png

Then=> отправить текст с именем события в виртуальный канал

IFTTT_16.png


примечание

Впишите такое же имя события, как в триггере Webhook

IFTTT_17.png

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

Срабатывание устройства, по письму на Gmail

примечание

Данный способ может работать также как и первый через Webhook

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

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

Настройка Gmail

  1. Перейдите на сайт Google Apps Script
  2. Нажмите Start scripting

IFTTT_18.png

  1. Нажмите создать скрипт

IFTTT_19.png

  1. Вставьте следующий скрипт:
function doGet(in_sResponse) 
{
var l_sToken = ""; //впишите сюда ключ, который будете знать только Вы
var l_aEvents = in_sResponse.parameter.name.split(' ');
var l_nMailCount = 0;
var l_Object={};
var l_Response = Gmail.Users.Messages.list('me');

// Go through all the messages
for(var iMsg in l_Response.messages)
{
l_nMailCount++;
var l_nMessageID = l_Response.messages[iMsg].id;

var l_Message = Gmail.Users.Messages.get('me',l_nMessageID);

if(l_Message)
{
// Go through all the message headers
for(var iHeaders in l_Message.payload.headers)
{
if(l_Message.payload.headers[iHeaders].name == "Subject")
{
// Check for the presence of headers in events
for(var i = 0;i < l_aEvents.length;i++)
{
if(l_aEvents[i] == l_Message.payload.headers[iHeaders].value)
{
if(!l_Object[l_aEvents[i]])
l_Object[l_aEvents[i]] = l_nMessageID;

Gmail.Users.Messages.trash('me',l_nMessageID)
}
}
}
}

// Work with a maximum of 5 letters
if(l_nMailCount==5){break}
} else
break;
}
return ContentService.createTextOutput(JSON.stringify(l_Object));
}
примечание
  • В переменную var l_sToken придумайте и впишите свой уникальный ключ, для того чтобы кроме Вас никто не смог воспользоваться данным функционалом. В дальнейшем его нужно будет указывать в тексте письма.
  1. Сохраните его нажатием на иконку IFTTT_20.png или сочетанием клавиш Ctrl+S, задайте ему произвольное имя
  2. Для работы необходимо включить Gmail API. Для этого перейдите на вкладку Ресурсы/Дополнительные функции Google

IFTTT_21.png

  1. В появившемся списке найдите Gmail API и включите его.
  2. Под списком появится уведомление, что необходимо также включить этот сервис в панели инструментов. Перейдите по ссылке

IFTTT_22.png

  1. Заполните форму и нажмите Принять.

IFTTT_23.png

  1. На появившейся странице нужно нажать кнопку Включить API и сервисы

IFTTT_24.png

  1. В списке найдите и выберите Gmail API

IFTTT_25.png

  1. Включите его

IFTTT_26.png

  1. В появившемся окне нажмите создать полномочия для API

IFTTT_27.png

  1. Заполните форму как показано ниже

IFTTT_28.png

  1. Система запросит у вас разрешение на доступ к данным.

IFTTT_29.png

  1. Нажав на просмотр разрешений, появится новое окно. Выберите свой аккаунт нажмите Дополнительно и внизу сообщения нажмите Перейти

IFTTT_30.png IFTTT_31.png

  1. Нажмите Разрешить (Allow)
  2. Теперь, когда мы разрешили нашему скрипту доступ к данным Gmail нужно опубликовать его. Для этого перейдите на вкладку Опубликовать/Как веб приложение

IFTTT_32.png

  1. Заполните форму как показано ниже

IFTTT_33.png

примечание

После этого появится окно в котором вы увидите URL. Он понадобится нам для дальнейшей работы в iRidium Pro. Скопируйте его, начиная с /macros .

IFTTT_34.png

Настройка проекта iRidium Pro

  1. Создайте серверный проект
  2. Добавьте в него драйвер AV&Custom Systems (HTTP)

IFTTT_11.png

  1. Настройте его как показано ниже

IFTTT_12.png

  1. Добавьте еще один драйвер AV&Custom Systems (HTTP). Настройте его как показано ниже

IFTTT_35.png

  1. Добавьте виртуальный канал Event и виртуальный тег Event_Out

IFTTT_36.png

  1. Создайте в проекте новый скрипт и добавьте в него следующее
IR.AddListener(IR.EVENT_START,0,function(){

var IFTTT_Token = "your key"; // сюда вписываем секретный ключ Webhook (берем его из раздела документации к Webhook)
var Script_google_URL = "/macros/____________"; // URL из последнего шага настройки Gmail
var Event = "light_on+light_off"; // название событий (прописывается в теме письма)
var Interval = 10000; // интервал между запросами к Gmail

//-------------------------------------------------------------------------
var IFTTT = IR.GetDevice("IFTTT (Custom HTTP (TCP))");
var Script_google = IR.GetDevice("script_google");

IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(in_sName, in_nValue){
IFTTT.Send(["GET,/trigger/"+in_nValue+"/with/key/"+IFTTT_Token+"/"]);
});
IR.SubscribeTagChange("Server.Channels.Event");

IR.SetInterval(Interval, function (){
if(Script_google_URL!=""){
Script_google.Send(["GET,"+Script_google_URL+"?name="+Event]);
}
})

IR.AddListener(IR.EVENT_RECEIVE_TEXT, IFTTT, function(text) {
IR.Log("IFTTT "+text);
});
IR.AddListener(IR.EVENT_RECEIVE_TEXT, Script_google, function(text) {
if(text.substr(0,1)=="{"){
var oText = JSON.Parse(text);
for(key in oText){
IR.SetVariable("Server.Tags.Event_Out", key);
IR.Log('Successful: '+key);
}
}
});
});
  1. В переменную IFTTT_Token впишите свой ключ, который вы получили на странице документации Webhook;
  2. В переменную Script_google_URL впишите URL, который вы получили в последнем шаге настройки Gmail;
  3. В переменную Event впишите название события, по которому должно работать устройство.
примечание
  • Названия событий должны указываться в теме письма, которое будет приходить на Gmail.
  1. Добавьте драйверы с которыми вы будете работать (рассмотрим пример с Modbus TCP) и настройте их

IFTTT_14.png

  1. Создайте правило:

When=> в виртуальный тег Event_out придет название события из Gmail

IFTTT_37.png

примечание
  • Впишите имя события, которое будете указывать в теме письма

Then=> отправить команду на устройство

IFTTT_38.png

IFTTT_39.png

Подсказка

скачать:

Тестирование

  1. Загрузите проект на сервер
  2. Отправьте на адрес Gmail, на котором настроен скрипт Google письмо

IFTTT_40_1_1.png

примечание
  • В теме письма укажите название события, например, light_on.
  • В сообщении письма впишите свой уникальный ключ, который вы указали в переменной var l_sToken в скрипте Google.

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

IFTTT_40.png

Работа с IFTTT в iRidium lite

Работу с сервисом IFTTT в iRidium lite можно настроить через модуль Gmail. С помощью модуля Gmail можно настроить оповещение по почте о различных событиях, а также создать сценарий управления оборудованием через почту. Далее нужно будет только связать сервис Gmail с любым другим облачным сервисом, доступным в IFTTT.

примечание
  • Для работы с IFTTT требуется интернет подключение, а также аккаунт Google.
  • Рекомендуется использовать iRidium Server.

Рассмотрим 2 примера работы с данным сервисом:

  1. Отправка уведомления на почту, когда сработало устройство умного дома.

**Пример. ** Когда сработал датчик протечки, отправить уведомление об этом на почту.

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

**Пример. ** Когда пришло новое сообщение на почту, нужно включить систему отопления/кондиционирования.

Далее, на данных примерах, мы опишем настройку проекта iRidium lite.

Настройка модуля Gmail

  1. Добавьте в проект модуль Gmail for Server .

IFTTT_41.png

  1. Установите интервал, с которым модуль будет опрашивать сервис Gmail на наличие новых писем. Нажмите Add.

IFTTT_42.png

  1. Перейдите в модуль и авторизуйтесь в нем.

IFTTT_43.png

IFTTT_44.png

В открывшемся окне браузера необходимо нажать Advanced и в появившейся информации перейти по ссылке Go to iridiummobile.net

IFTTT_45.png

В появившемся окне нажмите Allow .

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

Отправка уведомления, когда сработало устройство умного дома

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

Для этого перейдите в раздел Правила и создайте новое серверное правило. (Работа с правилами)

В событии Когда настройте активацию датчика протечки:

IFTTT_46.png

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

Укажите E-mail, на который будет отправляться письмо, тему и текст сообщения

IFTTT_47.png

IFTTT_48.png

Готовое правило выглядит следующим образом:

IFTTT_49.png

На этом настройка закончена и можно протестировать правило. При замыкании контактов датчика на указанную почту отправится письмо с уведомлением.

Срабатывание устройства, когда на почту пришло письмо

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

Для этого перейдите в раздел Правила и создайте новое серверное правило. (Работа с правилами)

В событии Когда настройте модуль Gmail на просмотр новых писем с определенной темой:

IFTTT_50.png

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

IFTTT_51.png

IFTTT_52.png

В действиях укажите температуру или режим обогревателя.

IFTTT_53.png

Готовое правило выглядит следующим образом:

IFTTT_54.png

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