Умный дом с Алисой от Яндекса
Решил прикрутить к своему умному дому голосовой интерфейс от Яндекса. Мой умный дом — страшный зверинец из разных систем, на разном железе и разном софте.
В нем всё самописное, поэтому открытых дверей ждать не приходится.
Яндекс предполагает работу с нормальными сторонними сервисами, которые не поленились встроить регистрацию пользователей через OAuth. У меня такой нет, поэтому будем использовать яндексовскую же.
- Идем на https://oauth.yandex.ru/ и нажимаем зарегистрировать новое приложение.
Название, описание, иконка — пофигу
Ссылка на приложение тоже, но я задал путь к скрипту, обрабатывающему запросы яндекса.
Платформы — веб-сервисы
Callback URI ставим «https://social.yandex.net/broker/redirect» (это самое главное). Всякие ошибки «redirect_uri не совпадает с Callback URL» — это отсюда.
Дальше доступы отмечаем
API Яндекс.Паспорта доступ к электронной почте (может и не надо, но не жалко)
Умный дом Яндекса ставим обе галочки.
Сохраняем.
Теперь у нас есть ID и Пароль.
- Идем на Яндекс диалоги https://dialogs.yandex.ru/developer выбираем новый диалог — создать умный дом
Настройки:
задаем любое название;
endpoint url — самое главное — это опять путь к скрипту, который будет общаться с яндексом;
тип доступа — приватный;
подзаголовок пофигу что
имя разработчика также
описание тоже;
иконку — любую картинку;
авторизация — тут сложнее:
идентификатор — вышеполученный ID
секрет — вышеполученный Пароль
URL авторизации — https://oauth.yandex.ru/authorize
URL получения токена — https://oauth.yandex.ru/token
обновление не нужно
идентификатор группы действий (scope) пишем — login:email iot:control iot:view
это те самые доступы, как они описаны внутри системы. Без этого будем получать ошибку «Не удалось определить список запрашиваемых доступов (invalid_scope)».
Кстати чтобы их узнать можно пойти по ссылке https://oauth.yandex.ru/client/ID/info где ID — тот самый ID приложения.
Сохраняем.
- Нажимаем «Опубликовать», ошибок быть не должно. Переключаем движок на «Опубликовано» и идем в Тестирование.
Нажимаем большой плюс, выбираем «Другое устройство». Где то тут оно пробросит нас на авторизацию OAuth попросит разрешения предоставить данные и добавит умный дом в список производителей.
- Теперь идем в свой скрипт и начинаем прописывать устройства и их реакции.
Тут придется сначала изучить https://yandex.ru/dev/dialogs/alice/doc/smart-home/about.html