Алиса управляет светом Noolite и карнизом SmartLife

Apr 17, 2020 21:00

Я наконец-то разобрался, как заставить Алису управлять любыми умными устройствами, даже теми, которые пока не поддерживает умный дом Яндекса. Это делается с помощью сервисов Домовёнок Кузя и IFTTT.




Цепочка устройств и сервисов для управления светом получилась внушительная:

Алиса - Домовёнок Кузя - IFTTT - Универсальный WI-Fi пульт Broadlink - Noolite.

При этом всё отлично работает, задержка составляет не более трёх секунд.

Начнём с IFTTT (If This Then That). Этот сервис знает подавляющее большинство систем умного дома и управления устройствами и предназначен для автоматизации. Он может, к примеру, написать в твиттер заранее заготовленное сообщение, когда на улице пойдёт дождь или включить умную лампочку, когда вас упомянули в фейсбуке. Но мы его будем использовать для прямого управления устройствами из интернета. IFTTT будет давать команду устройству, когда происходит обращение по определённому адресу в интернете.

Заходим на https://ifttt.com и регистрируемся.
Создаём апплет для какого-либо действия, например включения лампочки. Щелкаем в свою аватарку и выбираем Create или просто переходим по адресу https://ifttt.com/create.



Нажимаем на "+" и попадаем в список сервисов-источников.



Пишем в поиске "Webhooks" и щёлкаем в голубой квадрат этого сервиса.



Щёлкаем в квадрат единственного доступного триггера "Receive a web request".



Придумываем и пишем простое имя для действия, например "lamp-on". Нажимаем "Create Trigger".



Условие создано, нажимаем второй плюс.



Мы попали в список действий.



Набираем в поиске название приложения, управляющего нужным устройством (например, ihc для Broadlink или SmartLife для карниза), и щёлкаем в иконку нужного сервиса.



Сервис попросит доступ к вашему аккаунту соответствующего приложения. После ввода логина и пароля от ihc попадаем в список команд. Если мы хотим включить лампочку, выбираем "Turn device on or off".



Выбираем устройство и действие и нажимаем "Create action".



Отключаем движок уведомлений и нажимаем "Finish".



Точно так же создаём апплеты для всех нужных действий.

Заходим в My Services (аватарка - My services или https://ifttt.com/my_services).



Нажимаем на "Webhooks"



Сверху нажимаем "Documentation" и видим вот такую картинку.



Копируем и сохраняем строку после "Make a POST or GET web request to:".

В моём случае это строка "https://maker.ifttt.com/trigger/{event}/with/key/Y7_exM2lhgyH". Вместо "{event}" вставляем имя нужного действия и получаем адрес, при переходе на который будет запускаться действие.

В моём примере имя действия было "lamp-on", соответственно адрес будет https://maker.ifttt.com/trigger/lamp-on/with/key/Y7_exM2lhgyH (не щёлкайте по нему, мой свет не включится - я изменил API-ключ :). Проверить работу действия можно, скопировав адрес в строку браузера и нажав Enter.

Теперь у нас есть список адресов, при переходе по которым запускаются нужные действия. Научить Алису переходить по этим адресам поможет Домовёнок Кузя.

Заходим по адресу https://alexstar.ru/smarthome.



Авторизуемся через Яндекс, нажимаем "Добавить правило IFTTT".



Пишем активационную фразу, например "включаем свет" и копируем наш адрес IFTTT с нужной командой в нём.



Все данные сохраняются автоматически, кнопки сохранения у Кузи просто нет.
Добавляем правила IFTTT для всех действий, заранее созданных в сервисе IFTTT.

Нажимаем "Виртуальные устройства умного дома".



Создаём новое устройство. Выбираем тип "Лампа" и называем наше устройство Люстра (это слово потом будет использоваться для команд Алисы). Выбираем созданные на предыдущем шаге правила для включения и выключения люстры.



Запускаем на смартфоне приложение Яндекс, заходим там в Устройства, Управление устройствами, нажимаем "+", выбираем "Добавить устройство", находим в списке Домовёнка Кузю, добавляем его и связываем аккаунты. В списке устройств умного дома Яндекса появилась Люстра, которой можно управлять.
Яндекс показывает множество команд, но нас интересуют "Алиса включи свет" или "Алиса включи люстру".



Теперь люстрой можно управлять голосом (если конечно есть колонка-ассистент).

Несколько нюансов и хитростей.
Для управления силовыми блоками Noolite используется Broadlink RM Pro или RM Pro+.



Сейчас это устройство стоит $37.9, я его покупал у этого же продавца на распродаже за $26.7 с учётом купона.

Broadlink RM Pro может запоминать команды ИК-пультов и радиокоманды 433 и 315 Мгц. При записи команды приложение iHC просит нажать кнопку на пульте и держать. В случае Noolite так делать нельзя (при удержании выключатель даёт другую команду). Нужно часто-часто щёлкать по кнопке выключателя, пока приложение не распознает это, как непрерывный повтор команды. Из-за этого не получится записать команду диммирования, но можно взять пульт Noolite, сохранить пару сценариев (например, минимальная яркость и средняя яркость) и записать эти команды.

C помощью Broadlink RM Pro и сервисов, о которых я писал выше, можно "научить" Алису управлять любыми устройствами с ИК и радиопультами.

Оказалось, что IFTTT не знает, что в SmartLife бывают карнизы и при попытке добавить действие в списке устройств было пусто. Но я нашёл выход: IFTTT умеет выполнять сценарии SmartLife. Я создал в приложении SmartLife два сценария с невозможными условиями: открыть шторы, когда в Москве будет температура ровно -40 градусов и открыть шторы, когда будет ровно -39. IFTTT, и Алиса через Кузю по командам "Алиса открой шторы" и "Алиса закрой шторы" выполняют именно эти сценарии.

Если в Домовёнка Кузю добавляются устройства уже после того, как Домовёнок добавлен в умный дом Яндекса, новые устройства в Яндексе сами не появятся. Чтобы они появились, нужно снова выбрать в приложении Яндекса добавление Домовёнка Кузи и нажать кнопку "Обновить список устройств".

Обнаружилось, что если в Яндексе есть несколько ламп (в моём случае две люстры в двух комнатах), команды "Алиса включи свет" и "Алиса выключи свет" включают и выключают все лампы, поэтому важно давать уникальные названия лампам в Домовёнке. У меня они пока называются "Люстра" и "Свет в спальне".

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

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

P.S. Второй день управляю светом и шторами голосом и это оказалось очень удобно.

© 2020, Алексей Надёжин

Основная тема моего блога - техника в жизни человека. Я пишу обзоры, делюсь опытом, рассказываю о всяких интересных штуках. А ещё я делаю репортажи из интересных мест и рассказываю об интересных событиях.
Добавьте меня в друзья здесь. Запомните короткие адреса моего блога: Блог1.рф и Blog1rf.ru.

Второй мой проект - lamptest.ru. Я тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.

Умный дом

Previous post Next post
Up