где взять такое устройство
Яндекс: умный дом по-взрослому
Недавно компания Яндекс запустила свою систему «умного дома». Нам предлагают купить недорогие работающие по Wi-Fi устройства: адаптер в розетку, лампочку и ИК пульт. Интересно, что у разработчиков «умных» устройств появилась возможность создать свои навыки «умного дома», это позволит подключить девайсы к системе Яндекса и управлять ими голосом через Алису. В списках навыков появляется всё больше новых брендов. Алиса прекрасно понимает русскую речь, что делает ее безусловным лидером среди голосовых ассистентов на российском рынке.
Однако, не всё так гладко…
Первый минус: в основном, все предложенные системы — «облачные». Их надежность порой вызывает сомнения, так как их работоспособность на прямую зависит от качества соединения с серверами производителя. А при отключении интернета устройства вовсе превращаются в “тыкву”.
Второй минус: система сценариев. Немаловажная часть умного дома — сценарии. И тут они очень примитивные: Если “фраза такая-то”, то включить “устройство такое то”. Для моего умного дома этого оказалось слишком мало.
Минусы на этом не заканчиваются, но остальное связанно скорее с незрелостью системы. Команда разработчиков Яндекса продолжает активно добавлять различные фичи, а баги — править, за что им большое спасибо!
Изучив документацию, я решил создать навык Яндекс УД и подключить к нему контроллер умного дома. Это позволит не зависеть от облачных серверов, реализовывать любые сценарии локально на контроллере и при этом управлять системой голосом через Алису. Для этого я написал плагин “yandex2mqtt” на Node.js.
Немного теории
— Алиса, включи свет.
После этой фразы происходит магия и включается свет. Но что же за кулисами? Давайте разбираться, как всё это работает.
Яндекс-станция, услышав знакомую команду, отправляет данные на сервер Яндекса, которому мы заранее указали адрес нашего контроллера. Сервер обрабатывает информацию и перенаправляет ее на контроллер в виде Post-запроса. На контроллере промежуточный API (в нашем случае это плагин yandex2mqtt) обрабатывает запрос и перенаправляет его в MQTT топик. Дальше происходит обработка сценария в программе Node-Red.
Node-Red решает, что делать дальше. Если это предусмотрено сценарием, он посылает команду на включение света в соответствующий топик MQTT. Драйвер wb-mqtt-serial реагирует, посылая команду по Modbus на релейный модуль, тот переключает реле. И наконец-то включается свет! Да, путь не близкий, однако для пользователя проходят считанные доли секунд.
Давайте посмотрим на плагин yandex2mqtt поближе. Первое, что требует Яндекс для работы навыка, — oAuth сервис для связки аккаунтов в приложении Яндекс. После того как Яндекс получит токен авторизации от oAuth сервиса, он запрашивает список устройств. Плагин yandex2mqtt отдает в ответ список устройств со всеми свойствами в json формате. Затем они появляются в списке доступных для управления устройств (в так называемом квазаре). Теперь, если скомандовать Алисе включить какое-то устройство из списка, Яндекс пошлёт Post запрос с данными устройства, которое он хочет включить, на контроллер. В ответ плагин подтверждает включение и записывает новое состояние в mqtt топик, указанный в настройках все того же плагина. Если же устройство изменило свой статус без участия Яндекса, то плагин, увидев новые данные в mqtt топике, отправит их Яндексу при запросе статуса, который сейчас происходит, только если зайти в само устройство в квазаре. В иных случаях Яндекс не опрашивает статусы.
Теперь расскажу о некоторых свойствах устройств Яндекс УД.
Тип устройств
Для правильного отображения в “квазаре” и более точного определения команд Алисой Яндекс предлагает присваивать устройствам разные типы. Всего типов 10:
Умение (capability)
Также у каждого устройства должно быть минимум одно умение (capability).
Всего у Яндекс УД есть 5 типов умений. Каждое умение имеет разную функцию (instance), а некоторые умения имеют несколько таких функций, что добавляет гибкости при настройке устройств.
1. devices.capabilities.on_off — Включение и выключение.
При правильной комбинации всех свойств устройства Алиса без проблем понимает все отданные ей команды по управлению Умным домом. Тут, конечно, есть некие трудности с комбинированием умений. В документации явно не указано, какие умения можно комбинировать, а какие нельзя. Но с этим нам поможет “метод научного тыка”.
Так, к примеру, я выяснил, что кондиционер содержит четыре умения:
Чтобы всё заработало, требуется:
Контроллер
Моя “умная” квартира управляется контроллером Wiren Board 6. Но можно использовать любой другой контроллер на линуксе, который потянет Node.js и Node-Red. Например, Raspberry pi или ПК.
Домен
Желательно, конечно, иметь белый IP адрес и купить домен, но это необязательно. Можно использовать DDNS — например, www.noip.com.
Тут всё просто: регистрируемся, создаем бесплатный хостнейм, вписываем свой IP адрес. У некоторых роутеров есть специальная настройка DDNS, куда можно вписать данные noip.com. Роутер будет автоматически отправлять IP адрес при его смене. Если такой настройки в роутере нет, можно установить программу noip на контроллер и добавить её в автозапуск. Программа будет делать ровно то же самое, что и роутер со специальной настройкой DDNS — обновлять Ваш ip адрес в базе noip.com
Таким образом, мы имеем статический адрес, который перенаправляет все запросы на наш контроллер.
Порты 443 и 80
Сейчас почти у каждого человека дома есть роутер. Помимо очевидных его функций, он также является барьером для локальной сети от нежелательных гостей извне. Но в определённых случаях нам требуется доступ к внутренней сети снаружи. Производители роутеров это предусмотрели и добавили функцию NAT (Network Address Translation).
Момент настройки роутера я расписывать не стану, так как он разный для каждого производителя. Как это сделать, читайте в инструкции к Вашему роутеру. Ключевые слова для гугления: Port Forwarding, Port Mapping, NAT.
Необходимо пробросить порт для доступа к yandex2mqtt (может быть любой, я выбрал 443) и 80 порт (нужен только для получения SSL сертификата. После получения сертификата 80 порт можно закрыть).
SSL-сертификат
Сразу расставим все точки над «и»: самоподписанные сертификаты работать не будут.
Большинство регистраторов доменов (например, reg.ru) дарят своим клиентам бесплатные SSL-сертификаты для основного домена (www.yourdomain.ru). Если вы купили домен специально для Алисы, то Вы можете воспользоваться предоставленным SSL-сертификатом.
Если же собственного домена Вы не имеете, либо для Алисы у Вас выделен другой поддомен (например, alice.yourdomain.ru), то нужно получить сертификат на этот поддомен, либо на адрес, предоставленный DDNS-службой.
Для этого предлагаю воспользоваться бесплатной услугой получения SSL-сертификата от letsencrypt.org.
Для получения сертификата необходимо установить программу certbot, запустить и указать все данные, которые она запросит. При этом должен быть свободен и доступен снаружи порт 80. Я советую внимательно изучить инструкцию от letsencrypt.
Останавливаем сервисы watchdog и nginx.
Пробрасываем 80 порт в роутере.
Запускаем программу certbot:
После запуска программа задаст несколько простых вопросов
1. Ваш e-mail. Просто введите адрес и нажмите enter
2. Вам предлагают прочесть пользовательские соглашения. Если вы со всем согласны, просто введите “A”, что означает Agree, то есть согласен.
3. Программа просит разрешения на отправку Вашего адреса электронной почты разработчикам. Введите N.
4. Введите свой домен, на который хотите получить сертификат (можно ввести тот, что мы получили в noip ранее). Тут я привожу пример ошибочного ввода. Префикс http:// вводить не нужно.
Если Вы всё сделали правильно, то увидите следующее:
Значит, сертификат успешно получен. Запомните путь к сертификату и ключу, он потребуется при настройке плагина yandex2mqtt. Для безопасности закройте 80 порт в настройках роутера, он больше не пригодится.
Включаем сервисы watchdog и nginx.
Сертификат от letsencrypt выдаётся на 3 месяца. Не забывайте обновлять.
Node.js и плагин yandex2mqtt
Настраиваем репозиторий node.js
Далее устанавливаем или обновляем все необходимые компоненты
После успешной установки копируем репозиторий yandex2mqtt на контроллер.
Cоздайте юнит systemd:
Перейдите в папку /etc/systemd/system/ на контроллере и создайте файл с названием yandex2mqtt.service. Скопируйте в него следующее:
После этого сохраните изменения и закройте файл.
Для включения юнита введите в консоль команду:
Теперь можно запускать и останавливать плагин командами
Все необходимые настройки плагина находятся в файле /mnt/data/root/yandex2mqtt/config.js
Отредактируйте этот файл в соответствии с Вашими параметрами.
SSL-сертификат обязательно должен быть fullchain.
После настройки запустите yandex2mqtt командой:
После настройки и запуска моста советую проверить сертификат на этом сайте.
Просто введите свой домен, который собираетесь использовать для доступа к Алисе. Для корректной работы сертификат должен пройти все проверки. Иначе ничего не заработает.
Навык Яндекс УД
1. Перейти на страницу dialogs.yandex.ru/developer
2. Залогиньтесь под своим аккаунтом.
3. Нажать “создать диалог”
4. Выбрать пункт “Умный дом”
5. Ввести обязательные параметры:
6. Связка аккаунтов:
2. Секрет приложения — clientSecret
8. Нажать “На модерацию”
9. Нажать “Опубликовать”
1. Зайти в приложение Яндекс на телефоне
2. В меню выбрать Устройства/Умный дом
3. Нажать “Добавить устройство”
4. Выбрать свой навык
5. Нажать “Объединить аккаунты”
6. Откроется страница авторизации
Ввести логин и пароль (задается в файле config.js в блоке users)
7. Нажать “Разрешить”.
8. Нажать “Обновить список устройств”
Теперь Алисе можно отдавать команды для управления добавленными устройствами. В указанные mqtt топики будут приходить соответствующие команды.
Осталось привязать к этим топикам какие-то действия.
Node-Red
Для системы автоматизации был выбран Node-Red. Это отличный инструмент визуального программирования. Процедуру установки и настройки можно подсмотреть тут.
Процесс настройки и автоматизации умного дома потянет на целую статью, а то и две. Да и таких статей уже много. Вместо этого — небольшой пример использования плагина, как включить лампочку голосом.
Для удобства на контроллере Wiren Board 6 в веб интерфейсе создаем виртуальное устройство.
В движок правил wb-rules нужно вписать
MQTT топики этого виртуального устройства впишем в config.js на тип умения “on” устройства “Свет”:
Теперь при фразе “Алиса, включи/выключи Свет” переключается виртуальное устройство.
Перейдем в Node-Red, который установили по инструкции.
Для удобной работы с Wiren Board 6 также можно использовать дополнительную “ноду” node-red-contrib-wirenboard.
В контроллер поставлен модуль расширения WBE2R-R-ZIGBEE, что позволило подключиться к “Икеевской” умной лампочке серии ТРОДФРИ по ZigBee-протоколу.
Теперь дело за малым. Закинуть несколько блоков в рабочее поле Node-Red, соединить “ниточками” и нажать Deploy.
Икеевская лампочка подключена через плагин zigbee2mqtt, поэтому в mqtt топик лампочки для управления нужно отправлять json. Для этого между виртуальным девайсом WB и mqtt топиком лампочки вставим простую функцию.
Нажимаем Deploy. Проверяем.
Итак, сегодня мы научились подключать Алису к системе автоматизации. Возможно в некоторых случаях это слишком сложно, проще купить обычную wi-fi лампочку, и этого хватит. Но если Вы задумали собрать себе по-настоящему умный дом, то простыми способами тут не обойтись. А стоит оно того или нет, каждый решит сам. Спасибо за внимание!
Устройства Умного дома Яндекса. Плюсы и Минусы
Ваши знакомые уже автоматизировали дом, а вы не знаете, с чего начать? Умный дом не так сложен, как кажется с первого взгляда. Современные технологии призваны облегчить быт, наполнить жилище комфортом. Они просты в обращении и легко подключаются. Каждое устройство содержит подробную инструкцию, разобраться в ней не составит труда.
Начинающим пользователям рекомендуем попробовать Умный дом Яндекса, который имеет ряд преимуществ перед другими крупными производителями:
Отзывы о технологиях встречаются как положительные, так и отрицательные. Пропиарить себя Яндекс может сам, а мы, в интересах потребителя, попробуем найти и минусы.
Совместимость устройств
Для начала требуется понять, как работает система, из чего состоит и какие функции выполняет. Управление многочисленными разнофункциональными приборами, подбор совместимой техники – главные задачи разработчиков.
Интерактивный голосовой ассистент умеет управлять техникой: Samsung, Philips, Elari, Rubetek, Redmond, Xiaomi. Облачные платформы данных производителей интегрируются с Яндексом, многие гаджеты совместимы с Алисой. Можно установить в квартире лампочки и розетки Яндекса, подключить хлебопечь и кофеварку Redmond, пылесос Philips и датчик утечки газа Xiaomi. Система будет функционировать.
Совместимые устройства маркируются наклейкой: «Работает с Алисой». Список компаний с данным маркером обещают пополнить Bosch, SonOff, Sapfir, Sapfir, LG.
Устройства от Яндекс
Список собственных интерактивных модулей у производителя пока минимальный, но даже с таким набором вы найдете идеальное решение для своего дома. К ним относятся:
Лампочка
В каждой комнате можно создать несколько групп из светильников различной интенсивности. Комнатам и группам присваивают названия для корректного распознавания команд.
Яндекс.Лампа подключается через приложение Яндекс. Но для использования светильников Xiaomi понадобится приложение данного производителя. Только после привязки в нем, можно объединить аккаунты брендов и управлять лампой.
Розетка
Если у вас нет «умных» бытовых устройств, выручат специальные розетки. С их помощью вы присоедините любые «не умные» электроприборы. Управляя розетками можно включить чайник, утюг, электроплиту и робот-пылесос. Дополнительно гаджет снабжен кнопкой отключения питания. Управляется с приложения и голосом. Работает по Wi-Fi. Гарантия от производителя 1 год. Стоимость 1190 руб.
Пульт дистанционного управления (ДУ)
Не известно, чья была идея создать интерактивный пульт в виде круглого камушка, но задумка удачная. Такой совсем нестандартный вид пульта придал гаджету функцию всенаправленности. По периметру окружности размещаются датчики. Благодаря этому, зона охвата пульта 360°. Дальность действия сигнала 18 метров. Крепится ДУ на двухсторонний скотч. Стоимость 1390 рублей. Это недорого, с учетом управления сразу несколькими бытовыми приборами.
Питается устройство через кабель USB, а с Яндекс.Станцией и другими модулями связывается по сети Wi-Fi.
Для синхронного управления несколькими модулями, необходимо создать сценарии, обозначить их ключевыми словами. Например:
Разнообразие сценариев ограничивается только фантазией и подключенными устройствами.
Яндекс.Станция с голосовым ассистентом Алисой представляет собой смарт-колонку с выходом в интернет через Wi-Fi роутер. Подходит для управления Умным домом, быстро принимает решения согласно команде. Имеет встроенные динамики (мощность звука 50 Вт), 7 микрофонов и панель управления. Светодиодная подсветка информирует о режиме работы. С другими устройствами соединяется по Wi-Fi и Bluetooth. Регулировать громкость можно голосом и приближением ладони к верхней панели колонки. При первом включении Алиса сама подскажет, как ее подключить.
Алиса поддерживает беседу, работает с поисковиком, включает музыку по запросу. Способности пока ограничены, но производитель обещает научить Алису новым функциям.
Колонка с интерактивным помощником Алиса может:
Кроме команд через звуковую колонку, Алиса воспринимает команды со смартфона, смарт-часов Elari KidPhone 3G, интерактивных колонок Dexp Smartbox, Elari SmartBeat и Irbis A, наушников Sony. Яндекс.Телефон объединил все технологии производителя в интерфейсе Алисы.
При покупке колонки вы получаете в подарок три месяца пробных подписок на сервисы Яндекс.Плюс, «Кинопоиск», «Амедиатека», Ivi.
Главная фишка
Как же работает «Умный дом»? На самом деле мозг системы находится не в Интерактивной колонке, не в приложении и, конечно, не в пульте управления. Все голосовые команды, которые вы дали Алисе, попадают на сервер Яндекса. Вот там то и принимается решение о дальнейших действиях.
Если команда предназначена для техники другого бренда, например, Xiaomi, то команда отправляется дальше, на сервера Xiaomi. Там команда обрабатывается и идет обратно, к тому устройству, для которого предназначена. Несмотря на долгий путь, выполнение команд составляет несколько секунд. Главное – качественное интернет-соединение.
Приложение и интерактивная колонка являются только промежуточными пунктами управления. Все команды анализируются, а потом создаются новые для каждого устройства на облачных серверах.
Управление из приложения
С помощью приложения вы будете управлять не только техникой компании Яндекс, но и совместимыми приборами других производителей. Для начала следует связать все устройства в единую систему с помощью мобильного приложения. Универсальное приложение, которое объединяет все сервисы Яндекса, вы скачаете на:
В основном меню, в разделе «Устройства», добавляем все подключаемые приборы. Так формируется умный дом. «Родные» модули подключаются сами в режиме поиска. Имя каждому модулю выбирает вы (не выбирайте сложные имена, придется произносить голосовые команды). В приложении используется русский язык, что упрощает пользование приложением. Управление бытовой «неумной» техникой возможно через интерактивную розетку (не обязательно Яндекс).
В мобильном приложении можно задать сценарии команд для нескольких модулей. Благодаря этому, вы получите сразу и яркое освещение, и готовый горячий кофе, и включенный канал новостей.
Заключение
«Умный дом» создаст уют и комфорт в жилище. Настраивается система легко, а управление голосом доставит удовольствие всем членам семьи. Яндекс не обладает богатым набором «своих» устройств, зато прекрасно работает с другими производителями. В продаже много техники с наклейкой «Работает с Алисой». Платформа Яндекса открыта для всех, любой бренд может бесплатно интегрировать гаджеты в Умный дом. Команды проходят через сервера Яндекса и сервера сторонних брендов.
Алиса разговаривает и принимает команды на русском языке, является прекрасным посредником между модулями. Она умеет вести диалог, рассказывать сказки детям.
Скромный набор гаджетов позволит управлять даже «неумной» техникой. С помощью розетки вас будут слушаться все имеющиеся электроприборы. Специальный пульт может управлять техникой, неподключенной к системе. Создавая новые сценарии, вы добьетесь синхронной работы целой группы бытовых устройств. Для корректного выполнения команд необходимо лишь наличие интернет-соединения и Wi-Fi роутера. Стоимость розетки, лампочки и пульта доступна покупателям.
Начать можно с интерактивной колонки и пары управляемых устройств, далее – постепенно расширять комплект. С умными устройствами дом станет комфортнее, ведь вам не придется больше искать пульт от бытовых приборов, тянуться к выключателям или искать в интернете любимую музыку. Это сделает умная техника.
Купить по подписке
Станция по подписке — это эксклюзивная колонка, которая поступает в продажу ограниченными партиями.
Чтобы проверить, безопасно ли покупать конкретное устройство, воспользуйтесь инструкцией.
Особенности Станции по подписке
На один аккаунт на Яндексе можно оформить подписку на каждый тип устройства и пользоваться ими одновременно. Например, Станцию Лайт, одну Станцию Мини любого цвета и один Модуль.
Оформить подписку на Станцию можно только на территории России.
Подробнее об условиях подписки читайте в пользовательском соглашении.
Как оформить
Если для входа на Яндекс вы используете профиль соцсети или номер телефона, измените тип вашего аккаунта по инструкции.
Если у вас уже есть подписка Яндекс Плюс, в большинстве случаев она изменится на новую автоматически. Оставшийся оплаченный период подписки Яндекс Плюс станет доступен через один или три года (в зависимости от условий при покупке) — после окончания подписки на устройство.
Чтобы купить Станцию по подписке:
Как оплачивать
Если вы ранее купили красную Станцию по подписке за 389 рублей в месяц и пользуетесь подпиской Плюс для одного человека, стоимость и тип вашей подписки не изменятся.
Если вы купили серую или черную Станцию по подписке за 599/499 рублей в месяц, для вас стоимость останется прежней.
Пожалуйста, следите, чтобы срок действия карты не истек и на счете была необходимая для оплаты подписки сумма, иначе колонка заблокируется, а задолженность будет накапливаться.
Вы можете использовать все бонусы Плюса сразу после оплаты, не дожидаясь, пока курьер доставит вам устройство. Срок доставки зависит от вашего региона. Подробную информацию о сроке доставки мы отправим на электронную почту.