Часть 5. О модуле Yandex Home.
Модуль Yandex Home предназначен для поддержки личных (приватных) навыков для платформы умного дома Яндекс. Модуль реализует авторизационный сервис на основе стандарта OAuth 2.0 и Provider Adapter API - промежуточный API, который принимает на вход запросы в формате платформы умного дома Яндекс и преобразует их в запросы к API MajorDoMo.
Для успешного функционирования модуля и управления устройствами, подключенными к MajorDoMo, через ассистента Яндекс Алиса требуется, в первую очередь, опубликовать обработчики запросов (конечные точки, вебхуки) в сеть Интернет и обеспечить тем самым их доступность со стороны облака Яндекс по доменному имени (DNS) и протоколу HTTPS. Во вторую очередь, необходимо в консоли разработчика платформы Яндекс Диалогов создать, настроить и опубликовать приватный навык специальной категории Умный дом.
В модуле Yandex Home все обработчики запросов реализованы в виде отдельных файлов: authorize.php, token.php и smarthome.php, и размещаются в директории /modules/yandexhome.
# | Назначение вебхука | URL вебхука | Пример опубликованной ссылки |
---|---|---|---|
1 | URL авторизации | /modules/yandexhome/authorize.php | https://majordomo.keenetic.pro:8443/modules/yandexhome/authorize.php |
2 | URL для получения и обновления токена | /modules/yandexhome/token.php | https://majordomo.keenetic.pro:8443/modules/yandexhome/token.php |
3 | URL обработчика навыка | /modules/yandexhome/smarthome.php | https://majordomo.keenetic.pro:8443/modules/yandexhome/token.php |
В конечном итоге запуск модуля сводится к такой последовательности шагов:
Чтобы установить модуль, нужно в Панели управления MajorDoMo перейти в раздел Система и открыть Маркет дополнений. Модуль находится в категории Взаимодействие. Открываем эту вкладку и ищем в списке строку с модулем. Для установки нажимаем кнопку Добавить.
Процесс установки отобразится в виде лога. После успешной установки система перенаправит обратно на страницу Маркета дополнений, а в разделе Устройства Панели управления появится новый пункт с модулем Yandex Home.
Настройка модуля заключается в генерации значений OAuth2 ID и OAuth2 KEY с помощью соответствующей кнопки, а также ввод произвольных логина и пароля пользователя, которые впоследствии будут запрошены в ходе объединения аккаунтов в приложении Яндекс.
На ранних этапах использования модуля рекомендуется включить ведение логов событий - Отладка DebMes.
При необходимости можно указать, какой использовать стиль отображения списка устройств на главной странице модуля.
Данный вопрос подробно рассмотрен в статье MajorDoMo и Яндекс Алиса. Публикация вебхуков.
Данный вопрос подробно рассмотрен в статье MajorDoMo и Яндекс Алиса. Регистрация приватного н...
Данный вопрос подробно рассмотрен в статье MajorDoMo и Яндекс Алиса. Объединение аккаунтов.
Модуль реализует классическую концепцию MajorDoMo для взаимодействия с пользователем через метрики и привязанные к ним свойства объекта. К метрикам (умениям) привязываются уже существующие объекты и свойства, через которые реализовано управление устройствами. К каждому умению устройства можно привязать свое свойство объекта.
Добавление нового устройства выполняется с помощью кнопки Добавить устройство на главной странице модуля. После чего указываются название, тип и местоположение устройства.
Дальнейшее конфигурирование выполняется на странице редактирования (настройки) устройства.
Обязательные для заполнения поля устройства:
У каждого устройства должно быть указано минимум одно умение.
Не обязательные для заполнения поля устройства:
Набор умений представлен в виде выпадающего списка.
Привязка свойства объекта к конкретному умению выполняется также с помощью выпадающих списков.
При добавлении устройств в модуле или изменении их свойств для обновления списка устройств в приложении Яндекс необходимо каждый раз выполнять синхронизацию с помощью кнопки Обновить список устройств в окне свойств навыка. Удаляются устройства из приложения Яндекс вручную, либо через отвязывание аккаунта и последующее повторное объединение аккаунтов.
(по состоянию на июнь 2019 года)
# | Метрика (умение) | Описание | Значения в модуле | Значения от Яндекс |
---|---|---|---|---|
1 | on | Включить/выключить (1 - включено, 0 выключено). | 1 и 0 | true и false |
2 | brightness | Яркость (проценты). | 1 - 100 | 1 - 100 |
3 | rgb | Цвет в формате RGB (hex). | 000000 - FFFFFF | 0 - 16777215 |
4 | temperature_k | Температура цвета (кельвины). | 2700 - 9000 | 2700 - 9000 |