skysilver

 
<<< Back

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 и платформы умного дома Яндекс находится здесь.

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

Discuss (2) (28)

See also:
2020-04-06 Получение данных о COVID с карты Яндекс
2019-07-12 MajorDoMo и Яндекс Алиса. Алиса, включи канал Карусель.
2019-06-20 MajorDoMo и Яндекс Алиса. Алиса, измени цвет бра на красный.
2019-06-18 MajorDoMo и Яндекс Алиса. Алиса, сделай ярче настольную лампу.
2019-06-17 MajorDoMo и Яндекс Алиса. Алиса, включи свет на кухне.
2019-06-10 MajorDoMo и Яндекс Алиса. Модуль Yandex Home.
2019-06-06 MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
2019-06-05 MajorDoMo и Яндекс Алиса. Регистрация приватного навыка.
2019-06-03 Загрузка PHP-расширения PDO MySQL в Windows
2019-06-01 MajorDoMo и Яндекс Алиса. Публикация вебхуков.
2019-05-22 Экспресс контроль состояния циклов в Linux
2019-05-08 Сценарий контроля состояния SSL сертификатов сайтов
2019-02-26 Экспорт графиков в PNG-файл в модуле Charts
2019-01-26 Мультисерийный кастомный график в модуле Charts
2018-12-13 График с цветовой индикацией выхода величины за пределы
2018-11-12 Кастомный график в модуле Charts
2018-08-15 Кронштейн NB F120 (North Bayou)
2018-07-18 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 3.
2018-06-20 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 2.
2018-06-15 WiFi-информер на светодиодных матрицах MAX7219 и ESP8266. Часть 1.
2018-05-20 Кросс-компиляция ядра для Banana Pi M2U
2018-05-14 Ссылки на ресурсы по MajorDoMo
2018-03-02 Знакомство и тестирование Banana Pi M2U
2018-02-21 Распаковка Banana Pi M2U
2018-02-14 Одноплатный ПК для MajorDoMo
2018-08-14 Заметки по железу
2018-01-23 Мой взгляд на вопрос голосового управления в MajorDoMo
2018-01-17 Обзор цен на устройства Xiaomi
2017-12-24 Гирлянда на ESP8266 и WS2812
2017-12-20 Блог им. skysilver

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

На форуме: skysilver

Web-site URL:
http://connect.smartliving.ru/profile/461