skysilver

 
<<< Назад

MajorDoMo и Яндекс Алиса. Общие сведения.

Часть 1. Об архитектуре платформы умного дома Яндекс и вариантах взаимодействия с MajorDoMo.

ya_mdm_ch1_startlogo

Оглавление

Как известно, Яндекс запустил свою платформу умного дома с поддержкой голосового ассистента Алиса.

Платформа имеет открытое API и позволяет интегрировать Алису с оборудованием сторонних производителей и системами умного дома. На старте имеется поддержка Philips Hue, Redmond, SmartThings, Xiaomi, Rubetek.

Особенностью платформы является новая специальная категория навыков Алисы, которая предназначена для голосового управления домашними устройствами и не требует предварительного запуска навыка по его имени. Теперь устройствами можно управлять прямыми командами вида "Алиса, включи свет в гостиной", "Алиса, сделай в спальне похолоднее" и т. п.

Управление устройствами доступно как голосовыми командами, так и через веб-приложение по ссылке. Нативного приложения управления умным домом для iOS и Android у Яндекса нет.

ya_app

Согласно официальной документации архитектура платформы умного дома Яндекс выглядит так.

ya_scheme

Применительно к интеграции с MajorDoMo эту схему можно представить в таком виде.

ya_mdm_scheme

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

Пользователь открывает приложение Яндекс. Приложение отправляет запрос на получение информации об устройствах пользователя в облачную платформу Яндекс. Платформа направляет этот запрос к MajorDoMo. Далее приложение отправляет запрос на получение информации о статусах устройств пользователя. Платформа направляет этот запрос к MajorDoMo. В результате у пользователя на экране отображается список его устройств с актуальными статусами. Отправить актуальный статус устройства по факту его смены в облако Яндекс по инициативе MajorDoMo нельзя - это ограничение текущей версии API платформы.

Если пользователь хочет выключить лампочку, он выбирает ее в списке устройств и выключает с помощью виджета, либо произносит голосовую команду "Алиса, выключи лампочку". В это время приложение отправляет запрос на изменение статуса у устройства в облачую платформу. И от туда направляется запрос в MajorDoMo, который выключает лампочку.

Чтобы запустить навык умного дома и связать его с Яндекс, в общем случае требуется:

  1. Реализовать авторизационный сервис на основе стандарта OAuth 2.0.
  2. Реализовать Provider Adapter API. Это промежуточный API, который принимает на вход запросы в формате платформы умного дома Яндекса и преобразует их в запросы к API MajorDoMo.
  3. Описать устройства и их возможности в формате платформы умного дома Яндекса.
  4. Зарегистрировать навык специального типа в платформе Яндекс.Диалоги (публичный или приватный).
  5. Пройти модерацию и опубликивать навык. Публичный навык будет доступен всем пользователям, приватный - только пользователю, под чьей учетной записью он создавался.

В частных случаях, к примеру при размещении приватного навыка на своем домашнем сервере, возникают дополнительные требования:

  1. Белый публичный IP-адрес (статический или динамический).
  2. DNS-имя, привязанное к публичному IP-адресу.
  3. Валидный SSL-сертификат на вышеуказанное DNS-имя.
  4. Возможность опубликовать обработчик навыка (endpoint, webhook) для доступа к нему из сети Интернет.

По аналогии с Google Home интеграция MajorDoMo и платформы умного дома Яндекс возможна несколькими способами:

  1. Официальный публичный навык MajorDoMo, взаимодействующий с домашним сервером через синхронизацию с сервисом Connect (по подписке). На сегодняшний день еще не опубликован, но технически уже реализован и проходит процедуру модерации. В перспективе это будет самый простой (plug & play) способ, не требующий от пользователя каких-либо сложных подготовительных мероприятий.
  2. Не официальный публичный навык в виде MQTT-моста (или иного протокола). На сегодняшний день, разумеется, отсутствует, и не известно, появится ли вообще. Напрямую зависит от инициативы и активности сообщества.
  3. Приватный (частный) навык, напрямую взаимодействующий с облаком Яндекс без каких-либо посредников. Реализуется в виде модуля или набора скриптов в соответствии с API и предъявляет определенные требования к его запуску, которые не всегда могут быть выполнены (см. выше).

У каждого способа свои преимущества и недостатки. Какой выбрать - каждый решает сам. Лично мне интересен вариант приватного навыка, несмотря на его трудоемкость и требования, предъявляемые к запуску.

Мой проект по разработке модуля интеграции MajorDoMo и платформы умного дома Яндекс находится здесь.

Ссылки на официальные ресурсы:

Обсуждение (2) (28)

Смотрите так же:
06.04.2020 Получение данных о COVID с карты Яндекс
12.07.2019 MajorDoMo и Яндекс Алиса. Алиса, включи канал Карусель.
20.06.2019 MajorDoMo и Яндекс Алиса. Алиса, измени цвет бра на красный.
18.06.2019 MajorDoMo и Яндекс Алиса. Алиса, сделай ярче настольную лампу.
17.06.2019 MajorDoMo и Яндекс Алиса. Алиса, включи свет на кухне.
10.06.2019 MajorDoMo и Яндекс Алиса. Модуль Yandex Home.
06.06.2019 MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
05.06.2019 MajorDoMo и Яндекс Алиса. Регистрация приватного навыка.
03.06.2019 Загрузка PHP-расширения PDO MySQL в Windows
01.06.2019 MajorDoMo и Яндекс Алиса. Публикация вебхуков.
22.05.2019 Экспресс контроль состояния циклов в Linux
08.05.2019 Сценарий контроля состояния SSL сертификатов сайтов
26.02.2019 Экспорт графиков в PNG-файл в модуле Charts
26.01.2019 Мультисерийный кастомный график в модуле Charts
13.12.2018 График с цветовой индикацией выхода величины за пределы
12.11.2018 Кастомный график в модуле Charts
15.08.2018 Кронштейн NB F120 (North Bayou)
18.07.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 3.
20.06.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 2.
15.06.2018 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 1.
20.05.2018 Кросс-компиляция ядра для Banana Pi M2U
14.05.2018 Ссылки на ресурсы по MajorDoMo
02.03.2018 Знакомство и тестирование Banana Pi M2U
21.02.2018 Распаковка Banana Pi M2U
14.02.2018 Одноплатный ПК для MajorDoMo
14.08.2018 Заметки по железу
23.01.2018 Мой взгляд на вопрос голосового управления в MajorDoMo
17.01.2018 Обзор цен на устройства Xiaomi
24.12.2017 Гирлянда на ESP8266 и WS2812
20.12.2017 Блог им. skysilver

Киров, Россия

На форуме: skysilver

Веб-сайт:
http://connect.smartliving.ru/profile/461