19. Объекты в Home Assistant. Часть 1.


    В процессе настройки системы управления умным домом Home Assistant очень часто придётся иметь дело с тем, что называют сущностями (entity), атрибутами и состояниями. Попробуем разобраться что это такое.
Предыдущая статья:

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

сущности 2, 3, 4, 11, 12, 13, 14 отключены

    В данном случае розетка является объектом, а каждый из пронумерованных элементов - её сущностями.
При этом, у каждой из сущностей в системе Home Assistant могут быть свои состояния и атрибуты.

Рассмотрим для примера пятый элемент 😀
Это виртуальный выключатель связанный с физическим выключателем в розетке.


Этот выключатель является сущностью, отвечающей за включение и выключение розетки. Она находится в домене switch - выключатель. То, как к ней можно обращаться это "домен.имя_сущности". У этой сущности есть два состояния: on и off. Вместе  с состоянием есть так же атрибуты сущности: защита детей, сила тока, состояние индикатора, уровень сигнала, и т.д. Каждый из этих атрибутов, в свою очередь, может являться другой сущностью в системе ХА.

Из официальной документации:
Каждая интеграция в Home Assistant имеет уникальный идентификатор: домен. Все сущности и объекты, доступные в Home Assistant, предоставляемые интеграциями принадлежат к какому либо домену. Первая часть сущности или объекта перед точкой показывает домен, к которому она принадлежат. Например, light.kitchen – это сущность в домене light из интеграции light, а hue.activate_scene – это служба activate_scene для домена hue, который принадлежит интеграции Hue.

Итак, у нас есть объект - розетка, включающий в себя несколько сущностей.
Каждая сущность принадлежит к какому-то домену, и вместе с этим имеет свои атрибуты и состояние.

Есть большое количество типов доменов, для примера некоторые из них:

  • Вентилятор
  • Выключатель
  • Двоичный сенсор
  • Замок
  • Зона
  • Кодовая панель
  • Плеер
  • Погода
  • Пульт управления
  • Пылесос
  • Свет
  • Сенсор
  • Термостат
  • Шторка (двери гаража, жалюзи, шторы и т.д.)

Для примера возьмём другую сущность - самодельные сенсоры курса валют.


Это две сущности в домене сенсор. Атрибутами каждой из них являются система измерения и отображаемое имя. А состояние - текущий курс валюты со страницы главного банка. Эти сущности не привязаны к какому-либо старшему объекту (только к самой системе).

    При подключении системы умного дома Tuya, Ikea, MiHome и других, в  Home Assistant попадают именно сущности устройств, а не сами устройства. И работа, как системы так и пользователя, происходит именно с сущностями, основываясь на их состояниях и атрибутах.
    То же самое при подключении этих систем в Google Home. В него попадают только отдельные домены сущностей устройств, необходимые для управления.

И последний, но  не менее важный объект это платформа.
Платформа - это некий блок, который находится в системе благодаря одной из установленных интеграций. И его могут использовать другие интеграции.


Например объект из домена сенсор, использует платформу интеграции известного сервиса для отслеживания посылок.
И уже благодаря работе этой платформы, в системе появляются сущности домена сенсор:

Сколько посылок в пути, сколько доставлено или нет, сколько готовы к забору из почтового отделения и т.д.

    Важно учесть ключевой момент. Т.к. ХА является системой с открытым исходным кодом, то править свою конфигурацию под себя может абсолютно каждый. Для решения некоторых задач не всегда есть возможность использовать удобный интерфейс, в котором можно выбрать необходимые пункты, отметить что-то точкой или галочкой и сохранить. Единственным решением может оказаться написание кода вручную. И первым шагом к такому кодингу как раз и служит понимание структуры объектов и их логические связи.

Подытожим. Все объекты являются сущностями. Домен - определяет что может делать эта сущность. Сущность имеет статус и атрибуты. Платформа позволяет работать определённым сущностям из определённых доменов.

    На основе статусов и атрибутов сущностей можно создавать свои, максимально гибкие, автоматизации. О них подробнее в следующей статье.

Комментарии