[Модуль] Yandex Home (yandexhome)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

[Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Вс июн 09, 2019 2:26 pm

Модуль поддержки личных (приватных) навыков для платформы умного дома Яндекс.

Платформа умного дома Яндекс имеет открытое API и позволяет интегрировать Яндекс Алису с оборудованием сторонних производителей и системами умного дома. На старте имеется поддержка Philips Hue, Redmond, SmartThings, Xiaomi, Rubetek. Модуль Yandex Home, в свою очередь, реализует приватный API-провайдер (включая авторизацию по протоколу OAuth 2.0) и позволяет интегрировать с платформой Яндекс уже имеющиеся в MajorDoMo устройства.

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

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

Поддерживаемые умения:
  • Включить/выключить (on);
  • Громкость (volume);
  • ТВ-канал (channel);
  • Температура (temperature);
  • Температура цвета (temperature_k);
  • Температурный режим (thermostat);
  • Режим без звука (mute);
  • Скорость вентиляции (fan_speed);
  • Цвет в формате RGB (rgb);
  • Яркость (brightness).
Требования:
  1. Белый публичный IP-адрес (статический или динамический).
  2. DNS-имя, привязанное к публичному IP-адресу.
  3. Валидный SSL-сертификат на вышеуказанное DNS-имя.
  4. Возможность опубликовать обработчик навыка (endpoint, webhook) для доступа к нему из сети Интернет без запроса логина и пароля.
Кроме того, для работы с базой данных требуется активное PHP-расширение pdo_mysql (подробнее здесь).

Важно! Если в MajorDoMo используется базовая авторизация, то все вебхуки необходимо добавить в исключения авторизации. Подробнее см. здесь.

Модуль на Github - https://github.com/skysilver-lab/majordomo-yandexhome
Модуль в Connect - https://connect.smartliving.ru/tasks/482.html
СкриншотыПоказать
module_yandexhome.png
module_yandexhome.png (28.62 КБ) 20932 просмотра
module_yandexhome_panels.png
module_yandexhome_panels.png (65.4 КБ) 20932 просмотра
module_yandexhome_settings.png
module_yandexhome_settings.png (28.59 КБ) 20932 просмотра
module_yandexhome_new_dev.png
module_yandexhome_new_dev.png (18.23 КБ) 20932 просмотра
module_yandexhome_edit_dev.png
module_yandexhome_edit_dev.png (38.12 КБ) 20932 просмотра
Поддержать разработку, развитие модуля и добавление новых умений: С уважением, skysilver.
За это сообщение автора skysilver поблагодарили (всего 29):
dmw (Вс июн 09, 2019 8:20 pm) • Aven (Пн июн 10, 2019 1:06 pm) • webms (Пн июн 10, 2019 4:38 pm) • iden (Пн июн 10, 2019 4:43 pm) • C_3AXAPOB (Пн июн 10, 2019 10:22 pm) • markovrv (Вт июн 11, 2019 12:07 am) • cheetah (Ср июн 12, 2019 8:20 am) • Pau1td (Чт июн 13, 2019 9:37 am) • doc_bravn (Пт июн 14, 2019 5:30 pm) • sorochan.ilya (Пн июн 24, 2019 2:16 pm) и ещё 19
Рейтинг: 33.72%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: [Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Вс июн 09, 2019 2:26 pm

За это сообщение автора skysilver поблагодарили (всего 4):
BET (Сб июл 13, 2019 2:15 pm) • alibi75 (Пн авг 05, 2019 10:10 pm) • Peter (Пн сен 09, 2019 10:22 pm) • Mavric (Чт сен 19, 2019 8:32 pm)
Рейтинг: 4.65%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: [Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Вс июн 09, 2019 2:26 pm

Как задавать вопрос

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

Известные проблемы и ограничения
  • Не синхронизируется список устройств в приложении Яндекс Quasar.
    РешениеПоказать
    1. Вебхуки требуют ввода логина и пароля при доступе к ним не из домашней сети. Необходимо проверить это, открыв адреса вебхуков в браузере через мобильный интернет, либо через прокси и т.п. Если логин/пароль запрашивается, то нужно добавить вебхуки в исключения авторизации MajorDoMo. Подробнее см. здесь.
    2. Невалидный SSL-сертификат (истек срок действия, выпущен не на тот домен, либо вообще отсутствует). Необходимо сгенерировать и установить корректный SSL-сертификат и проверить доступность вебхуков из вне по протоколу HTTPS.
    3. Истек срок действия токена доступа. Необходимо отвязать аккаунт вашего приватного навыка в приложении Яндекс и затем повторно объединить аккаунты.
    4. Некорректная настройка веб-сервера Nginx (актуально для образа Raspberry Pi от 9.07.19). Необходимо в файл /etc/nginx/fastcgi_params добавить строку fastcgi_param PATH_INFO $fastcgi_path_info; и перезапустить Nginx.
  • Не удаляются устройства из приложения Яндекс Quasar.
    РешениеПоказать
    В настройках приложения Яндекс Quasar удалить комнату(ы), к которым привязаны устройства. После этого такие устройства перейдут в состояние "требуется настройка", и их можно будет удалить.
За это сообщение автора skysilver поблагодарили (всего 2):
alibi75 (Пн авг 05, 2019 10:10 pm) • Peter (Пн сен 09, 2019 10:23 pm)
Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: [Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Вс июн 09, 2019 3:15 pm

Всем причастным спасибо за донаты. Публикация модуля запланирована на следующую неделю.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Aven » Пн июн 10, 2019 1:13 pm

А зачем нужен PDO ?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: [Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Пн июн 10, 2019 1:17 pm

Aven писал(а):
Пн июн 10, 2019 1:13 pm
А зачем нужен PDO ?
Не стал с нуля писать поддержку OAuth2. Использовал готовую библиотеку, а в ней хранилище токенов в MySQL через PDO реализовано.
За это сообщение автора skysilver поблагодарил:
TurburatoR (Пн июн 10, 2019 1:53 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: [Модуль] Yandex Home (yandexhome)

Сообщение dmw » Пн июн 10, 2019 1:45 pm

skysilver писал(а):
Пн июн 10, 2019 1:17 pm
Использовал готовую библиотеку, а в ней хранилище токенов в MySQL через PDO реализовано.
Эту брали? https://github.com/bshaffer/oauth2-server-php
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: [Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Пн июн 10, 2019 1:48 pm

dmw писал(а):
Пн июн 10, 2019 1:45 pm
Эту брали? https://github.com/bshaffer/oauth2-server-php
Да, она самая.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: [Модуль] Yandex Home (yandexhome)

Сообщение skysilver » Пн июн 10, 2019 10:43 pm

Изображение

MajorDoMo и Яндекс Алиса. Модуль Yandex Home.

Часть 5. О модуле Yandex Home.

Читать статью в блоге
За это сообщение автора skysilver поблагодарили (всего 2):
iden (Пт июн 14, 2019 4:18 am) • alibi75 (Пн авг 05, 2019 10:11 pm)
Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: [Модуль] Yandex Home (yandexhome)

Сообщение Aven » Вт июн 11, 2019 4:06 pm

skysilver писал(а):
Пн июн 10, 2019 1:17 pm
Aven писал(а):
Пн июн 10, 2019 1:13 pm
А зачем нужен PDO ?
Не стал с нуля писать поддержку OAuth2. Использовал готовую библиотеку, а в ней хранилище токенов в MySQL через PDO реализовано.
Понятно, я велосипед написал, хотя там малая часть возможностей OAuth2 нужна... ))
Ответить