навыки алисы умный дом
Об умном доме
Навыки умного дома — специальная категория навыков Алисы, предназначенных для голосового управления домашними устройствами. Например, пользователь может попросить Алису включить чайник, установить нужную температуру в обогревателе, выключить свет в детской или сделать телевизор потише.
Официальные и неофициальные навыки
Навыки умного дома делятся на два типа:
Когда ваш навык успешно пройдет модерацию, он будет установлен как официальный и может быть опубликован.
После того как вы опубликуете официальный навык, устройства, работающие с этим навыком, будут отображаться на Яндекс.Маркете с бейджем Алисы.
Полезные ссылки
Об умном доме
Навыки умного дома — специальная категория навыков Алисы, предназначенных для голосового управления домашними устройствами. Например, пользователь может попросить Алису включить чайник, установить нужную температуру в обогревателе, выключить свет в детской или сделать телевизор потише.
Официальные и неофициальные навыки
Навыки умного дома делятся на два типа:
Когда ваш навык успешно пройдет модерацию, он будет установлен как официальный и может быть опубликован.
После того как вы опубликуете официальный навык, устройства, работающие с этим навыком, будут отображаться на Яндекс.Маркете с бейджем Алисы.
Альфред — Умный дом
Описание
Навык позволяет управлять некоторыми Wi-Fi устройствами для умного дома напрямую через Алису. Например, командами «включи свет», «выключи свет» или, не запуская навык, командой «Алиса, попроси А́льфреда включить розетку».
Навык «Альфред» используется в паре с мобильным приложением «Альфред — умный дом». Для начала использования необходимо установить это приложение, получить проверочный код, произнести команду «Добавить код» и назвать цифры.
Альфред поддерживает любое умное устройство, совместимое с IFTTT. Например:
— Xiaomi Yeelight
— Philips Hue
— Sonoff eWeLink
— TP-Link Kasa
— Nanoleaf
— Samsung SmartThings
— и многие другие
Активация навыка
Чтобы воспользоваться навыком, скажите Алисе одну из команд:
Обратите внимание
Навык можно активировать в любом продукте Яндекса, в который встроена Алиса, и в котором доступен ввод текста — в Браузере, Алисе для Windows и т. д. Обратившись к Алисе с командой «попроси Альфред включить свет» и следуя инструкциям голосового помощника.
Другие навыки
Dealgate
Шарики Светишарик
С помощью этого диалога пользователь может заказать воздушные шары с доставкой в Красноярске. Диалог поможет вам: узнать как заказать шары, ознакомиться с условиями доставки в Красноярске, уточнить контакты компании оказывающей эти услуги, а также перейти на сайт, где ознакомиться с услугами более детально.
LifeSmart Connect
## Как настроить 1. Скачайте приложение LifeSmart из Google Play или App Store. 2. Авторизуйтесь в приложении LifeSmart c аккаунтом LifeSmart, выбрав в качестве региона Россию или Китай. 3. Настройте устройства в приложении LifeSmart. 4. В приложении Яндекс перейдите в раздел «Устройства». 5. Выберите пункт «Умный дом». 6. Нажмите кнопку «+», выберите «Добавить устройство». 7. Выберите «LifeSmart» из списка производителей. 8. Нажмите «Объединить аккаунты». 9. Авторизуйтесь, используя аккаунт из шага 2. ## Голосовое управление Чтобы узнать, какие команды поддерживаются для вашего устройства: * Зайдите на страницу управления этим устройством в приложении Яндекс. * Откройте вкладку «Голосовые команды.» ## Поддерживаемые устройства * осветительные приборы * розетки * переключатели * шторы * термостат * кондиционер * Сенсор серии ## Поддерживаемые регионы * Китай * Россия
«Умный дом» с Яндекс.Алисой
Всем привет! Хочу рассказать о том, как одной маленькой девочке захотелось поюзать навыки Алисы, интегрироваться в «умный дом» крутого продукта MySmartFlat, какие встали преграды на пути, и вообще, каково это — быть девушкой — программистом?
Создать навык — это просто. За пол часа можно реализовать простейший чат — бот. И отправить на модерацию. И даже пройти ее.
IoT знакомая вещь для многих сейчас, и крутое дополнение к таким комплексам — голосовое управление. Подумали мы с коллегами и решили попробовать Алису. А еще и колонка есть. И всё очень круто.
Люблю php ( кто бы и что не говорил), а документации нет. Разобраться оказалось проще простого. Слава богу работаю там, где уже есть и нужные безопасные сервера и всё остальное, т.к. хоть и программист — но совсем не хотелось разбираться в установке сертификатов и т.д. Иногда женское нутро берет своё… Но сейчас не об этом. Вот есть на руках нужный вебхук, и голова на плечах. Всё необходимое.
Вебхук — скрипт, куда летят все пользовательские запросы, который обрабатывает и управляет, выдает ответ.
Начала тривиально пробовать баловаться светом ( у нашей платформы есть API, и разбираться с тем, как происходит это всё аппаратно, мне тоже не потребовалось. Единственное, имея техническое образование, мне пригодились навыки обращения с реле, контроллерами и т.д.). Вся сложность заключалась в тактичном, правильном и разнообразном подходе к тому, что говорит и хочет пользователь. Чем дальше, тем больше в дебри, особенно, когда поняла, что так, как вижу я (и так, как сказала бы я) совершенно не так, как сказал бы пользователь нашей платформы. Я хочу » Включить свет «, а пользователь «врубить» и т.д. Обдумав кучу вариантов, получив десятки фидбеков, как итог — крутой, полноценный навык, в 20 тысяч строк кода на управление освещением, температурой, системами защиты от протечек, бытовой техникой и т.д. Особенно круто с использованием станции — не нужно вообще ничего нажимать и открывать. Достаточно только иметь хотя бы одно наше устройство — и навык «Моя квартира» уже будет доступен.
Я обучила Алису включать/выключать освещение в определенной комнате и даже определенные каналы, если в устройстве их несколько, рассказывать о климате в помещение и регулировать температуру воздуха и пола, ориентируясь на данные из устройства. Смогу даже музыку сделать громче и канал на телевизоре переключить.
В течение времени модернизировалось наше приложение, вся наша платформа, и появилась у пользователей возможность в приложении изменять названия всех своих устройств, нагрузок на реле и прочего. Моя голова вскипела, т.к. встала новая задача и причем спиной ко мне — как Алиса должна понимать, что хочет включить пользователь? Допустим, устройство в приложении называется ПОДСВЕТКА ЗЕРКАЛА, а Алисе говорит: «Алиса, включи свет в ванной». Юзер понимает, что он хочет включить подсветку зеркала, а как быть мне? Мой скилл прокачан не настолько, чтобы запилить искусственный интеллект, и я научила ее переспрашивать пользователя и запоминать.
В общем, это всё было бы еще круче, если бы не:
1. Использование на Яндекс.Станции не очень, как оказалось, удобно. В навыке вы находитесь, пока взаимодействуете. Т.е.: «Алиса, запусти навык… включи свет, выключи. » и т.д. Проходит 30 с, и вы молчите — оп, и вы уже не в навыке. И приходится снова: «Алиса, запусти навык. ». Да куда проще и быстрее нажать на кнопку в приложении.
2. Нужно оптимизировать свои серверные настройки, обработки фраз и всё остальное настолько, чтобы скрипт обрабатывался и выдавал ответ не более, чем за 1.5 с. Иначе, Алиса говорит: «Извините, навык не отвечает» и вылетает из него. Всё бы ничего, но пришлось сильно повозиться, т.к. много устройств, запросов в базу и на управление. Но проблема решаема.
Яндекс пообещал сделать лучше жизнь разработчикам умных домов, и адекватно и быстро реагируют и отвечают на все пожелания и вопросы.
Не смотря на все подводные камни, управление голосом дает наглядно увидеть и понять, для чего вообще это всё нужно. Всем IoT!
Как научить Алису управлять вашим умным домом. Доклад Яндекса
В конце сентября прошла наша первая встреча для hardware-разработчиков — Яндекс.Железо. Это важный шаг на новом для нас рынке производителей устройств. Участники (около 150 человек) послушали доклады, пообщались и провели много времени на стендах, где можно было заглянуть внутрь беспилотного автомобиля, обезвредить «бомбу», перерезав нужные провода, разобрать Яндекс.Станцию (рекорд — 6 минут 23 секунды), а также протестировать бортовой компьютер Яндекс.Авто и умный дом.
Как раз о платформе умного дома и поговорим сегодня. Весной мы запустили её для всех разработчиков, а на Яндекс.Железе руководитель разработки платформы Марат Мавлютов подвёл первые итоги и показал, как наладить управление устройствами. Из доклада можно узнать о терминах голосового API, способах описания и взаимодействия с девайсом пользователя.
— Давайте поговорим про умный дом. Как сделать ваш дом чуточку умнее, чтобы ни один котик не остался голодным и все ворота в Екатеринбурге открывались? Давайте начнем с самого начала, поймем, что вообще такое умный дом. Как нам кажется, это дом, где не нужно искать розетку, которая спряталась за шторой, или выключатель. Это дом, где не нужно искать пульт от телевизора, телефон с приложением, который может управлять вашим чайником или лампочкой. Это дом, который понимает вас, в котором человек использует самый нативный, естественный для него интерфейс — голос.
Зачем вообще мы туда полезли и что мы хотим получить? Мы очень хотим сделать так, чтобы наш голосовой помощник был именно помощником, чтобы он мог не только включить музыку или видео, а помогал в самых естественных, бытовых вещах.
Также мы понимаем, что не можем написать вообще весь код в мире и интегрироваться со всеми устройствами. Именно поэтому мы хотим этот голосовой интерфейс предоставить разработчикам, компаниям, людям, которые уже умеют делать устройства и делают их классными. Компания Ericsson говорит, что к 2021 году по всему миру будет 28 млрд подключенных устройств умного дома. Это значит, на минуточку, что если представить весь земной шар интернетизированным, то у каждого человека будет в среднем по четыре устройства.
Перед самым запуском мы провели исследования, чтобы понять, как люди пользуются умным домом, что они хотят увидеть, чем они хотят управлять. Мы выбрали три самых топовых направления:
— управление телевизорами, AV-ресиверами, медиаустройствами и т. д.,
— управление светом и осветительными приборами,
— управление температурой — кондиционером, термостатом, батареей, бойлером и т. д.
На следующем слайде есть статистика. Например, мы запустились всего четыре месяца назад, в мае, и сейчас видим, что среднее количество устройств в нашей платформе у каждого пользователя — 3,8. Я вчера смотрел, было 3,93. А два месяца назад эта цифра была 3,2. Значит, люди не только пользуются умным домом, но и докупают устройства, им нравится. Следующей цифрой мы гордимся: 96% пользователей управляют своим умным домом с помощью голоса, хотя у всех них есть приложение, через которое тоже можно управлять этими умными устройствами.
И мы понимаем ограничения текущего API, там действительно пока очень мало того, что можно подключить или описать. Но производители, энтузиасты или разработчики смогли интегрироваться с нашей платформой так, что мы в ней сейчас видим более 800 различных моделей устройств. Это именно модели устройств: всевозможные чайники, кондиционеры, телевизоры и т. д.
Повторюсь, мы в продакшене всего четыре месяца, но такие большие распределенные компании уже смогли итегрироваться с нашей платформой, и я считаю, что это очень большая заслуга команды. Это говорит о том, что наше API достаточно простое, такое, что люди смогли за четыре месяца интегрироваться с Яндексом.
Со стороны инди-разработчиков и энтузиастов мы видим, что люди пишут навыки типа умного дома. Тем самым они интегрируют нашу платформу с другими системами: openHAB, Homebridge, Home Assistant, — например, чтобы девайсы, заточенные под экосистему Apple, тоже могли работать с Алисой. Тут немножко кейсов применения от наших партнеров. Мы думали, что умный дом от Яндекса будет нацелен на тех энтузиастов, которые только начинают двигать этот рынок вперед. Но люди из совсем других индустрий практически без участия Яндекса пришли к нам и рассказали, что они хотят делать инсталляции с умным домом.
Например, есть известный случай с застройщиком «ПИК» и компанией Rubetek. В качестве одного из топовых предложений отделки квартир они представляют умный дом на платформе Яндекса. В таких квартирах, в таких уже существующих шоу-румах, пользователь может прийти и попросить Алису сварить кофе, открыть шторы или управлять светом. Также мы прямо сейчас работаем с застройщиками офисов. Они хотят, например, встроить Алису в свои переговорки так, чтобы можно было забукать переговорку, позвонить в другой город или управлять, опять же, какими-нибудь световыми приборами. И еще мы запускаем некоторые эксперименты с отелями. Можно будет попросить завтрак в номер, поменять вам подушку на потеплее или включить какой-нибудь платный канал.
Давайте теперь немножко опустимся к техническим деталям. Схема работы с умным домом довольно простая. Есть очень много производителей умных устройств, и всеми этими устройствами можно управлять через мобильный телефон. Это значит, что у всех этих производителей есть какой-то API, с помощью которого пользователь кликает в мобильном телефоне, мобильный телефон отправляет какие-то запросы в облако, соответственно, этого производителя, и устройство включается, выключается, изменяется яркость, какие-то параметры.
Соответственно, именно в эту сторону мы и хотим встроиться. Мы же можем сказать, что пользователь не в телефоне тыкает, а голосом, например, говорит. И посылать точно такой же запрос в облако этого производителя. Это называется cloud-to-cloud взаимодействие. На следующем слайде оно подробно описано.
То есть человек управляет или с помощью мобильного телефона, или голосом. Дальше сервера Яндекса идут с облака соответствующего производителя, и устройство включается.
Как Яндекс узнает об устройстве, которое есть у пользователя? Для этого мы используем стандартную процедуру. Она называется Oauth2 account linking. Пользователю достаточно зайти в приложение Яндекса, связать, что называется, аккаунты. Грубо говоря, на пальцах, это работает так.
Когда мы хотим связать свой аккаунт с Philips, пользователь вводит свой логин, пароль, или сообщает нам специальный токен, и мы с этим токеном ходим якобы от имени пользователя в Philips.
Вторая большая часть, из которой состоит протокол умного дома, — голосовые интенты. Первый и самый главный — Discovery. Мы с токеном пользователя идем в облако соответствующего производителя, и производитель нам говорит: у пользователя есть такие устройства. А дальше все просто. Query, Action. Яндекс идет с запросом к Query, чтобы узнать, в каком статусе находится сейчас устройство — утюг выключен, включен, или какая температура сейчас на кондиционере. А Action, это значит, что текущий статус нужно поменять. Unlink происходит, когда пользователь решил разорвать связку аккаунтов, чтобы Яндекс полностью забыл обо всех устройствах, которые есть.
Давайте спустимся еще поглубже, и посмотрим, как работают все эти интенты. Первое, самое главное, это типы устройства — device type. Типы устройства влияют только на представления устройств в интерфейсе. Это специальные лейауты в мобильном приложении. Плюс, самое важное, наверное, что типы устройств обобщают некое голосовое представление, некие голосовые команды. То есть неважно, как пользователь назвал свою лампу, она все равно должна реагировать на слово «свет», например. Или совсем не должно быть важно, пользователь говорит «включи кондиционер» или «кондей». Причем этот кондиционер может называться как угодно.
И второе, это чтобы понять, как управлять устройством, нам нужно знать, что это устройство умеет. Мы называем эти штуки capabilities. То есть это как building block, которые рассказывают о том, что устройство умеет.
Чуть подробнее про device type. На самом старте у нас их было, по-моему, шесть. Сейчас мы выросли до такого количества. Например, две недели назад выпустили openable, и ребята смогли открыть свои ворота. Они могут теперь говорит: «Алиса, открой ворота», а не «Алиса, включи ворота», например.
Давайте теперь поговорим о capabilities, о том, какие capabilities бывают и как сделать так, чтобы Алиса поняла, как вашим устройством управлять.
Первое, самое главное и простое — on_off. Это capability есть практически у каждого устройства. Чтобы рассказать Алисе, что устройство умеет включаться, выключаться, достаточно добавить вот эти пару строчек Jason и определить флажок retrievable. Этот флажок означает, что можно у текущего устройства узнать, включен он или не включен.
Простой пример с телевизором. У всех вас есть дома телевизор вероятно, и, смотря на пульт от телевизора, невозможно понять, включен телевизор или выключен, конечно же, если этот пульт инфракрасный.
Следующий тип capability, который описывает световые приборы, это color_setting. У него также есть флажок retrievable. Но самое главное, вот эти два параметра — color_model. С помощью этого параметра производитель говорит нам о том, что он умеет управлять цветом. Этот цвет может быть в hsv-или rbg-режиме.
И второе — градация белого. То есть можно сказать, что моя лампочка умеет холодный белый цвет, теплый желтый цвет и так далее, чтобы пользователь мог говорить: «сделай, пожалуйста, свет потеплее».
Дальше у нас пойдут capabilities, обобщающие некие режимы. Очень хорошая аналогия с интерфейсом, это Radio buttons, когда вам нужно выбрать какой-то из нескольких режимов. Или вспомните стиральную машину с крутилочкой, где точно есть режим «хлопковое белье», «деликатная стирка» и т. д.
Здесь нам важно узнать, какой именно instance этого режима стоит. Текущие instance, там уже штук шесть их. Но именно те, которые мы реализовали на самом первом этапе, это instance работы кондиционера — автоматический режим, охлаждение, и т. д. Или, например, есть instance, режим работы вентилятора — самый медленный, средний или, опять же, автоматический.
И применительно к mode можно сказать: «Включи, пожалуйста, следующий режим». И это очень удобно для кондиционеров или для той же стиральной машины.
Еще одним capability является range. Применительно также с аналогией интерфейсов, это какой-то ползунок от минимального до максимального значения может что-то регулировать. У этого ползунка тоже есть instance. Например, это температура, громкость, яркость и так далее, практически любой range, который можно описать. Это unit, потому что некоторые люди, как оказалось, чтобы проверить кондиционеры, говорят значение температуры в фаренгейтах. И это, соответственно, совсем разные температуры. Когда человек просит включить в Фаренгейтах или в Цельсиях, и это тоже надо понимать.
Флажок random access, наверное, вам хорошо известен, это когда мы можем точную цифру, на которой в этом range нужно поставить значение. Довольно простой пример, опять же, с телевизорами. Громкостью можно управлять только вверх и вниз. А температуру на кондиционерах можно указать точную.
И само описание range, когда мы знаем какое-то минимальное значение, максимальное значение, и шажочек, с которым это значение можем изменять. На кондиционерах, опять же, оно может быть какое-то целое, или по долям десятков.
Последний capability аналогичен интерфейсу, это какая-то галочка. Помните, в старых компьютерах был такой турборежим — нажимаешь, и компьютер быстрее работает? Здесь ты говоришь: «Алиса, выключи звук», мы нажимаем кнопочку mute и звук исчезает. Можно сказать, наверное, что это какой-то бинарный режим.
И комбинация всех вот этих capabilities, всех умений. Мы можем описать всевозможные устройства, которые на данный момент представлены на рынке.
Например, умная лампочка. Она умеет включаться, выключаться. Она умеет регулировать цвет, и она умеет регулировать яркость. Но если с лампочкой все просто, давайте попробуем все вместе описать какое-нибудь другое устройство. Например, чайник.
Как вы считаете, что должен уметь умный чайник? Я дал вам подсказку, скриншот из интерфейса приложения Яндекс. Как бы вы описали чайник? Температура. Еще? Да, и включи-выключи. Чайник довольно простое устройство. Он умеет включаться, выключаться, и, например, мой любимый зеленый чай, я хочу его делать на 85 градусах. Есть ли в нем вода? Да, хорошее замечание. Тут мы ждем информацию от производителя.
Я хотел бы вам рассказать и про другие устройства. Одно из самых сложных устройств, которые сейчас есть, это кондиционер. Как вы считаете, что должен уметь кондиционер? Греть или охлаждать. Регулировать температуру. Режим со шторками. Скорость вентилятора. Все правильно. И кондиционер, который сейчас можно описать в нашем capability, умеет все это. Он умеет включаться, выключаться, выбирать режим охлаждения, регулировать температуру и скорость вентилятора, с которым дует или холодный, или горячий воздух. Может быть и простой воздух в режиме без кондиционера.
Давайте спустимся еще ниже и посмотрим, какие же ответы от производителей мы ждем при описании устройств. Это интент discovery. Здесь немножко YAML, но он довольно просто читается.
В тот момент, когда пользователь связывает аккаунты, мы спрашиваем у производителя, что же у этого пользователя есть, какие устройства — просто чтобы понимать, как ими управлять.
Первое, и самое главное: мы ждем user_id этого пользователя и список устройств.
Здесь описано только одно устройство: у пользователя есть лампочка, devices.types.light. Это может быть, кстати, не только лампочка. Это может быть какая-то РГБ-лента или газонокосилка с подсветкой. Нам это вообще неважно. Главное, чтобы она реагировала на слово «свет» и чтобы в интерфейсе мы смогли нарисовать capability, которое отвечает именно за свет.
Наша газонокосилка, похоже, умеет включаться, выключаться. Она умеет менять яркость. И она умеет регулировать цвет. Причем не только цвет — еще у этого осветительного прибора есть регулировка цветовой температуры.
Предположим, пользователь спрашивает: «Алиса, в каком состоянии сейчас моя лампочка?» или «Алиса, моя лампочка включена?» Тогда мы отправляем такой вопрос провайдеру, говорим, что у такого-то девайса нужно спросить, в каком сейчас цветовом режиме он находится и включено ли само устройство.
Если пользователь хочет изменить этот режим, он может, например, сказать: «Алиса, выключи свет». Есть лампочка с айдишником abc-123, «Пожалуйста, выключи», value false.
Ждем, что производитель устройства на той стороне облака нам ответит: окей, лампочка abc-123, action_result, status DONE. Значит, лампочка выключилась.
Еще немного про сценарии. Мы понимаем, что пользователи хотят не только управлять своими устройствами по отдельности, но и объединять их в группы. Например, просыпаясь, они говорят: «Алиса, доброе утро», и хотят, чтобы выполнилась некая комбинация действий.
Соответственно, в приложении Яндекса можно так сказать, и Алиса включит какую-то музыку, выключит ночник, чайник начнет работать, кипятить воду, чтобы сделать ваш любимый кофе.
О планах. Мы понимаем, что работа в текущем виде хотя и позволяет описать огромное количество устройств, но, например, не позволяет получать информацию от датчиков. Мы не сможем настроить в сценариях какой-то event так, чтобы по датчику протечки, дыма или открытия двери понять, что что-то случилось. Мы целимся это сделать. Также мы понимаем, что в данный момент не умеем управлять mediastream. Самый простой пример — курьер пришел к вам домой с горячей пиццей, и вам на телефон приходит пуш с фотографией этого человека. Это же супер! Сейчас с текущими capabilities это сделать невозможно — скорее всего, появятся capabilities, описывающие камеры.
Про датчики я затрону скользкую тему — IFTTT. C IFTTT мы хотим сценарий запускать не только голосом, как сделано сейчас. Мы хотим запускать их по разным events: по таймеру, расписаниям, восходу или заходу солнца и другим событиям. И мы очень хотим, чтобы умный дом был не только для гиков, которые понимают, зачем нужно передать свой пароль от Wi-Fi лампочке. Мы хотим сделать так, чтобы люди, абсолютно не связанные с умным домом, или не понимающие, как он работает, просто покупали какой-то чайник, стиральную машину, лампочку, неважно. И Алиса говорила: «Похоже, у вас в доме есть какое-то новое для меня устройство. Хотите его подключить?» И все, чтобы работало сразу.
В заключение хочу сказать: чтобы воспользоваться этой технологией, умным домом, вам нужно лишь прочитать документацию и правильно описать ваше устройство, используя device types и существующие сейчас capabilities. Спасибо.