Перейти к содержанию

Алиса и Home Assistant: различия между версиями

Материал из Wiki yaboard
мНет описания правки
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 3: Строка 3:
__TOC__
__TOC__


 
{{Hands}}
{{Skills}}


== Небольшое введение ==
== Небольшое введение ==


 
Open-source платформа умного дома [https://www.home-assistant.io/ Home Assistant] (а подробнее на русском [//habr.com/ru/post/370569/ например, здесь]), написанная на питоне, поддерживает Amazon Alexa и Google Assistant. К сожалению, на момент написания статьи Yandex Smart Home / Алисы в комплектных компонентах Ассистента отсутствует. Но есть и хорошая новость: существует система пользовательских компонентов, позволяющая добавить такую поддержку вручную через компонент Yandex Smart Home. После завершения всех действий Home Assistant окажется виртуальным производителем в списке поставщиков УД приложения Яндекс.
Open-source платформа умного дома [https://www.home-assistant.io/ Home Assistant] (а подробнее на русском [//habr.com/ru/post/370569/ например, здесь]), написанная на питоне, поддерживает Amazon Alexa и Google Assistant. К сожалению, на момент написания статьи Yandex Smart Home / Алисы в комплектных компонентах Ассистента отсутствует. Но есть и хорошая новость: существует система пользовательских компонентов, позволяющая добавить такую поддержку вручную. После завершения всех действий Home Assistant окажется виртуальным производителем в списке поставщиков УД приложения Яндекс.
 
 
Далее подразумевается, что Home Assistant уже настроен и работает - и осталось только соединить его с системой умного дома Яндекса.
 
 
== Возможности компонента ==
 
 
Неофициальный компонент из текущей инструкции пока поддерживает следующие категории устройств:
* climate (вкл/выкл, температура, режим, скорость вентиляции)
* cover (вкл/выкл = закрыть/открыть)
* fan (вкл/выкл, скорость)
* group (вкл/выкл)
* input_boolean (вкл/выкл)
* light (вкл/выкл, яркость, цвет, цветовая температура)
* media_player (вкл/выкл, вкл/выкл звука)
* switch (вкл/выкл)
* vacuum (вкл/выкл)
 
== Подключение компонента ==
 
* Настроить SSL сертификат если это ещё не было сделано.
 
* В [https://www.home-assistant.io/docs/configuration/ каталоге настроек] создать папку ''custom_components'', если её нет (например, ''~/.homeassistant/custom_components'');
 
* Склонировать (или скачать архив и распаковать) <span class="tocopy">github.com/dmitry-k/yandex_smart_home</span> в созданную папку ''.homeassistant/custom_components'' (в результате получится, например ''~/.homeassistant/custom_components/yandex_smart_home'')
 
* Включить компонент в ''configuration.yaml'':
** минимальная настройка - добавить строку ''"yandex_smart_home:"''
** более тонкая настройка описана в [//github.com/dmitry-k/yandex_smart_home/blob/master/README.md README на github]
 
* Перезапустить Home Assisstant
 
* Зайти на [//dialogs.yandex.ru dialogs.yandex.ru] и создать диалог "Умный дом" (ВАЖНО: это необходимо сделать из-под того аккаунта, который планируется использовать!)
 
* Заполнить форму;
** в качестве Endpoint URL использовать https://[YOUR HOME ASSISTANT URL:PORT]/api/yandex_smart_home
** включить приватность.
 
* Создать связку аккаунтов:
 
::{| class="wikitable"
|-
! scope="row" | Client identifier
| <nowiki>https://social.yandex.net/</nowiki>
|-
! scope="row" | API authorization endpoint
| https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize
|-
! scope="row" | Token Endpoint
| https://[YOUR HOME ASSISTANT URL:PORT]/auth/token
|-
! scope="row" | Refreshing an Access Token
| https://[YOUR HOME ASSISTANT URL:PORT]/auth/token
|}
 
* Опубликовать/"Отправить на модерацию" (для приватных навыков она автоматическая и моментальная).
 
* В приложении Яндекс на Android/iOS добавить устройства (созданный нами диалог должен появиться в популярных производителях).
 
 
PROFIT!!!
 
 
== Уведомление УДЯ об изменении статуса устройств ==
 
 
Если вы хотите уведомлять Умный Дом Яндекса об изменении состояния ваших устройств, вам необходимо дополнительно настроить три параметра в конфигурации: [https://oauth.yandex.ru/authorize?response_type=token&client_id=c473ca268cd749d3a8371351a8f2bcbd OAuth-токен], [https://dialogs.yandex.ru/developer идентификатор навыка] в Диалогах (skill_id) и идентификатор пользователя (user_id) Home Assistant (https://[YOUR_HOME_ASSISTANT_URL:PORT]/config/users), к которому привязан навык.
 
[[Файл:User ID.png|мини]]
 
Идентификатор пользователя (user_id) это ''не то же самое'', что имя пользователя Home Assistant. Это 32-значный идентификатор, который можно узнать, выбрав нужного пользователя в настройках (см. картинку).
 
Пример настройки:
 
yandex_smart_home:
  notifier:
    oauth_token: AgAAAAAEEo2aYYR7m-CEyS7SEiUJjnKez3v3GZe
    skill_id: d38d4c39-5846-ba53-67acc27e08bc
    user_id: f9701ad48ba05a91604e480dd60899b8
 
Если Вам нужно уведомлять несколько навыков или у вас несколько пользователей используют один навык (см. [https://yandex.ru/dev/dialogs/alice/doc/access.html Шаринг навыков]), Вы можете ввести их данные списком.
 
yandex_smart_home:
  notifier:
    - oauth_token: XXXXXXXXXXXXXXXXXXXXXXXXXXX
      skill_id: xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx
      user_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    - oauth_token: YYYYYYYYYYYYYYYYYYYYYYYYYYY
      skill_id: yyyyyyyy-yyyy-yyyy-yyyyyyyyyyyy
      user_id: yyyyyyyyyyyyyyyyyyyyyyyyyyyy
 
== Возможные ошибки ==
 
 
=== Bad certificate ===




Опытным путём выяснилось, возникает не только для этого компонента, но и ряда Навыков. Тонкие настройки ssl, nginx с белым ip и корректным ssl от letsencrypt - к успеху не привели. При этом та же система работает с большинством других навыков.
== Компонент Yandex Smart Home ==
* Официальная документация компонента: https://docs.yaha-cloud.ru
* Чат в Telegram: https://t.me/yandex_smart_home
* Исходный код: https://github.com/dext0r/yandex_smart_home


Найденное решение: на сервере должен быть т.н. [[Fullchain-сертификаты и как их добыть | fullchain сертификат]].


=== IPv6 ===
== Несколько аккаунтов Яндекс в одном Home Assistant ==
Если ваш сайт доступен по IPv6, убедитесь что навык доступен по этому протоколу, так как сервера яндекса будут в первую очередь стучаться по IPv6 если он задан для домена.


=== Ещё варианты ===
Инструкции находятся здесь:
Так же поддержка рекомендует указать Сайт для верификации и добавить его в [https://webmaster.yandex.ru Яндекс.Вебмастер], если этого ещё не сделано.
* [[Home Assistant и несколько аккаунтов Яндекс: медиаплеер]]
Если ничего не помогает и в логах сервера не видно запросов от яндекса, то ещё можно зарегистрироваться на [https://www.cloudflare.com CloudFlare CDN] и перевести сайт на работу через этот сервис, благо бесплатный тариф там имеет весьма широкие возможности.
* [[Home Assistant и несколько аккаунтов Яндекс: Умный дом]]




[[Category:Умный дом]]
[[Category:Умный дом]]
[[Category:Своими руками]]
[[Category:Своими руками]]

Текущая версия от 08:44, 4 апреля 2023

Требуются прямые руки И вдумчивое отношение к инструкции
Мы не несём никакой ответственности за правильное или неправильное применение, или неприменение, и/или неспособность применить данное руководство.
Телефон вызова экстренных служб - 112.

Небольшое введение

Open-source платформа умного дома Home Assistant (а подробнее на русском например, здесь), написанная на питоне, поддерживает Amazon Alexa и Google Assistant. К сожалению, на момент написания статьи Yandex Smart Home / Алисы в комплектных компонентах Ассистента отсутствует. Но есть и хорошая новость: существует система пользовательских компонентов, позволяющая добавить такую поддержку вручную через компонент Yandex Smart Home. После завершения всех действий Home Assistant окажется виртуальным производителем в списке поставщиков УД приложения Яндекс.

Компонент Yandex Smart Home

Несколько аккаунтов Яндекс в одном Home Assistant

Инструкции находятся здесь: