Событийные датчики
Событийные датчики используются для отображения свойств устройства в УДЯ. Например: открытие двери (закрыта/открыта) или уровень воды (пустой/низкий/нормальный).
Для автоматически обнаруженных датчиков из 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.*.
Описание
Типы событий¶
Компонент автоматически пытается сопоставить значения датчика в Home Assistant с событием в УДЯ. Для каждого типа датчика поддерживается ограниченный набор событий.
| Тип | События | Поддерживаемые значения в HA | 
|---|---|---|
| battery_level | low — Низкийnormal — Нормальный | 
on, lowoff, normal | 
| button | single — Одиночное нажатиеdouble_click — Двойное нажатиеlong_press — Долгое нажатие | 
click, singledouble_click, double, manylong_press, long, hold | 
| food_level | empty — Пустойlow— Низкийnormal — Нормальный | 
empty lownormal | 
| gas | detected — Обнаруженоnot_detected — Не обнаруженоhigh — Высокий уровень | 
on, detectedoff, not_detectedhigh | 
| motion | detected — Обнаруженоnot_detected — Не обнаружено | 
on, detectedoff, not_detected | 
| open | opened — Открытоoff, closed — Закрыто | 
on, openedoff, closed | 
| smoke | detected — Обнаруженоnot_detected — Не обнаруженоhigh — Высокий уровень | 
on, detectedoff, not_detectedhigh | 
| vibration | tilt — Переворачиваниеfall — Падениеvibration — Вибрация | 
tilt, rotatefall, dropon, vibration | 
| water_leak | leak — Протечкаdry — Нет протечки | 
on, leakoff, dry | 
| water_level | empty — Пустойlow — Низкийnormal — Нормальный | 
emptyon, lowoff, normal | 
on: Любая логическая истина:on,true,yes,1off: Любая логическая ложь: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 через параметр объекта Отображать как в Настройки → Устройства и объекты → Объекты
