Маппинг бинарных датчиков HA в типы устройств Дома с Алисой
Правильная интеграция бинарных датчиков из Home Assistant в экосистему Яндекса — залог корректной работы голосовых уведомлений и автоматических сценариев. Бинарные датчики (сущности, имеющие только два состояния: on и off) используются для отслеживания движения, открытия дверей, обнаружения протечек воды, дыма или газа.
Если пробросить бинарный датчик без указания его класса, Яндекс распознает его как обобщенный бинарный переключатель. В этом случае Алиса не сможет озвучить состояние фразой вроде «Дверь в гостиную открыта» или «Обнаружена протечка в ванной», ограничившись невнятным «Устройство включено» или «Устройство выключено». Для решения этой проблемы используется механизм сопоставления типов через указание device_class в Home Assistant.
Что такое device_class и почему он важен?
Атрибут device_class в Home Assistant указывает системе, какую физическую роль выполняет датчик. Интеграция yandex_smart_home считывает этот параметр и автоматически сопоставляет его с соответствующим типом устройства в Доме с Алисой.
Основные сопоставления типов бинарных датчиков в экосистеме Яндекса представлены ниже:
- Датчик движения или присутствия: Классы
motionилиoccupancy. В Яндексе они отображаются какdevices.types.sensor.motion. Позволяют Алисе отвечать на вопросы о том, есть ли кто-то в комнате, а также служат триггером для запуска сценариев освещения. - Датчик открытия: Классы
door,windowилиopening. Сопоставляются с типомdevices.types.sensor.open. С их помощью можно спросить: «Алиса, открыто ли окно в детской?» или настроить автоматические уведомления. - Датчик протечки воды: Класс
moisture. Превращается вdevices.types.sensor.water_leak. Это критически важный сенсор для автоматического перекрытия шаровых кранов при обнаружении воды на полу. - Датчик дыма: Класс
smoke. Превращается вdevices.types.sensor.smoke. Яндекс распознает его как устройство безопасности и отправляет push-уведомления с наивысшим приоритетом. - Датчик концентрации газа: Класс
gas. Превращается вdevices.types.sensor.gasдля своевременного обнаружения утечек метана или угарного газа.
Особенности обработки различных классов устройств Алисой
Каждый из этих классов имеет свои особенности озвучки. Например, когда вы спрашиваете Алису: «Что с датчиком двери?», она использует предопределенные речевые шаблоны: «Входная дверь закрыта» или «Дверь открыта». Если же класс не настроен, Алиса ответит: «Датчик выключен» или «Включен», что звучит неестественно.
Более того, для датчиков протечки и дыма Яндекс использует специальные критические push-уведомления, которые могут пробивать режим «Не беспокоить» на смартфонах. Это невозможно реализовать, если датчик проброшен в систему как обычный бинарный переключатель. Поэтому настройка классов устройств важна не только с эстетической, но и с практической точки зрения безопасности.
Шаг 1. Переопределение device_class в Home Assistant
Если ваш физический датчик (например, Zigbee-датчик движения Sonoff) определился в Home Assistant без указания класса устройства, вы можете исправить это двумя путями: через веб-интерфейс или через конфигурационный файл YAML.
Способ A. Через веб-интерфейс (рекомендуемый)
- Перейдите в Настройки ➡️ Устройства и службы ➡️ вкладка Сущности.
- Найдите ваш бинарный датчик (например,
binary_sensor.hallway_motion). - Нажмите на него, затем откройте шестеренку (Настройки) в правом верхнем углу.
- В поле «Показать как» (Show as) выберите нужный тип (например, «Движение»).
- Нажмите «Обновить».
Способ B. Через YAML (файл customize.yaml)
Если вы предпочитаете настраивать систему кодом, откройте файл customize.yaml (убедитесь, что он подключен в configuration.yaml строкой homeassistant: !include customize.yaml) и добавьте:
binary_sensor.front_door_contact:
device_class: door
friendly_name: "Входная дверь"
binary_sensor.bathroom_floor_leak:
device_class: moisture
friendly_name: "Протечка в ванной"
IMPORTANT
Названия классов устройств чувствительны к регистру. Пишите их строго в нижнем регистре (motion, door, moisture), иначе парсер Home Assistant проигнорирует настройку, и устройство пробросится в Яндекс как неопознанный сенсор без поддержки голосовых статусов.
Шаг 2. Создание шаблонного бинарного датчика (при необходимости)
Иногда аппаратный датчик выдает перевернутую логику (например, on при закрытой двери и off при открытой) или является частью сложного устройства. В таком случае рекомендуется создать виртуальный шаблонный бинарный датчик.
Добавьте в configuration.yaml:
template:
- binary_sensor:
- name: "Окно в спальне"
device_class: window
state: >
{{ is_state('sensor.bedroom_window_raw_state', 'open') }}
Этот шаблонный сенсор проверяет состояние сырой сущности и выдает строго логическое true/false, дополняя его правильным классом устройства window.
TIP
При использовании шаблонных сенсоров всегда указывайте параметр state_class или device_class на этапе создания, чтобы интеграции мгновенно понимали назначение сенсора и не требовали дополнительной ручной кастомизации в файлах сопоставлений.
Шаг 3. Синхронизация с Умным домом Яндекса
После завершения настройки выполните следующие шаги:
- Зайдите в Инструменты разработчика ➡️ вкладка YAML ➡️ перезапустите конфигурацию ядра (
Reload Location & Customizations) или перезагрузите шаблонные сущности. - Откройте приложение «Дом с Алисой».
- Обновите список устройств из интеграции Home Assistant.
- Проверьте карточки импортированных датчиков: у датчика двери должна появиться иконка двери, показывающая закрытое или открытое состояние, а у датчика протечки — капля воды.
Если вы хотите узнать, как настроить локальное управление вашими датчиками и реле без постоянного обращения к облачным серверам Яндекса для снижения задержек срабатывания, прочитайте нашу статью о настройке работы устройств Яндекса без интернета.
С правильным маппингом бинарных датчиков вы сможете создавать сценарии автоматизации, которые будут мгновенно реагировать на любые события безопасности и комфорта в вашем умном доме.
Если вы используете датчики без поддержки Zigbee, прочтите нашу инструкцию по интеграции Bluetooth-термометров Xiaomi Mijia.
Инструкция по настройке
Определение типа бинарного датчика
Изучите параметры вашего датчика в Home Assistant (Инструменты разработчика -> Состояния) и проверьте наличие установленного device_class.
Конфигурирование device_class
Пропишите корректный класс устройства (motion, door, moisture) в секции customize или в настройках интеграции Yandex Smart Home.
Проброс сущностей в интеграцию
Убедитесь, что бинарные датчики включены в список разрешенных устройств (include) для отправки в экосистему Яндекса.
Проверка в приложении Дом с Алисой
Выполните синхронизацию, проверьте, что датчики отображаются с правильными иконками, и протестируйте их срабатывание голосом.