Поиск по базе знаний

Маппинг бинарных датчиков HA в типы устройств Дома с Алисой

Правильная интеграция бинарных датчиков из Home Assistant в экосистему Яндекса — залог корректной работы голосовых уведомлений и автоматических сценариев. Бинарные датчики (сущности, имеющие только два состояния: on и off) используются для отслеживания движения, открытия дверей, обнаружения протечек воды, дыма или газа.

Если пробросить бинарный датчик без указания его класса, Яндекс распознает его как обобщенный бинарный переключатель. В этом случае Алиса не сможет озвучить состояние фразой вроде «Дверь в гостиную открыта» или «Обнаружена протечка в ванной», ограничившись невнятным «Устройство включено» или «Устройство выключено». Для решения этой проблемы используется механизм сопоставления типов через указание device_class в Home Assistant.

Что такое device_class и почему он важен?

Атрибут device_class в Home Assistant указывает системе, какую физическую роль выполняет датчик. Интеграция yandex_smart_home считывает этот параметр и автоматически сопоставляет его с соответствующим типом устройства в Доме с Алисой.

Основные сопоставления типов бинарных датчиков в экосистеме Яндекса представлены ниже:

  1. Датчик движения или присутствия: Классы motion или occupancy. В Яндексе они отображаются как devices.types.sensor.motion. Позволяют Алисе отвечать на вопросы о том, есть ли кто-то в комнате, а также служат триггером для запуска сценариев освещения.
  2. Датчик открытия: Классы door, window или opening. Сопоставляются с типом devices.types.sensor.open. С их помощью можно спросить: «Алиса, открыто ли окно в детской?» или настроить автоматические уведомления.
  3. Датчик протечки воды: Класс moisture. Превращается в devices.types.sensor.water_leak. Это критически важный сенсор для автоматического перекрытия шаровых кранов при обнаружении воды на полу.
  4. Датчик дыма: Класс smoke. Превращается в devices.types.sensor.smoke. Яндекс распознает его как устройство безопасности и отправляет push-уведомления с наивысшим приоритетом.
  5. Датчик концентрации газа: Класс gas. Превращается в devices.types.sensor.gas для своевременного обнаружения утечек метана или угарного газа.

Особенности обработки различных классов устройств Алисой

Каждый из этих классов имеет свои особенности озвучки. Например, когда вы спрашиваете Алису: «Что с датчиком двери?», она использует предопределенные речевые шаблоны: «Входная дверь закрыта» или «Дверь открыта». Если же класс не настроен, Алиса ответит: «Датчик выключен» или «Включен», что звучит неестественно.

Более того, для датчиков протечки и дыма Яндекс использует специальные критические push-уведомления, которые могут пробивать режим «Не беспокоить» на смартфонах. Это невозможно реализовать, если датчик проброшен в систему как обычный бинарный переключатель. Поэтому настройка классов устройств важна не только с эстетической, но и с практической точки зрения безопасности.

Шаг 1. Переопределение device_class в Home Assistant

Если ваш физический датчик (например, Zigbee-датчик движения Sonoff) определился в Home Assistant без указания класса устройства, вы можете исправить это двумя путями: через веб-интерфейс или через конфигурационный файл YAML.

Способ A. Через веб-интерфейс (рекомендуемый)

  1. Перейдите в Настройки ➡️ Устройства и службы ➡️ вкладка Сущности.
  2. Найдите ваш бинарный датчик (например, binary_sensor.hallway_motion).
  3. Нажмите на него, затем откройте шестеренку (Настройки) в правом верхнем углу.
  4. В поле «Показать как» (Show as) выберите нужный тип (например, «Движение»).
  5. Нажмите «Обновить».

Способ 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. Синхронизация с Умным домом Яндекса

После завершения настройки выполните следующие шаги:

  1. Зайдите в Инструменты разработчика ➡️ вкладка YAML ➡️ перезапустите конфигурацию ядра (Reload Location & Customizations) или перезагрузите шаблонные сущности.
  2. Откройте приложение «Дом с Алисой».
  3. Обновите список устройств из интеграции Home Assistant.
  4. Проверьте карточки импортированных датчиков: у датчика двери должна появиться иконка двери, показывающая закрытое или открытое состояние, а у датчика протечки — капля воды.

Если вы хотите узнать, как настроить локальное управление вашими датчиками и реле без постоянного обращения к облачным серверам Яндекса для снижения задержек срабатывания, прочитайте нашу статью о настройке работы устройств Яндекса без интернета.

С правильным маппингом бинарных датчиков вы сможете создавать сценарии автоматизации, которые будут мгновенно реагировать на любые события безопасности и комфорта в вашем умном доме.

Если вы используете датчики без поддержки Zigbee, прочтите нашу инструкцию по интеграции Bluetooth-термометров Xiaomi Mijia.

Инструкция по настройке

1

Определение типа бинарного датчика

Изучите параметры вашего датчика в Home Assistant (Инструменты разработчика -> Состояния) и проверьте наличие установленного device_class.

2

Конфигурирование device_class

Пропишите корректный класс устройства (motion, door, moisture) в секции customize или в настройках интеграции Yandex Smart Home.

3

Проброс сущностей в интеграцию

Убедитесь, что бинарные датчики включены в список разрешенных устройств (include) для отправки в экосистему Яндекса.

4

Проверка в приложении Дом с Алисой

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