Русский
Русский
English
Статистика
Реклама

Как настроить управление умным домом через IFTTT и сэкономить


Мне всегда казалось, что главное в умном доме даже не возможности какого-то конкретного устройства, а способность этих устройств взаимодействовать между собой, реализуя сложные сценарии. Для этого уже не обязательно замыкаться на компонентах одного производителя, поскольку есть агрегаторы, вроде Google Home или навыков управления устройствами у Алисы. Однако некоторые сценарии им до сих пор не под силу. Сегодня поговорим о том, как это обойти с помощью IFTTT универсального посредника между веб-сервисами. И спойлер: в конце упомяну, как обойти ограничения самого IFTTT.

В двух словах о IFTTT


Мэшап сервису IFTTT уже около 10 лет, так что в подробном представлении он не нуждается. IFTTT помогает соединять между собой интернет-сервисы, которые не имеют прямой интеграции. Вместо проработки десятка разных интеграций создателям интернет-сервиса достаточно интегрироваться с одним IFTTT, который становится универсальным посредником, позволяя конечным пользователям определять направление передачи данных на сторону и задачи, которые решает интеграция.

IFTTT часто вспоминают в контексте автоматических репостов из одной социальной сети в другую. Его также легко применить для сбора полезной информации и задач. К примеру, работая в разных командах, в каждой из которых используется свой инструмент распределения задач, я агрегирую все, что назначается на меня в разных системах Trello, Asana и по электронной почте в личный Remember the milk (RTM).



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







IFTTT живет не только в виртуальном мире. Если компоненты умного дома или любые другие IoT-устройства имеют доступ в облако (и производитель интегрировал свой веб-сервис с IFTTT), вы сможете управлять ими через апплеты IFTTT.

Конечно, здесь есть масса оговорок. Сценарии могут быть только предельно простые если то, никакой сложной логики. Сервис понимает кириллицу в названиях апплетов и текстовых полях при их настройке, но не все функции работают в России и с русским языком. К примеру, в США у пользователей есть возможность сделать сценарий, который по некому событию звонит на мобильный телефон. Эта функция за пределами Штатов недоступна. Также с IFTTT не интегрированы многие популярные российские ресурсы (начиная от ВКонтакте и заканчивая Алисой).

Но сегодня речь пойдет не об этом, а о том, как IFTTT помогает работать с устройствами. Большая часть компонент умного дома, доступных на нашем рынке, производятся за пределами нашей страны и опираются на зарубежные веб-сервисы, и IFTTT среди них популярен.

Управляем умными устройствами на примере Sonoff


IFTTT интегрирован с самыми разными системами умного дома. В России продаются компоненты нескольких из них, но Sonoff (система eWeLink Smart Home) по субъективному впечатлению одни из самых популярных, в основном благодаря цене (на распродажах на AliExpress Wi-Fi реле можно купить за 300-400 рублей).

Что за устройства Sonoff?




Sonoff бренд недорогих реле, розеток, датчиков и выключателей, управляемых по Wi-Fi. Компоненты системы можно как купить в РФ, так и заказать из Китая. Они хорошо известны на Хабре благодаря тому, что умельцы прошивают использованный в них Wi-Fi модуль ESP8266, чтобы устройства не пытались обращаться в облако на Amazon, а работали внутри локальной сети (заменяя облачный сервис собственным хабом умного дома). Но для работы с IFTTT такая перепрошивка как раз не нужна.

Из коробки управление устройствами осуществляется со смартфона из приложения eWeLink (в теории есть и веб-интерфейс, но он в начальной стадии развития).

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

Хотя набор команд пока еще ограничен, приложение уже позволяет реализовать различные интересные сценарии. К примеру, можно включать и выключать ночник в комнате в соответствии с расписанием рассветов и закатов на конкретный день (функция настраивается один раз, и каждый день время переключения ночника немного изменяется в соответствии с астрономическими данными).

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

Подключаем eWeLink к IFTTT


При настройке умного дома потребность в IFTTT появляется в тот момент, когда хочется реализовать сценарий, не поддерживаемый производителем (например, по группировке устройств), или объединить несколько функций от разных производителей в единое целое. К сожалению, в последней версии приложения eWeLink производитель решил заработать на тех, кому недостаточно простых сценариев, и открывает интеграцию с IFTTT только на платном тарифе 9.99 долларов США с оплатой через PayPal в год. Это не такая большая сумма для эксперимента длиною в год.

Почему именно эксперимента? Потому что реальное удобство тех или иных сценариев показывает только длительное ежедневное использование. В нашей квартире умные устройства живут и сменяют друг друга уже не один год. Когда появляется новый компонент, в голове уже вьется десяток сценариев, которые он позволит воплотить. И первое время задействуются все. Но спустя месяц 9 из 10 перестают использоваться. А тот один, что выживает, претерпевает некоторые изменения за это время проходит тонкая настройка идеи под себя: сколько времени должен продолжать гореть свет в прихожей после того, как нажали кнопку? Какой уровень яркости должен быть у ночного освещения в коридоре? Какие пороги для показаний датчиков надо установить для отправки уведомлений, чтобы они не напрягали и т.п.

IFTTT позволяет реализовать массу сценариев и легко их перенастраивать.
Для иллюстрации подхода предположим, что мы хотим автоматически отключать термопот, когда я ухожу из дома дальше, чем на соседнюю улицу. Это реализуется элементарно:



Создаем новый апплет (Create). В качестве триггера (+This) выбираем сервис Location, который берет местоположение с устройства Android (или iPhone), где установлен клиент IFTTT (залогиненный под тем же аккаунтом, если вы настраиваете сценарий в веб-интерфейсе).





Для сервиса доступно 3 триггера. Нам подойдет You exit area.



Задаем адрес центральной точки зоны и радиус вокруг этого адреса (радиус регулируется увеличением / уменьшением масштаба карты). IFTTT приятно удивил тем, что понимает ввод адреса кириллицей. К сожалению, радиус не может быть слишком большим к примеру, нельзя обозначить зоной весь город-миллионник.



Создаем таким образом триггер (кнопка Create trigger внизу экрана).



Устанавливаем действие (+That) отключение реле eWeLink. Для этого подключаем сервис eWeLink Smart Home. После нажатия на Connect надо будет залогиниться в аккаунте eWeLink в отдельном окне.









Если авторизация пройдет успешно, появится целый список доступных действий для eWeLink Smart Home.



Нажимаем Turn 1-Channel Switch on or off и на следующей странице из выпадающего списка выбираем нужное устройство, а также требуемое состояние (on или off). В моем случае для подключения термопота используется именно реле, а не розетка, но если ошибиться и выбрать Turn 1-Channel Plug on or off, ничего не сломается.



Создаем действие кнопкой Create action и завершаем настройку апплета.



Более сложная задача реализация бота в Telegram для общения с домом. Для этого надо подключить сервис Telegram. Создавая соответствующие апплеты, можно добавить боту команды управления устройствами (включением / выключением света и отдельных устройств), а заодно разные полезные уведомления, в частности:
  • Напоминания о сдаче показаний счетчиков или об оплате коммунальных платежей. Автоматическая подача показаний в старом фонде недостижимая мечта. Добавить такое напоминание можно через Google Календарь, задав сценарий IFTTT, который на старте очередного мероприятия из этого календаря будет отсылать в чат сообщение с заданным текстом.
  • Уведомления о том, что в комнатах становится слишком жарко / холодно / сыро или сухо. У меня это было реализовано для ванной на время настройки пороговых значений для автоматики теплого пола. Идея была в том, чтобы использовать для управления теплым полом параметры воздуха в помещении (а датчик в самом полу оставить для аварийного отключения при перегреве). Параметры комфортного климата необходимо было выяснять экспериментально. Чтобы в ходе этих экспериментов не создавать некомфортных условий, на короткий период были настроены уведомления на минимальную температуру и максимальную влажность.
  • Уведомления о том, что что-то открылось или закрылось (по данным с датчиков).

Давайте создадим апплет, который по команде из чата в Telegram включает ночную подсветку в коридоре (как и термопот, подключенную через реле Sonoff). Начнем с подключения сервиса Telegram. Найдем его через Explore (вкладка Services):





Нажимаем Connect, чтобы подключить его к своему аккаунту. После приглашения переходим в Telegram и добавляем бота в контакты.





Нажимаем Start, чтобы авторизоваться.



После перехода на IFTTT для авторизации, нам доступны все возможности общения сервиса с мессенджером.



Теперь возвращаемся в IFTTT и начинаем создавать апплет.



В качестве триггера выбираем Telegram.



Нам подойдет триггер New message with key phrase to @IFTTT.



Пусть ключевой фразой будет ночной свет, а ответом на мое сообщение одно слово Включаю (помним, что сервис чувствителен к строчным / заглавным буквам).



Переходим к настройке действия.



Как и в прошлом примере выбираем включение реле сервиса eWeLink Smart Home. На этот раз только в списке устройств нужно выбрать то, что соответствует подсветке.



С уведомлениями все работает также, только триггером будет выступать какой-то другой сервис (например, датчик из eWeLink Smart Home), а действие будет выполнять Telegram слать сообщение определенного содержания.

Как упоминалось выше, в сегменте умного дома IFTTT не ограничивается поддержкой только устройств Sonoff это лишь пример под рукой. Есть масса производителей, которые уже интегрировались с сервисом, и еще больше советов пользователей о том, как обойти отсутствие интеграции, например с Xiaomi Mi Home (спойлер через уведомления на мобильном устройстве под Android).

Когда и IFTTT не хватает


Логика IFTTT довольно проста: одно условие одно действие. На базе этой логики можно сделать интересные вещи, но рано или поздно этого становится мало. К сожалению, сервис не позволяет задавать цепочки действий (для каждого из них придется создавать собственный сценарий), также как не позволяет строить сложные условия, состоящие из нескольких частей с логическим и или или.

Но и это можно обойти при помощи надстройки. Речь идет о сервисе apilio.com, задача которого добавить более сложную логику в IFTTT. Подключение дополнительного инструмента, конечно, будет еще одним уровнем усложнения системы, зато приблизит настройку сценариев умного дома к программированию можно будет задавать переменные, менять по срабатыванию триггеров их значения, конструировать условия и т.п.

Покажу, что может Apilio, на примере усложнения сценария с отключением термопота.
Изначально реле термопота выключается на ночь (с 2 ночи до 8 утра) и когда я покидаю заданную в IFTTT зону. Но что если кроме меня дома живет еще кто-то? Согласитесь, будет неудобно, если подогрев воды будет отключаться каждый раз, когда я ухожу на работу. Логичнее просто напоминать о том, что термопот включен, если я не дома в определенное время (в момент включения термопота после ночной спячки) после обдумывания сценария мне показалось, что это самый лучший индикатор того, что я куда-то уехал надолго.

Для этого:
  • Регистрируемся на сервисе Apilio;
  • Создаем 2 булевые переменные, которые по умолчанию имеют значение false (пусть они называются location и teapot);





  • Создаем два условия: I_exit_area (которое становится true, если я вышла за обозначенную в IFTTT зону) и I_forgot_teapot (true, если чайник включился);





  • Настраиваем взаимную интеграцию Apilio и IFTTT. В IFTTT надо включить сервис Webhook и указать ключ этого сервиса в Apilio, чтобы последний мог слать уведомления в IFTTT (ключ это последняя часть URL, на скриншоте он замылен). Для интеграции в другую сторону в IFTTT надо подключить сервис Apilio;



  • Задаем сценарии IFTTT для изменения переменных location и teapot (триггером будет включение термопота в eWeLink и выход из заданной зоны в сервисе Location, а действия изменение соответствующих переменных на true в сервисе Apilio, для этого в сервисе предусмотрено Update a variable in Apilio to true);









  • Создаем логическую схему: при одновременном выполнении этих двух условий в сервис IFTTT будет отправлено уведомление;



  • Настраиваем сценарий IFTTT на прием этого уведомления (триггером будет уведомление из Apilio, а действие отправка сообщения в Telegram с предупреждением).

Результат: если что-то заставит термопот включиться в тот момент, когда я далеко от дома, я получу в Telegram вопрос: А не забыл ли ты выключить чайник?
В бесплатной версии сервис Apilio позволяет задать одну логическую схему и для эксперимента этого достаточно. Стоимость годовой подписки начинается от 7.2$. Как и у самого IFTTT, у сервиса уже есть масса аналогов думаю, можно подобрать что-то бесплатное под свои задачи. Важно только понимать, что открывая доступ новому сервису к своему умному дому вы в каком-то смысле делитесь с ним личными данными так что безопасность здесь не последний вопрос.

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

Источник: habr.com
К списку статей
Опубликовано: 27.07.2020 12:16:39
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании ruvds.com

Diy или сделай сам

Лайфхаки для гиков

Diy

Diy умный дом

Умный дом

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru