Как настроить голосовое управление умным домом?
Проблема
При эксплуатации умного дома хочется меньше времени тратить на текстовый ввод команд через UI умного дома или настройку правил, поэтому часто хочется взаимодействовать голосом с умным домом и отдельными устройствами. Свое голосовое управление создавать накладно, но есть решения корпораций, например, решение от Yandex. Единственный страх, который есть - это передача своих данных и устройств под управление корпорации. В этой статье будем разбираться, что видит Yandex и как настроить голосовое управление умным домом.
Архитектура
Для начала попробуем понять, что и в какой момент видит Yandex, чтобы далее у нас не возникало лишних страхов.
sequenceDiagram
autonumber
actor User
participant Yandex as "Яндекс Облако (Алиса)"
participant YahaCloud as "Yaha Cloud (посредник)"
participant HA as "Home Assistant"
participant EventBus as "Событийная шина"
participant Scripts as "Скрипты HA"
participant Devices as "Локальные устройства"
Note over HA, YahaCloud: Постоянное исходящее WebSocket-соединение (от HA)
rect rgb(220, 245, 220)
Note over User, Yandex: ВИДИМАЯ ЗОНА (expose: true)
User->>Yandex: Голос: "включи свет"
Yandex->>YahaCloud: команда + токен
YahaCloud->>HA: передача по WebSocket
HA->>Devices: действие (MQTT/API)
Devices-->>HA: подтверждение
HA->>EventBus: state_changed
EventBus-->>HA: захват события
HA->>YahaCloud: отправка нового состояния
YahaCloud->>Yandex: синхронизация
Note over Yandex: Видит: имя, тип, статус, яркость, цвет, климат
end
rect rgb(255, 220, 220)
Note over Yandex, Scripts: НЕВИДИМАЯ ЗОНА (внутренняя логика)
Devices->>Scripts: сработал датчик движения
activate Scripts
Scripts->>Scripts: проверка условий
Scripts->>Devices: включить свет (автономно)
Devices-->>Scripts: статус обновлён
Scripts-->>HA: обновление сущности (service call)
HA->>EventBus: state_changed
EventBus-->>HA: захват события
HA->>YahaCloud: отправка финального состояния
YahaCloud->>Yandex: синхронизация
Note over Yandex: НЕ видит: датчик движения, условия, причину, промежуточные шаги
deactivate Scripts
end
rect rgb(255, 255, 200)
Note over HA, Yandex: ФИЛЬТРАЦИЯ ДАННЫХ (только expose)
HA->>YahaCloud: отправка только сущностей с expose:true
YahaCloud->>Yandex: передача разрешённых
Note over Yandex: НЕ видит: батареи, энергопотребление, HEX/RGB-сенсоры, скрытые сущности
end
Note over HA, YahaCloud: Автоматическое переподключение при обрыве
Диаграмма демонстрирует двухуровневую архитектуру управления умным домом:
Внешний контур (зелёная зона) – голосовое управление через Яндекс, которое видит только ограниченный набор опубликованных сущностей и их состояний.
Внутренний контур (красная зона) – полностью автономная логика Home Assistant (датчики, сценарии, условия), которая скрыта от облачного сервиса и не передаёт детали выполнения.
Фильтрация (жёлтая зона) гарантирует, что в Яндекс отправляются только заранее разрешённые данные, что повышает безопасность и сохраняет конфиденциальность внутренней структуры системы.
Оборудование
П.П. |
Товар |
Примечание |
|---|---|---|
1. |
Моя первая умная колонка ;) |
|
2. |
Компактное крепление без лишних проводов |
HA
Через HACS устанавливаем интеграции:
П.П. |
Интеграция |
Примечание |
|---|---|---|
1. |
Управление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant |
Управление через Yandex станцию. Простыми словами: даем доступ Yandex к HA. |
2. |
Просмотр Yandex музыки. |
|
3. |
Красивое отображение станции в виде плеера. |
|
4. |
Для отображения иконок Yandex экосистемы. |
|
5. |
Умный дом от Yandex. Простыми словами: даем доступ HA к Yandex. |
Управление Яндекс.Станцией и другими устройствами умного дома с Алисой из Home Assistant Установка через QRCode -> Выбираем станцию
Yandex Media Browser Добавляем как пользовательский репозиторий -> Выбираем auto при настройке интеграции
Media card for Home Assistant Lovelace UI Устанавливаем ->Добавляем в
configuration.yaml:
lovelace:
resources:
- url: /local/mini-media-player/mini-media-player-bundle.js?v=1.16.12
type: module
Добавляем карточку в выбранную область:
entity: media_player.yandex_station_ff98f029113e505d84e733da
artwork: cover
sound_mode: icon
shortcuts:
attribute: sound_mode
buttons:
- icon: mdi:account-voice
id: Произнеси текст
type: sound_mode
- icon: mdi:robot
id: Выполни команду
type: sound_mode
- icon: mdi:playlist-star
id: включи мою любимую музыку вперемешку
type: command
- icon: mdi:playlist-music
id: включи плейлист дня
type: command
- icon: mdi:heart
id: лайк
type: command
- icon: mdi:heart-off
id: снять лайк
type: command
columns: 6
hide:
sound_mode: true
runtime: false
tts:
platform: yandex_station
type: custom:mini-media-player
Иконки Яндекс устройств для Home Assistant Добавляем в
configuration.yaml:
frontend:
extra_module_url:
- /local/community/custom-brand-icons/custom-brand-icons.js
Управление устройствами из Home Assistant через Алису Используем облачный тип подключения -> Выбор объектов через интерфейс -> Добавляем устройства для теста -> Сохраняем данные для привязки устройства.
Смартфон
Устанавливаем на Android приложение «Дом с Алисой». Почти все управление умным домом со стороны Yandex будет выполняться через это приложение. Для импорта устройства с HA: Добавить -> Устройство умного дома -> Yaha Cloud -> Следуем инструкциям на экране. Таким образом, передаем необходимые нам устройства и скрипты автоматизаций.
Пример
Чтобы проверить функционал, можем прямо через плеер вставить текст для оповещения:
Итог
Что имеем после произведенных изменений:
Управление умной колонкой с HA, в том числе нашей музыкой.
Пробрасывать необходимые устройства в Yandex и контролировать их с умной колонки.
Настраивать автоматизации с участием умной колонки. Самый частый случай использования: оповещение о каких-то событиях.
Возможность оформлять уникальным набором иконок необходимые объекты.
Ссылки: