32. Объекты в Home Assistant. Часть 2. Сенсоры

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

Для начала стоит понять несколько основных пунктов, которые разберём наглядно:

1.У каждой сущности в ХА бывают состояния и атрибуты. Знакомство с ними было начато в статье про объекты .

Есть, к примеру, обычный зигби датчик температуры (а так же давления и влажности).

У этого датчика есть несколько сущностей.

Для отслеживания изменения состояний и атрибутов сущностей есть очень удобный инструмент "Состояния", находящийся в панели разработчика.

Однако, если будем смотреть в этом инструменте, то конкретно этого устройства в нём не будет. Вместо него этого там будут его сущности. При чём по факту, они будут повторяться.


Каждая из этих сущностей и является отдельным сенсором, в котором отображается именно тот атрибут, на который настроен этот сенсор. 

2. Можно создавать новые сущности, основанные на статусах и/или атрибутах уже имеющихся сущностей.

Например, имея несколько сенсоров температуры по всему дому, можно создать новый сенсор, который будет отображать среднюю температуру.
Логика работы такого сенсора достаточно проста. Берём значение температуры из атрибутов или состояний всех температурных сенсоров. Получаем среднее арифметическое значение (это когда складывают все значения вместе, а потом делят на количество этих самых значений). Оно-то и будет отображаться как статус нового сенсора.

2.1. Есть сущности, которые можно создать в интерфейсе, а есть и те, которые можно создать только написав вручную их код.


3. Раз уж речь пошла о сенсорах, то следует помнить что они делятся на две основные категории: 
  • Обычные, цифровые, буквенные, стринговые, можно называть как угодно. Они показывают любой набор данных. Буквы, цифры, символы валют, время, всё что угодно.
  • Бинарные - отображают состояние по принципу ноль или единица, да или нет, правда или ложь, включено или выключено. В бинарном сенсоре можно указать на основе чего он будет принимать то или иное состояние.
4. Отображение значений можно использовать как в интерфейсе, так и в самой новой сущности.

Например можно создать бинарный сенсор, основанный на показаниях температуры другого сенсора. Если значение на физическом датчике будет меньше заданной температуры то это значение 0, если выше или равно - то единица.
На основании значений этого бинарного сенсора можно выводить в интерфейсе что-то вроде: "Сейчас дома тепло". Или "Сейчас дома холодно". Причём слова тепло/холодно будут подставляться автоматически.
Так же есть возможность отобразить в интерфейсе "тепло/холодно" основываясь сразу на показаниях датчика температуры, не используя промежуточный бинарный сенсор.

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

Комментарии