Датчики
В УДЯ можно передавать цифровые и бинарные датчики, есть несколько способов сделать это:
Один датчик - одно устройство¶
При выборе поддерживаемых объектов в доменах sensor и binary_sensor в УДЯ будут созданы несколько независимых устройств:

Сборка несколько датчиков в одно устройство¶
В первом способе одно физическое устройство (датчик температуры/влажности) передавалась в УДЯ как несколько независимых устройств, и это в большинстве случаев неудобно.
Есть способ лучше! Мы можем объединить несколько независмых объектов в одно устройство через YAML конфигурацию.
В качестве примера возьмём этот же датчик температуры/влажности:

Он содержит несколько объектов, нам нужно выяснить их entity_id. В нашем примере это будут:
- Температура:
sensor.room_temperature - Влажность:
sensor.room_humidity - Уровень заряда:
sensor.room_meteo_battery_level
Так же для примера добавим ещё несколько датчиков из других физических устройств:
- Уровень CO2:
sensor.room_co2_level - Освещённость:
sensor.room_illumination_lux
В Home Assistant нет объекта, на который мы могли бы добавить эти сенсоры.
Поэтому в качестве объекта, из которого будут создано устройство в УДЯ, нужно выбрать любой существующий объект, возьмём для этих целей температуру (sensor.room_temperature).
configuration.yaml
yandex_smart_home:
entity_config:
sensor.room_temperature:
name: Погода в комнате
properties:
- type: temperature
entity: sensor.room_temperature
- type: humidity
entity: sensor.room_humidity
- type: co2_level
entity: sensor.room_co2_level
- type: illumination
entity: sensor.room_illumination_lux
- type: battery_level
entity: sensor.room_meteo_battery_level
Датчики, заданные в properties, обладают большим приоритетом над обнаруженными автоматически.
По этой причине мы вручную добавили датчик temperature вверх списка. Если этого не сделать - он будет в конце (как автоматически обнаруженный для sensor.room_temperature).
Порядок датчиков в properties влияет на порядок отображения в УДЯ
В одном устройстве недопустимо использовать несколько датчиков с одним type
Значение type не всегда совпадает с device_class объекта. Возможные значения type: цифровые датчики, бинарные датчики
В объектах для передачи в УДЯ нужно выбрать только sensor.room_temperature.

Добавление датчиков к устройству¶
Некоторые устройства (термостат) уже содержат в своих атрибутах датчики, которые будет подхвачены автоматически. А некоторые, например, увлажнитель - наоборот, все датчики выносят в отдельные объекты.
В качестве примера используем увлажнитель Xiaomi, он состоит из объектов:
- Непосредственно увлажнитель:
humidifier.air_humidifier - Температура:
sensor.air_humidifier_temperature - Влажность:
sensor.air_humidifier_humidity - Уровень воды:
sensor.air_humidifier_water_level
И дополнительно добавим к нему:
- Потребляемый ток:
switch.humidifer_socket, значение в атрибутеcurrent_consumption
configuration.yaml
yandex_smart_home:
entity_config:
humidifier.air_humidifier:
properties:
- type: water_level
entity: sensor.air_humidifier_water_level
- type: temperature
entity: sensor.air_humidifier_temperature
- type: humidity
entity: sensor.air_humidifier_humidity
- type: power
entity: switch.humidifer_socket
attribute: current_consumption
Порядок датчиков в properties влияет на порядок отображения в УДЯ
В одном устройстве недопустимо использовать несколько датчиков с одним type
Значение type не всегда совпадает с device_class объекта. Возможные значения type: цифровые датчики, бинарные датчики
В объектах для передачи в УДЯ нужно выбрать только humidifier.air_humidifier.

Параметры датчиков¶
Раздел properties в entity_config является списком датчиков. Каждый датчик имеет один или несколько параметров:
| Параметр | Значение по умолчанию | Описание |
|---|---|---|
type |
Нет | Тип датчика. Возможные значения: цифровые датчики, бинарные датчики (кроме button) |
entity |
Объект, для которого задаются properties |
ID объекта, в котором содержится значение датчика (для цифровых - число, для бинарных - on/off) |
attribute |
Нет | Атрибут, в котором содержится значение датчика. Заполняется только если значение хранится не в состоянии объекта |
unit_of_measurement |
Из атрибута объекта unit_of_measurement |
Единица измерения, в которой в HA находятся значения датчика (для конвертации значений) |
Конвертация значений¶
Компонент автоматически конвертирует значения сенсоров из одних единиц измерения в другие на основании атрибута/параметра unit_of_measurement.
Атрибут содержит единицу измерения, в которой находится значение датчика в Home Assistant.
Если у объекта атрибут отсутствует (или неверный), его можно задать через параметр unit_of_measurement в properties.
Возможные значения unit_of_measurement смотрите в списке поддерживаемых датчиков
Пример
Выбор класса бинарного датчика¶
Некоторые интеграции создают бинарные датчики с пустым или неверным атрибутом device_class. Такие датчики автоматически обнаружены не будут.
Вы можете самостоятельно задать атрибут device_class через параметр объекта Отображать как в Настройки → Устройства и объекты → Объекты

Особенности бинарных датчиков в УДЯ¶
В УДЯ не передаётся текущее состояние бинарного датчика, а передаются только события/изменения его состояния.
Из этого следует несколько особенностей:
- Для отображения "статуса" в УДЯ датчик должен поменять своё состояние в Home Assistant (например открыть дверь или нажать кнопку)
- Алиса не будет произносить в каком состоянии сейчас находится датчик
Перезагрузка Home Assistant приводит к отображению "прочерков" у бинарных датчиков в списке устройств в приложении Дом с Алисой. Это известная проблема на стороне УДЯ.