Компонент позволяет добавить устройства из Home Assistant в платформу умного дома Яндекса (УДЯ) и управлять ими с любого устройства с Алисой: умные колонки, приложение на телефоне, веб интерфейс "квазар".
- Предварительные требования
- Установка
- Настройка
- Фильтрация устройств
- Тонкая настройка устройств
- Уведомления об изменении состояний устройств
- Прочие настройки
- Проблемы
- Полезные ссылки
- Пример конфигурации
- Home Assistant версии 2021.7 или новее.
- Доступность Home Assistant из интернета по доменному имени используя белый IP адрес или сторонние сервисы: Dataplicity, KeenDNS.
- Настроенный HTTPS сертификат. Для белого IP адреса можно воспользоваться официальным аддоном Let's Encrypt. При использовании Dataplicity или KeenDNS HTTPS настраивается автоматически. Самоподписанные сертификаты работать не будут.
Способ 1: HACS
HACS > Интеграции > Добавить > Yandex Smart Home > Установить
Способ 2: Вручную скопируйте папку custom_components/yandex_smart_home
из latest release в директорию /config/custom_components
Все настройки выполняются через конфигурационный файл. После изменений в файлах не забывайте перезапускать компонент через страницу "Интеграции" в Home Assistant (или через "Настройки" -> "Управление сервером").
-
Для базовой настройки компонента добавьте строку
yandex_smart_home:
в файлconfiguration.yaml
и перезапустите Home Assistant. Если у вас много устройств, или вы хотите отдавать в УДЯ только некоторые, рекомендуется сразу настроить фильтры. -
Проверьте доступность HA из интернета и корректность настройки компонента
-
Зайдите на dialogs.yandex.ru и создайте диалог (навык) с типом "Умный дом". Желательно это делать из под аккаунта, который планируется использовать для управления умным домом. При необходимости доступ к диалогу можно предоставить другим пользователям Яндекса (вкладка Доступ).
-
Вкладка "Настройки":
Поле Значение Backend Endpoint URL: https://[YOUR_HA_DOMAIN:PORT]/api/yandex_smart_home
(пример:https://XXXX.dataplicity.io/api/yandex_smart_home
)Тип доступа Приватный Подзаголовок Любой Имя разработчика Любое Официальный навык Нет Описание Любое Иконка Любая (например эта) -
Вкладка "Связка аккаунтов":
Поле Значение Идентификатор приложения https://social.yandex.net/ Секрет приложения Любой, например: secret
URL авторизации https://[YOUR_HA_DOMAIN:PORT]/auth/authorize
URL для получения токена https://[YOUR_HA_DOMAIN:PORT]/auth/token
URL для обновления токена https://[YOUR_HA_DOMAIN:PORT]/auth/token
-
-
На вкладке "Настройки" обязательно нажмите "Опубликовать" (для приватных навыков публикация автоматическая и моментальная). Не используйте навык в режиме "Черновик", это может вызывать различные проблемы (дубли уcтройств, ошибки в нотификаторе). В этот момент УДЯ попробует подключиться к вашему Home Assistant, и если у него не получится - появятся ошибки валидации.
-
В приложении Яндекс на Android/iOS (или в квазаре) добавьте устройства умного дома, в производителях выберите диалог, который создали ранее (ищите по названию).
-
Должна произойти переадресация на страницу авторизации Home Assistant. Рекомендуется создать отдельного пользователя специально для УДЯ и авторизоваться под ним. В этом случае в журнале событий будет видно, когда устройством управлял Яндекс.
-
Настоятельно рекомендуется настроить уведомления об изменении состояний.
По умолчанию в УДЯ отдаются все поддерживаемые компонентом устройства (в том числе из доменов script
и scene
).
Отфильтровать устройства можно через словарь filter
.
Поддерживаемые фильтры: include_domains
, include_entities
,
include_entity_globs
, exclude_domains
, exlude_entities
, exclude_entity_globs
.
Приоритизация по фильтрам работает аналогично фильтрам в интеграции Recorder.
Фильтры используется только при добавлении новых устройств в УДЯ. Если устройство уже добавлено в УДЯ, его исключение с помощью фильтров не даст никакого эффекта и устройства потребуется удалять из УДЯ вручную. Поэтому фильтры лучше настраивать сразу, особенно если в Home Assistant много устройств.
Пример конфигурации:
yandex_smart_home:
filter:
include_domains:
- switch
- light
include_entities:
- media_player.tv
- media_player.tv_lg
- media_player.receiver
include_entity_globs:
- sensor.temperature_*
exclude_entities:
- light.highlight
exclude_entity_globs:
- sensor.weather_*
Для каждого устройства можно задать индивидуальные параметры для изменения некоторых значений по умолчанию.
Выполняется через словарь entity_config
.
Наличие устройства в entity_config
не означает, что оно будет отдано в УДЯ. Не забудьте разрешить устройство в фильтрах.
Параметр | По умолчанию | Варианты | Описание |
---|---|---|---|
name |
Русские буквы и пробелы | Отображаемое название устройства | |
room |
Русские буквы и пробелы | Комната, в которой находится устройство, подробнее о комнатах... | |
type |
Автоматически | Список | Переопредление стандартного типа устройства. Например домен switch по умолчанию отдается как "выключатель" (devices.types.switch ) и реагирует на команду "Алиса, включи ХХХ". А если задать devices.types.openable , то у такого устройства изменится иконка и фраза на "Алиса, открой XXX" |
turn_on |
Автоматически | Вызываемый сервис при включении устройства | |
turn_off |
Автоматически | Вызываемый сервис при выключении устройства | |
features |
volume_mute , volume_set , next_previous_track |
Только для домена media_player . Явное указание поддерживаемых устройством функций. Использутся для устройств, которые меняют набор функций в зависимости от своего состояния (например Chrome Cast). |
|
channel_set_via _media_content_id |
false |
true / false |
Только для домена media_player . Выбор конкретного канала через media_content_id , подробнее.... Если у вас телевизор подключен через SmartIR, скорее всего вам нужно включить этот параметр. |
Пример конфигурации:
yandex_smart_home:
entity_config:
fan.xiaomi_miio_device:
name: Увлажнитель
room: Гостинная
type: devices.types.humidifier
switch.gate:
name: Ворота
room: Улица
type: devices.types.openable
climate.smart_ir:
name: Кондиционер
room: Кухня
turn_on:
service: climate.turn_on
entity_id: climate.smart_ir
Если для устройства заданы name
и room
УДЯ при обновлении списка устройств автоматически добавит его в нужную комнату.
Важные уточнения:
- Комната уже должна существовать.
- При ручном обновлении устройств (или при первичной настройке) важно не выбирать "Дом", а просто понажимать стрелку "Назад":
Нажать "Далее" | Не нажимать "Выбрать", вместо этого нажимать стрелку назад |
Для некоторых устройств в УДЯ предусмотрено управление режимами. Типичные примеры - охлаждение/нагрев/осушение для кондиционера, или низкая/средняя скорость вращения для вентилятора.
Список режимов в УДЯ фиксированный,
поэтому их необходимо связывать со значениями атрибутов в Home Assistant. Для большинства устройств этот процесс (маппинг)
происходит автоматически, но в некоторых случаях это требуется сделать вручную через параметр modes
в entity_config
.
Со стороны УДЯ нет жесткой привязки значений режимов к типам устройств. Другими словами, у режима "Скорость вентиляции"
(fan_speed
) значения могут быть не только "низкое", "высокое", но и совсем от другого типа устройств, например "дичь" или "эспрессо".
Если маппинг не удался - управление функцией через УДЯ будет недоступно.
Пример конфигурации:
yandex_smart_home:
entity_config:
light.led_strip:
modes:
scene:
sunrise:
- Wake up
alarm:
- Blink
climate.some_ac:
modes:
fan_speed:
auto: [auto]
min: ['1','1.0']
turbo: ['5','5.0']
max: ['6','6.0']
swing:
auto: ['SWING']
stationary: ['OFF']
scene
,fan_speed
,swing
- режим/функция со стороны УДЯauto
,stationary
,alarm
- значение режима со стороны УДЯ (все возможные значения)- Списки значений (
Wake Up
,Swing
и т.п.) - значения атрибута сущности в Home Assistant, которое соответствует значению режима в УДЯ. Задавать лучше строками в кавычках.
Ниже детальная информация по поддерживаемым режимам и их значениям.
Установка температурного режима работы климатической техники, например, в кондиционере.
- Поддерживаемые домены:
climate
- Рекомендуемые значения режимов:
heat
,cool
,auto
,dry
,fan_only
- Атрибут в Home Assistant:
hvac_modes
Установка направления воздуха в климатической технике.
- Поддерживаемые домены:
climate
- Рекомендуемые значение режимов:
vertical
,horizontal
,stationary
,auto
- Атрибут в Home Assistant:
swing_modes
Установка какой-либо программы работы.
- Поддерживаемые домены:
humidifier
,fan
- Рекомендуемые значения режимов:
normal
,eco
,min
,turbo
,medium
,max
,quiet
,auto
,high
- Атрибут в Home Assistant:
humidifier
:available_modes
fan
:preset_modes
(если поддерживается установка скорости в процентах)
Установка режима работы скорости вентиляции, например, в кондиционере, вентиляторе или обогревателе.
- Поддерживаемые домены:
fan
,climate
- Рекомендуемые значения режимов:
auto
,quiet
,low
,medium
,high
,turbo
- Атрибут в Home Assistant:
fan
:preset_modes
(если не поддерживается установка скорости в процентах, сервисfan.set_speed_percentage
)fan
:speed_list
(сли не поддерживается установка скорости в процентах и режимы, устарело)climate
:fan_modes
Некоторые вентиляторы позволяют устанавливать скорость вентиляции в процентах, используя сервис fan.set_speed_percentage
. Для таких вентиляторов компонент автоматически соотнесёт режим в УДЯ и скорость в процентах для режима "Скорость вентиляции".
Автоматическое соотношение можно переопределить путём указания числа с процентами в качестве режима со стороны HA в конфигурации устройства. Пример:
yandex_smart_home:
entity_config:
fan.xiaomi:
modes:
fan_speed:
low: ['10%'] # округляйте до целого
normal: ['50%']
Рекомендуемые значения режимов: eco
, quiet
, low
, medium
, normal
, high
, turbo
Установка режима уборки.
- Поддерживаемые домены:
vacuum
- Рекомендуемые значения режимов:
auto
,turbo
,min
,max
,express
,normal
,quiet
- Атрибут в Home Assistant:
fan_speed_list
Установка источника сигнала.
- Поддерживаемые домены:
media_player
- Рекомендуемые значения режимов:
one
,two
,three
,four
,five
,six
,seven
,eight
,nine
,ten
- Атрибут в Home Assistant:
source_list
Изменение режима работы светящихся элементов устройства в соответствии с предустановленными темами и сценариями освещения.
- Поддерживаемые домены:
light
- Значения режимов:
alarm
,alice
,candle
,dinner
,fantasy
,garland
,jungle
,movie
,neon
,night
,ocean
,party
,reading
,rest
,romance
,siren
,sunrise
,sunset
(список фиксированный, другими значениями не расширяется) - Атрибут в Home Assistant:
effect_list
Иногда возможностей компонента недостаточно и хочется добавить свои функции, переключатели и регулировки.
Это можно сделать через "пользовательские умения" для каждого устройства отдельно через entity_config
.
Важно! Пользовательские умения являются приоритетными и перекрывают встроенные в компонент.
Поддерживается несколько вида пользовательских умений:
- Режимы (
mode
) - переключение режимов работы устройства (режим работы кондиционера, уборки, источника сигнала и т.п.). Настраиваются через словарьcustom_modes
. - Переключатели (
toggle
) - управление функциями, которые включаются и выключаются (пауза, вращение вентилятора, ионизация и т.п.). Настраиваются через словарьcustom_toggles
. - Выбор из диапазона (
range
) - управление параметрами устройства, которые имеют диапазон (яркость лампы, громкость звука, температура нагревателя). Настраиваются через словарьcustom_ranges
.
В каждое умение входит ряд функций (например функция volume
в умении range
). Для одного устройства может быть несколько функций в разных умениях (или в одном). Дубликаты фукнций невозможны (т.е. volume
может быть только одна для одного устройства).
Функции никак не привязаны к типу устройства, а это значит, что функция "громкость" может быть, например, у выключателя или увлажнителя. Это позволяет реализовывать безумный набор умений в одном устройстве.
Для всех умений есть общие и специфичные параметрами. Специфичные параметры смотрите в разделе посвящённому конкретному умению.
Общие параметры:
state_entity_id
: Сущность в состоянии или атрибуте которой хранится текущее значение умения (громкость, яркость, режим и т.п.). По умолчанию та, для которой настраивается пользовательское умение.state_attribute
: Атрибут, в котором хранится текущее значение умения. Если не задан - значение берётся из состояния.
Выбирает режим работы устройства, при изменении которого будут выполняться произвольные сервисы. Смотрите список всех доступных функций.
Примеры: коферка, которая варит кофе скриптом script.makemeonecupofcoffee
или моющий ылесос Xiaomi, в котором хочется управлять количеством подаваемой воды через сервис xiaomi_vacuum.set_water_level
.
Для пользовательского режима автоматического связывание между значениями УДЯ и Home Assistant не производится. Вам нужно
вручную задать соответствия через modes
!
Специфичные параметры:
set_mode
: Вызываемый сервис при выборе режима в УДЯ. В переменнойmode
- значение режима на стороне Home Assistant. Пример:set_mode: service: xiaomi_vacuum.set_water_level entity_id: vacuum.xiaomi_mop data: water_level: '{{ mode }}'
-
Моющий пылесос Xiaomi (
vacuum.xiaomi_mop
).Атрибуты:
water_level: High water_level_list: - Low - Med - High
Конфигурация компонента:
yandex_smart_home: entity_config: vacuum.xiaomi_mop: modes: work_speed: # соответствие между режимами УДЯ и HA eco: [Low] medium: [Med] max: [High] custom_modes: work_speed: state_attribute: water_level set_mode: service: xiaomi_vacuum.set_water_level entity_id: vacuum.xiaomi_mop data: water_level: '{{ mode }}' # сюда подставятся Low/Med/High
-
Кофеварка, которая умеет варить кофе скриптами (
climate.hotcoffee
)Конфигурация компонента:
yandex_smart_home: entity_config: climate.hotcoffee: type: devices.types.cooking.coffee_maker modes: coffee_mode: cappuccino: [cappuccino] latte: [latte] custom_modes: coffee_mode: set_mode: service: script.make_me_{{ mode }}_coffee # вызовется script.make_me_latte_coffee
Управление функциями устройств, которые включаются и выключаются. Смотрите список всех доступных функций.
Специфичные параметры:
turn_on
иturn_off
: Вызываемые сервисы при включении/выключении функции в УДЯ. Пример:turn_on: service: xiaomi_miio_airpurifier.fan_set_ptc_on entity_id: fan.xiaomi_airfresh_va4 turn_off: service: xiaomi_miio_airpurifier.fan_set_ptc_off entity_id: fan.xiaomi_airfresh_va4
-
Управление функцией подогрева для бризера Xiaomi (
fan.xiaomi_airfresh_va4
)Атрибуты:
model: zhimi.airfresh.va4 ptc: false # а может быть true (on/off тоже подходит)
Конфигурация компонента:
yandex_smart_home: entity_config: fan.xiaomi_airfresh_va4: custom_toggles: keep_warm: state_attribute: ptc turn_on: service: xiaomi_miio_airpurifier.fan_set_ptc_on entity_id: fan.xiaomi_airfresh_va4 turn_off: service: xiaomi_miio_airpurifier.fan_set_ptc_off entity_id: fan.xiaomi_airfresh_va4
Управление параметрами устройства, которые имеют диапазон регулировки (громкость, яркость, температура). Смотрите список всех доступных функций.
Специфичные параметры:
set_value
: Сервис вызываемый при любой регулировке функции. В переменнойvalue
абсолютное или относительное значение (в зависимости от настроекrange
). Пример:set_value: service: xiaomi_miio_airpurifier.fan_set_favorite_speed entity_id: fan.xiaomi_airfresh_a1 data: speed: '{{ value }}'
range
: Граничные значения диапазона. Дляhumidity
,open
,brightness
есть ограничение: минимум0
, максимум100
. Если не задатьmin
иmax
регулировка будет только относительная (в переменнойvalue
-1
или-1
). Пример:range: # диапазон от -100 до 100 min: -100 max: 100 # шаг изменения при нажатии yf плюс или минус в интерфейсе, необязательное, по умолчанию - 1 precision: 2
-
Изменение параметра
favorit_speed
на бризере Xiaomi (fan.xiaomi_airfresh_a1
)Атрибуты:
model: dmaker.airfresh.a1 favorite_speed: 80
Конфигурация компонента
yandex_smart_home: entity_config: fan.xiaomi_airfresh_a1: custom_ranges: volume: # как самое подходящее state_attribute: favorit_speed set_value: service: xiaomi_miio_airpurifier.fan_set_favorite_speed data: speed: '{{ value }}' # значения для примера range: min: 60 max: 300 precision: 20 # по вкусу
В УДЯ кроме устройств можно отдавать значения некоторых цифровых датчиков, таких как "температура", "заряд батареи" и других.
Бинарные датчики (двери, утечка) и события (вибрация, нажатие кнопки) доступны только участникам бета-теста УДЯ (подробнее...). Если вы один из них, то для включения поддержки бинарных датчиков требуется задать beta: true
в секции settings
настроек интеграции.
Отдать показания датчика можно несколькими способами:
-
Если датчик представлен атрибутом устройства (например атрибут
water_level
у увлажнителяhumidifer.sample
) - достаточно отдать в УДЯ через фильтр толькоhumidifer.sample
, уровень воды подхватится автоматически в большинстве случаев.Либо такой датчик можно сконфигурировать вручную через значения
type
иattribute
(см. пример конфигурации ниже). -
Датчик представлен отдельным устройством, значение в state (например
sensor.room_temp
сdevice_class: temperature
) - достаточно отдать такое устройство через фильтр. Будет работать только в случае если у датчика поддерживаемыйdevice_class
. -
Датчик представлен отдельным устройством, но его требуется представить как датчик другого устройства. Пример: уровень батареи
sensor.room_temp_battery
включить в датчик с температурыsensor.room_temp
, или влажность в комнатеsensor.bedroom_humidity
включить в увлажнительhumidifier.bedroom
. В этом случае дополнительные датчики и их типы (полеtype
) задаются как элементы спискаproperties
основного устройства:
yandex_smart_home:
filter:
include_entities:
- humidifier.bedroom
- sensor.kitchen_meteo_temperature
entity_config:
humidifier.bedroom:
properties:
- type: temperature
entity: sensor.bedroom_temperature
- type: humidity
entity: sensor.bedroom_humidity
- type: tvoc
attribute: total_volatile_organic_compounds
unit_of_measurement: ppb # для автоматической конвертации из миллиардных долей в мкг/м³
- type: water_level
entity: sensor.humidifier_level
- type: battery_level # если хочется переместить датчик "из атрибута" в конец списка
attribute: battery_level
sensor.kitchen_meteo_temperature:
name: Погода на кухне
properties:
# температуру отдельно можно не прописывать, она подхватится сама
- type: temperature
entity: sensor.kitchen_meteo_temperature
- type: humidity
entity: sensor.kitchen_meteo_humidity
- type: battery_level
entity: sensor.kitchen_meteo_battery
Возможные значения type
:
Для устройств в домене climate
реализован особый алгоритм включения: если поддерживается режим heat_cool
или auto
-
включается этот режим, а если не поддерживает - то включение происходит через сервис climate.turn_on
(поведение сервиса зависит от интеграции, через которую подключено устройство).
В некоторых случаях включение в режиме auto
нежелательно. Чтобы этого избежать есть два разных пути:
-
Отключить
auto
путём изменения списка поддерживаемых режимов (hvac_modes
) через кастомизацию. В этом случае режимauto
так же пропадёт из интерфейса Home Assistant. Пример:climate.smartir_ac: hvac_modes: - cool - heat - dry - 'off'
-
Переопределить сервис включения в
entity_config
:yandex_smart_home: entity_config: climate.smartir_ac: turn_on: service: climate.turn_on entity_id: climate.smartir_ac
yandex_smart_home:
entity_config:
media_player.receiver:
range:
max: 95
min: 20
precision: 2
Для уведомления УДЯ об актуальном состоянии устройств и датчиков настоятельно рекомендуется выполнить настройку службы notifier
.
Если этого не сделать, УДЯ будет узнавать актуальное состояние только при входе в устройство или обновлении страницы.
Так же однозначно будут проблемы при использовании команд вида "Алиса, вентилятор" (без указания что именно нужно сделать),
так как состояние устройства меняется не только через УДЯ, но и в Home Assistant напрямую.
Кроме передачи состояний notifier
инициирует обновление списка устройств в УДЯ при перезапуске Home Assistant или перезагрузке конфигурации.
Благодаря этому можно не нажимать "Обновить список устройств" при появлении нового устройства или изменении фильтров,
а достаточно просто перезапустить HA или перезагрузить конфигурацию компонента.
Обновление происходит в течение 10 - 20 секунд после старта, либо мгновенно при перезагрузке конфигурации.
Для настройки понадобятся:
-
oauth_token
: Получить по этой ссылке. В Яндексе нужно быть авторизованным под тем же аккаунтом, под которым используется УДЯ. -
skill_id
: "Идентификатор диалога" на вкладке "Общие сведения" в консоли Яндекс.Диалоги. -
user_id
: ID пользователя в Home Assistant под которым выполнялась авторизация при привязке диалога. Посмотреть в Настройки -> Пользователи -> (выбрать пользователя) -> ID:
Добавить в конфигурацию (xxxx
заменить реальными значениями):
yandex_smart_home:
notifier:
- oauth_token: XXXXXXXXXXXXXXXXXXXXXXXXXXX
skill_id: xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx
user_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Если к диалогу предоставлен доступ другому пользователю,
# или используется несколько разных диалогов - можно добавить несколько записей:
- oauth_token: XXXXXXXXXXXXXXXXXXXXXXXXXXX
skill_id: xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx
user_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Задаются через словарь settings
Параметр | По умолчанию | Возможные варианты | Описание |
---|---|---|---|
pressure_unit |
mmHg |
pa , mmHg , atm , bar |
Единица измерения давления, в которой будут переданы данные в УДЯ. Конвертация из значения в Home Assistant автоматическая (на основании атрибута unit_of_measurement у устройства). |
Пример:
yandex_smart_home:
settings:
pressure_unit: mmHg
- Проверьте доступность Home Assistant из интернета через сервис https://httpstatus.io:
- Вставьте ссылку
https://YOUR_HA_DOMAIN:PORT/api/yandex_smart_home/v1.0/ping
и нажмитеCheck status
. По этой ссылке должно возвращатьсяOK: количество_устройств_отдаваемых_в_УДЯ
- Убедитесь, что возвращается код
200
(столбецStatus codes
) - Если возвращается
404
- скорее всего интеграция не установлена или не настроена - Если возвращаются другие ошибки - нажмите на стрелку слева от ссылки, чтобы узнать подробнее. Пример ошибки некорректной настройки SSL сертификата:
- Если сертификат настраивался вручную: убедитесь, что используется fullchain сертификат (в случае штатного аддона Let's Encrypt он в файле fullchain.cer):
http:
ssl_certificate: /config/acme.sh/YOUR_HA_DOMAIN/fullchain.cer
ssl_key: /config/acme.sh/YOUR_HA_DOMAIN/YOUR_HA_DOMAIN.key
- Если DNS запись добавлялась вручную, убедитесь, что для используемого домена нет AAAA записи (должна быть только A).
- Убедитесь, что устройство не исключено в фильтрах. После изменения фильтров требуется перезагрузка конфигурации или перезапуск Home Assistant.
- Попробуйте обновить список устройств в УДЯ через квазар: иконка "Добавить" -> "Устройство умного дома" -> Найти/выбрать ваш диалог -> "Обновить список устройств".
- Если это не помогает, создайте issue или напишите в чат.
К сообщению приложите:
- ID и атрибуты проблемных устройств. Их можно найти в Панель разработчка (Developer Tools) -> Состояния (States).
- Конфигурацию
yandex_smart_home
(лучше целиком, или толькоfilter
иentity_config
для проблемного устройства). - Крайне желательно (но можно не сразу) приложить лог обновления списка устройства в УДЯ. Для его получения:
- Зайти в диалог на dialogs.yandex.ru/developer
- Вкладка "Тестирование" -> выбрать "Опубликованная версия"
- Нажать иконку "Добавить" -> "Устройство умного дома" -> "Обновить список устройств"
- В окне отладки появится:
Нужно только то, что в строчке Got Response и ниже (лучше файлом). Пожалуйста, не включайте строку "Sending request", в ней адрес вашего Home Assistant, пусть эта информация лучше остается в тайне :)
Sending request to provider: GET https://YOUR_HA_DOMAIN/api/yandex_smart_home/v1.0/user/devices Got response from provider XXXXX: 200 {"request_id": .... (большой json)
- Если в окне отладки пусто, а УДЯ выдает ошибку "Не получилось обновить список устройств" - нужен лог запросов и ответов со стороны Home Assistant. Для этого:
- Включите отладку через
configuration.yaml
:logger: default: warning logs: custom_components.yandex_smart_home: debug
- Перезапустите Home Assistant
- Выполните "Обновление списка устройств" в УДЯ, в логе Home Assistant появятся строчки:
Нужно только то, что в строчке Response (лучше файлом). Если до этих строчек есть ошибки - их тоже приложить.
[custom_components.yandex_smart_home.http] Request: https://YOUR_HA_DOMAIN/api/yandex_smart_home/v1.0/user/devices [custom_components.yandex_smart_home.http] Response: {"request_id": ...
- Включите отладку через
Если попытаться "быстро" управлять устройством, например изменять температуру многократными нажатиями "+", выскочит ошибка: "Что-то пошло не так. Попробуйте позднее ещё раз".
Это нормально. УДЯ ограничивает количество запросов, которые могут придти от пользователя в единицу времени. Нажимайте кнопки медленнее :)
В некоторых случаях может потребоваться полностью отвязать диалог (навыкк) от УДЯ и удалить все устройства. Это может быть полезно, когда в УДЯ выгрузили много лишнего из Home Assistant, и удалять руками каждое устройство не хочется.
Для отвязки:
- "Добавить" -> "Устройство умного дома" -> Найти/выбрать ваш диалог.
- Нажать корзинку в правом верхнем углу.
- Поставить галочку "Удалить устройства" и нажать "Отвязать от Яндекса".
Скорее всего часть устройств были добавлены в "Черновик" навыка. Удалите их оттуда вручную через dialogs.yandex.ru/developer (вкладка "Тестирование").
- https://t.me/yandex_smart_home - Чат по компоненту в Телеграме
- https://github.com/AlexxIT/YandexStation - Управление колонками с Алисой из Home Assistant и проброс устройств из УДЯ в Home Assistant
- https://github.com/allmazz/yandex_smart_home_ip - Список IP адресов платформы умного дома Яндекса
yandex_smart_home:
notifier:
- oauth_token: AgAAAAAEEo2aYYR7m-CEyS7SEiUJjnKez3v3GZe
skill_id: d38d4c39-5846-ba53-67acc27e08bc
user_id: e8701ad48ba05a91604e480dd60899a3
settings:
pressure_unit: mmHg
filter:
include_domains:
- switch
- light
- climate
include_entities:
- media_player.tv
- media_player.tv_lg
- media_player.receiver
include_entity_globs:
- sensor.temperature_*
exclude_entities:
- light.highlight
exclude_entity_globs:
- sensor.weather_*
entity_config:
switch.kitchen:
name: Выключатель
light.living_room:
name: Люстра
modes:
scene:
sunrise:
- Wake up
alarm:
- Blink
media_player.tv_lg:
channel_set_via_media_content_id: true
fan.xiaomi_miio_device:
name: Увлажнитель
room: Гостинная
type: devices.types.humidifier
properties:
- type: temperature
entity: sensor.temperature_158d000444c824
- type: humidity
attribute: humidity
- type: water_level
attribute: depth
climate.tion_breezer:
name: Проветриватель
modes:
fan_speed:
auto: [auto]
min: [1,'1.0']
low: [2,'2.0']
medium: [3,'3.0']
high: [4,'4.0']
turbo: [5,'5.0']
max: [6,'6.0']
media_player.receiver:
type: devices.types.media_device.receiver
range:
max: 95
min: 20
precision: 2
media_player.cast:
features:
- volume_mute
- volume_set
- next_previous_track
humidifier.bedroom:
modes:
program:
normal:
- normal
eco:
- away
properties:
- type: temperature
entity: sensor.bedroom_temperature
- type: humidity
entity: sensor.bedroom_humidity
- type: water_level
entity: sensor.humidifier_level
climate.ac_living_room:
name: Кондиционер
room: Гостиная
type: devices.types.thermostat.ac
custom_toggles:
ionization:
state_entity_id: switch.ac_ionizer
turn_on:
service: switch.turn_on
entity_id: switch.ac_ionizer
turn_off:
service: switch.turn_off
entity_id: switch.ac_ionizer
backlight:
state_entity_id: input_boolean.ac_lighting
turn_on:
service: input_boolean.turn_on
entity_id: input_boolean.ac_lighting
turn_off:
service: input_boolean.turn_off
entity_id: input_boolean.ac_lighting
switch.r4s1_kettle_boil:
name: Чайник
room: Кухня
custom_ranges:
temperature:
state_attribute: temperature
set_value:
service: climate.set_temperature
data:
temperature: '{{ value }}'
target:
entity_id: climate.r4s1_kettle_temp
range:
min: 40
max: 90
precision: 10
properties:
- type: temperature
entity: climate.r4s1_kettle_temp
attribute: current_temperature