В конце сентября состоялась наша первая встреча разработчиков железа — Яндекс.
Модули.
Это важный шаг на новом рынке для производителей устройств.
Участники (около 150 человек) слушали доклады, общались и много времени проводили на стендах, где могли заглянуть внутрь беспилотного автомобиля, обезвредить «бомбу», перерезав необходимые провода, разобрать Яндекс.
Станцию (рекорд – 6 минут).
23 секунды), а также протестировать бортовой компьютер Яндекс.
Авто и умный дом.
Сегодня мы поговорим о платформе умного дома.
Весной мы запущен это для всех разработчиков, а на Яндекс.
Железе менеджер по развитию платформы Марат Мавлютов подвел первые итоги и показал, как наладить управление устройствами.
Из отчета можно узнать об условиях голосового API, методах описания и взаимодействия с устройством пользователя.
— Давайте поговорим об умном доме.
Как сделать свой дом немного умнее, чтобы ни один кот не оставался голодным и все ворота Екатеринбурга открывались? Начнем с самого начала, разберемся, что такое умный дом.
Нам кажется, что это дом, в котором не нужно искать розетку, спрятанную за шторкой или выключателем.
Это дом, где не нужно искать пульт от телевизора, телефон с приложением, позволяющим управлять чайником или лампочкой.
Это понимающий тебя дом, в котором человек использует самый родной, естественный для него интерфейс – голос.
Зачем мы вообще туда поехали и что хотим получить? Мы очень хотим, чтобы наш голосовой помощник был именно таким: помощником, который мог бы не только воспроизводить музыку или видео, но и помогать в самых естественных, повседневных делах.
Мы также понимаем, что не можем написать весь код в мире и интегрироваться со всеми устройствами.
Именно поэтому мы хотим предоставить этот голосовой интерфейс разработчикам, компаниям, людям, которые уже умеют делать устройства и делать их крутыми.
Эрикссон утверждает, что к 2021 году во всем мире будет 28 миллиардов подключенных устройств умного дома.
На мгновение это означает, что если мы представим, что весь земной шар подключен к Интернету, то у каждого человека будет в среднем четыре устройства.
Перед запуском мы провели исследование, чтобы понять, как люди используют умный дом, что они хотят видеть, чем хотят управлять.
Мы выбрали три топовых направления: — управление телевизорами, AV-ресиверами, медиа-устройствами и т. д., — управление светом и осветительными приборами, - контроль температуры - кондиционер, термостат, аккумулятор, бойлер и т.д. На следующем слайде представлена статистика.
Например, мы запустили всего четыре месяца назад, в мае, и сейчас видим, что среднее количество устройств на нашей платформе на одного пользователя составляет 3,8. Я вчера посмотрел, было 3,93. А два месяца назад этот показатель составлял 3,2. Это значит, что люди не только пользуются умным домом, но и покупают дополнительные устройства и им нравятся.
Мы гордимся следующей цифрой: 96% пользователей управляют своим умным домом с помощью голоса, хотя у всех есть приложение, через которое они также могут управлять этими умными устройствами.
И мы понимаем ограничения текущего API; на самом деле очень мало что можно связать или описать.
Но производители, энтузиасты и разработчики смогли интегрироваться с нашей платформой, и теперь мы видим в ней более 800 различных моделей устройств.
Это именно модели приборов: всевозможные чайники, кондиционеры, телевизоры и т. д.
Повторюсь, мы в продакшене всего четыре месяца, но такие крупные распределенные компании уже смогли интегрироваться с нашей платформой, и я считаю, что это очень большое достижение команды.
Это говорит о том, что наше API достаточно простое, такое, что люди смогли интегрироваться с Яндексом за четыре месяца.
Что касается инди-разработчиков и энтузиастов, мы видим людей, создающих навыки умного дома.
Таким образом, они интегрируют нашу платформу с другими системами: openHAB, Homebridge, Home Assistant, например, чтобы устройства, разработанные для экосистемы Apple, также могли работать с Алисой.
Вот несколько случаев применения от наших партнеров.
Мы думали, что умный дом от Яндекса будет ориентирован на тех энтузиастов, которые только начинают продвигать этот рынок вперед. Но к нам пришли люди из совершенно разных отраслей, практически без участия Яндекса, и рассказали, что хотят сделать установки с умным домом.
Например, известен случай с разработчиком ПИК и компанией «Рубетек».
В качестве одного из топовых предложений по отделке квартир они представляют умный дом на платформе Яндекс.
В такие квартиры, в такие уже существующие шоу-румы пользователь может прийти и попросить Алису приготовить кофе, открыть шторы или управлять светом.
Мы также сейчас работаем с разработчиками офисов.
Они хотят, например, интегрировать Алису в свои домофоны, чтобы можно было бронировать домофон, звонить в другой город или управлять, опять же, какими-то осветительными приборами.
А еще мы запускаем эксперименты с отелями.
Вы можете попросить завтрак в номер, сменить подушку на более теплую или включить какой-нибудь платный канал.
Давайте теперь немного углубимся в технические детали.
Схема работы с умным домом довольно проста.
Существует очень много производителей умных устройств, и всеми этими устройствами можно управлять через мобильный телефон.
Это значит, что у всех этих производителей есть какой-то API, с помощью которого пользователь нажимает на мобильный телефон, мобильный телефон отправляет какие-то запросы в облако соответственно этого производителя, и устройство включается, выключается, меняет яркость, некоторые опции.
Соответственно, именно в этом направлении мы хотим интегрироваться.
Можно сказать, что пользователь не тыкает в телефон, а использует свой голос, например, говорит. И отправить точно такой же запрос в облако этого производителя.
Это называется межоблачным взаимодействием.
Подробно это описано на следующем слайде.
То есть человек управляет либо с помощью мобильного телефона, либо голосом.
Затем серверы Яндекса поступают из облака соответствующего производителя, и устройство включается.
Как Яндекс узнает об устройстве пользователя? Для этого используем стандартную процедуру.
Это называется привязкой учетных записей Oauth2. Пользователю достаточно зайти в приложение Яндекса и привязать, что называется, аккаунты.
Грубо говоря, вот как это работает.
Когда мы хотим привязать свой аккаунт к Philips, пользователь вводит свой логин, пароль или сообщает нам специальный токен, и с этим токеном мы якобы от имени пользователя заходим в Philips.
Вторая важная часть протокола умного дома — это голосовые намерения.
Первый и самый важный — Discovery. Мы заходим с токеном пользователя в облако соответствующего производителя, и производитель сообщает нам: у пользователя есть такие устройства.
А дальше все просто.
Запрос, Действие.
Яндекс отправляет запрос в Query, чтобы узнать, в каком статусе сейчас находится устройство — утюг выключен, включен или какая текущая температура на кондиционере.
А Действие, это означает, что текущий статус необходимо изменить.
Отвязка происходит, когда пользователь решает разорвать привязку аккаунта, чтобы Яндекс полностью забыл обо всех имеющихся у него устройствах.
Давайте пойдем еще глубже и посмотрим, как работают все эти намерения.
Во-первых, и самое главное, это типы устройств.
Типы устройств влияют только на представления устройств в интерфейсе.
Это специальные макеты в мобильном приложении.
Плюс, наверное, самое главное, что типы устройств обобщают определенное голосовое представление, определенные голосовые команды.
То есть не важно, как пользователь назвал свою лампу, она все равно должна реагировать на слово «свет», например.
Или вообще не должно иметь значения, говорит ли пользователь «включи кондиционер» или «кондиционер».
Более того, этот кондиционер можно называть как угодно.
А во-вторых, чтобы понять, как управлять устройством, нам нужно знать, что это устройство умеет. Мы называем эти вещи способностями.
То есть это своего рода строительный блок, рассказывающий о том, на что способно устройство.
Еще немного о типе устройства.
В самом начале, я думаю, у нас их было шестеро.
Сейчас мы доросли до такого числа.
Например, две недели назад вышел openable, и ребята смогли открыть свои ворота.
Теперь они могут сказать: «Алиса, открой ворота», а не «Алиса, открой ворота», например.
Давайте теперь поговорим о возможностях, какие возможности есть и как дать понять Алисе, как управлять вашим устройством.
Первый, самый важный и простой — on_off. Почти каждое устройство имеет такую возможность.
Чтобы сообщить Алисе, что устройство может включаться и выключаться, просто добавьте пару строк от Джейсона и определите извлекаемый флаг.
Этот флажок означает, что вы можете проверить с помощью текущего устройства, включено оно или нет. Простой пример с телевизором.
У всех наверняка дома есть телевизор, и глядя на пульт от телевизора, невозможно понять, включен телевизор или нет, конечно, если этот пульт инфракрасный.
Следующий тип возможностей, описывающий осветительные устройства, — это color_setting. Он также имеет извлекаемый флажок.
Но самое главное — эти два параметра — color_model. С помощью этого параметра производитель сообщает нам, что он умеет управлять цветом.
Этот цвет может быть в режиме hsv или rbg.
И второе – градация белого.
То есть мы можем сказать, что моя лампочка может иметь холодный белый цвет, теплый желтый цвет и так далее, чтобы пользователь мог сказать: «Пожалуйста, сделайте свет теплее».
Далее у нас будут возможности, обобщающие определенные режимы.
Очень хорошая аналогия с интерфейсом — Радиокнопки, когда нужно выбрать один из нескольких режимов.
Или вспомните стиральную машину с отжимом, в которой обязательно есть режим «хлопковая стирка», «деликатная стирка» и т. д.
Здесь нам важно узнать, какой экземпляр этого режима стоит. В нынешнем экземпляре их уже около шести.
Но именно те, которые мы реализовали на самом первом этапе, это экземпляр работы кондиционера – автоматический режим, охлаждение и т. д. Или, например, есть экземпляр режима работы вентилятора – самый медленный, средний или, опять же, автоматический.
А по отношению к режиму можно сказать: «Пожалуйста, включите следующий режим».
А это очень удобно для кондиционеров или для той же стиральной машины.
Еще одна возможность — дальность действия.
Также применительно к аналогии интерфейсов, это какой-то ползунок от минимального до максимального значения, которым можно что-то регулировать.
У этого слайдера также есть экземпляр.
Например, это температура, объем, яркость и так далее, практически любой диапазон, который можно описать.
Это единица, потому что некоторые люди, как выяснилось, при проверке кондиционеров определяют температуру в градусах Фаренгейта.
И это, соответственно, совсем другие температуры.
Когда человек просит перевести в градусы Фаренгейта или Цельсия, это тоже надо понимать.
Флаг произвольного доступа, вероятно, вам хорошо известен; именно тогда мы можем указать точное число, в которое нам нужно поместить значение в этом диапазоне.
Достаточно простой пример, опять же, с телевизорами.
Громкость можно регулировать только вверх и вниз.
А температуру на кондиционерах можно указать точно.
И описание самого диапазона, когда мы знаем какое-то минимальное значение, максимальное значение и маленькие шаги, с помощью которых мы можем это значение изменить.
На кондиционерах опять же оно может быть каким-то целым, а может быть и долями десятков.
Последняя возможность аналогична интерфейсу, это своего рода галочка.
Помните, в старых компьютерах был такой турборежим — нажимаешь, и компьютер работает быстрее? Вот говоришь: «Алиса, выключи звук», нажимаем кнопку отключения звука и звук пропадает. Наверное, можно сказать, что это какой-то бинарный режим.
И сочетание всех этих возможностей, всех навыков.
Мы можем описать все виды устройств, которые сейчас представлены на рынке.
Например, умная лампочка.
Она умеет включаться и выключаться.
Она знает, как настроить цвет, и знает, как настроить яркость.
Но если с лампочкой все просто, попробуем вместе описать какое-нибудь другое устройство.
Например, чайник.
Как вы думаете, что должен уметь умный чайник? Я вам дал подсказку, скриншот из интерфейса приложения Яндекс.
Как бы вы описали чайник? Температура.
Более? Да, и включать и выключать.
Чайник – довольно простое устройство.
Он может включаться и выключаться, и, например, мой любимый зеленый чай я хочу заварить при температуре 85 градусов.
Там есть вода? Да, хороший момент. Здесь ждем информацию от производителя.
Хочу рассказать о других устройствах.
Одним из самых сложных устройств, которые мы имеем сегодня, является кондиционер.
Как вы думаете, что должен уметь кондиционер? Нагреть или охладить.
Отрегулируйте температуру.
Режим штор.
Скорость вентилятора.
Все правильно.
И кондиционер, который теперь можно описать в наших возможностях, все это умеет. Он может включаться и выключаться, выбирать режим охлаждения, регулировать температуру и скорость вентилятора, дующего либо холодным, либо горячим воздухом.
Также может быть простой воздух в режиме без кондиционера.
Давайте пойдем еще ниже и посмотрим, каких ответов мы ожидаем от производителей при описании устройств.
Это цель открытия.
Здесь немного YAML, но его довольно легко читать.
В тот момент, когда пользователь связывает аккаунты, мы спрашиваем производителя, что у этого пользователя, какие устройства — просто чтобы понять, как ими управлять.
Первое и самое главное: ждем user_id этого пользователя и список устройств.
Здесь описано только одно устройство: у пользователя есть лампочка, devices.types.light. Кстати, это может быть не только лампочка.
Это может быть какая-нибудь RGB-лента или газонокосилка с подсветкой.
Для нас это вообще не имеет значения.
Главное, чтобы он реагировал на слово «свет» и чтобы в интерфейсе мы могли нарисовать возможность, отвечающую конкретно за свет.
Наша газонокосилка, кажется, способна сама включаться и выключаться.
Она может менять яркость.
И она может регулировать цвет. И не только цвет – в этом осветительном приборе есть еще и регулировка цветовой температуры.
Предположим, пользователь спрашивает: «Алиса, в каком сейчас состоянии моя лампочкаЭ» или «Алиса, у меня лампочка горитЭ» Потом отправляем такой-то вопрос провайдеру, мол, у такого-то устройства нужно спросить, в каком цветовом режиме оно сейчас находится и включено ли само устройство.
Если пользователь хочет изменить этот режим, он может, например, сказать: «Алиса, выключи свет».
Есть лампочка с идентификатором abc-123, «Пожалуйста, выключите», значение false.
Ждем, пока нам ответит производитель устройства на другой стороне облака: окей, лампочка abc-123, action_result, статус DONE. Итак, лампочка погасла.
Еще немного о скриптах.
Мы понимаем, что пользователи хотят не только управлять своими устройствами индивидуально, но и объединять их в группы.
Например, просыпаясь, они говорят: «Алиса, доброе утро» и хотят, чтобы была выполнена какая-то комбинация действий.
Соответственно, в приложении Яндекса вы можете это сказать, и Алиса включит музыку, выключит ночник, чайник начнет работать, вскипятит воду, чтобы приготовить любимый кофе.
О планах.
Мы понимаем, что работа в ее нынешнем виде хоть и позволяет описывать огромное количество устройств, но, например, не позволяет получать информацию с датчиков.
Мы не сможем настроить в скриптах какое-то событие, чтобы по датчику протечки, дыма или открытия двери понять, что что-то произошло.
Мы стремимся сделать это.
Мы также понимаем, что на данный момент не знаем, как управлять медиапотоком.
Самый простой пример: к вам домой приходит курьер с горячей пиццей, и вы получаете на телефон push-уведомление с фотографией этого человека.
Отлично! Сейчас сделать это с текущими возможностями невозможно — скорее всего, появятся возможности, описывающие камеры.
По поводу датчиков затрону скользкую тему — IFTTT. С помощью IFTTT мы хотим запускать скрипт не только голосом, как это делается сейчас.
Мы хотим запускать их на основе разных событий: таймеров, расписаний, восхода или заката солнца и других событий.
И мы очень хотим, чтобы умный дом был не только для гиков, которые понимают, зачем нужно давать пароль от Wi-Fi лампочке.
Мы хотим сделать так, чтобы люди, не имеющие абсолютно никакого отношения к умному дому, или не понимающие, как он работает, просто купили какой-нибудь чайник, стиральную машину, лампочку, не важно.
И Алиса сказала: «Похоже, у тебя дома есть какой-то новый для меня прибор.
Хотите подключить его? И все сразу заработает. В заключение хочу сказать: чтобы воспользоваться этой технологией умного дома, вам нужно всего лишь прочитать документацию и правильно описать свое устройство, используя типы устройств и существующие на данный момент возможности.
Спасибо.
Теги: #Производство и разработка электроники #Сделай сам или Сделай сам #api #Умный дом #Алиса #API Яндекса #платформа для разработчиков
-
Языки Миао-Яо
19 Oct, 24 -
Зоопарк
19 Oct, 24 -
Подсветка Синтаксиса В Ruby
19 Oct, 24 -
Что Говорит Статистика О Рынке Iaas
19 Oct, 24