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

Событийные датчики

Событийные датчики используются для отображения свойств устройства в УДЯ. Например: открытие двери (закрыта/открыта) или уровень воды (пустой/низкий/нормальный).

Для автоматически обнаруженных датчиков из binary_sensor будут использоваться только два значения, например для "Наличие газа": on - обнаружено, off - не обнаружено, а "Высокий уровень" (high) никак задействован не будет.

Для задействования всех возможных событий используйте sensor на шаблоне или параметр value_template.

Ручное добавление

Событийные датчики могут быть добавлены к любому устройству вручную через список properties в entity_config. Каждый датчик содержит один или несколько параметров.

Устройство может иметь одновременно событийные и цифровые датчики.

Пример настройки датчиков

yandex_smart_home:
  entity_config:
    humidifier.room:
      properties:
        - type: float.water_level
          entity: sensor.room_humidifier_water_level
        - type: open
          value_template: '{{ is_state("binary_sensor.room_humidifier_water_tank", "off" }}'
    media_player.tv:
      properties:
        - type: motion
          entity: binary_sensor.motion_near_tv

Тип датчика

Параметр: type (обязательный)

Может быть задан в сокращённом или полном виде (event.X). Полный вид желательно использовать для датчиков, которые могут быть как числовыми, так и событийными (battery_level, food_level, water_level).

Тип (сокр.) Тип (полный) Описание
battery_level event.battery_level События заряда батареи
button event.button События нажатия кнопки
food_level event.food_level События, связанные с уровнем корма
gas event.gas События наличия газа в помещении
motion event.motion События, связанные с наличием движения в области действия датчика
open event.open События открытия/закрытия дверей, окон и т. п.
smoke event.smoke События наличия дыма в помещении
vibration event.vibration События физического воздействия: вибрация, падение, переворачивание
water_leak event.water_leak События протечки воды
water_level event.water_level События, связанные с уровнем воды

Источник состояния (объект)

Параметры: entity и/или attribute

Задают объект и/или его атрибут, в котором находится текущее состояние датчика. Нельзя использовать совместно с value_template.

Описание

yandex_smart_home:
  entity_config:
    humidifier.room:
      properties:
        # Задан только атрибут, значение датчика будет взято из атрибута объекта, для которого задаются датчики
        # В данном случае - атрибут humidifier.fault объекта humidifier.room
        - type: event.water_leak
          attribute: humidifier.fault

        # Значение датчика будет взято из состояния объекта sensor.humidifier_room_water_tank
        - type: event.open
          entity: sensor.humidifier_room_water_tank

        # Значение датчика будет взято из атрибута action объекта sensor.button
        - type: event.button
          entity: sensor.button
          attribute: action

Источник состояния (шаблон)

Параметр: value_template

Задаёт шаблон для вычисления текущего состояние датчика. Нельзя использовать совместно с entity и/или attribute и для объектов event.*.

Описание

yandex_smart_home:
  entity_config:
    humidifier.room:
      properties:
        - type: event.water_level
          value_template: |
            {% set water_level = states("sensor.humidifier_room_water_level")|int(0) %}
            {% if water_level > 60 %}
              normal
            {% elif water_level > 20 %}
              empty
            {% else %}
              low
            {% endif %}

Типы событий

Компонент автоматически пытается сопоставить значения датчика в Home Assistant с событием в УДЯ. Для каждого типа датчика поддерживается ограниченный набор событий.

Тип События Поддерживаемые значения в HA
battery_level low — Низкий
normal — Нормальный
on, low
off, normal
button single — Одиночное нажатие
double_click — Двойное нажатие
long_press — Долгое нажатие
click, single
double_click, double, many
long_press, long, hold
food_level empty — Пустой
low— Низкий
normal — Нормальный
empty
low
normal
gas detected — Обнаружено
not_detected — Не обнаружено
high — Высокий уровень
on, detected
off, not_detected
high
motion detected — Обнаружено
not_detected — Не обнаружено
on, detected
off, not_detected
open opened — Открыто
off, closed — Закрыто
on, opened
off, closed
smoke detected — Обнаружено
not_detected — Не обнаружено
high — Высокий уровень
on, detected
off, not_detected
high
vibration tilt — Переворачивание
fall — Падение
vibration — Вибрация
tilt, rotate
fall, drop
on, vibration
water_leak leak — Протечка
dry — Нет протечки
on, leak
off, dry
water_level empty — Пустой
low — Низкий
normal — Нормальный
empty
on, low
off, normal
  • on: Любая логическая истина: on, true, yes, 1
  • off: Любая логическая ложь: off, false, no, 0

Перечислена только часть поддерживаемых значений со стороны Home Assistant.

Сопоставление значений можно так же можно настроить вручную через раздел entity_config в YAML конфигурации. При ручной настройке отключается автоматическое сопоставление для этого устройства и типа события.

Пример сопоставления событий

yandex_smart_home:
  entity_config:
    sensor.button:
      events:
        button:
          single: click_1
          double_click: click_double_1
  • button - тип события со стороны УДЯ
  • single, double_click - событие со стороны УДЯ
  • click_1, click_double_1 - значения датчика со стороны Home Assistant

Если в HA происходит событие (например, нажатие на кнопку), но в УДЯ оно не появляется — начните отладку на странице интеграции Yandex Smart Home, сгенерируйте событие и поищите в журнале событий по Unknown event. После этого задайте соответствия вручную.

Выбор класса бинарного датчика

Некоторые интеграции создают бинарные датчики с пустым или неверным атрибутом device_class. Такие датчики автоматически обнаружены не будут, но по-прежнему могут быть добавлены вручную.

Вы можете самостоятельно задать атрибут device_class через параметр объекта Отображать как в НастройкиУстройства и объектыОбъекты