qord.tech

Устройство, сущность, область

Три понятия, без которых интерфейс Home Assistant выглядит хаотично, а с ними — вполне логично: устройство, сущность и область. Путаница между первыми двумя — самая частая причина вопроса «почему у меня в списке двадцать строк, а розеток всего пять».

Устройство — это физический объект, сущность — то, чем можно управлять

Устройство — конкретная вещь: розетка на столе, датчик на двери, реле в щитке. Сущность — это то, из чего Home Assistant реально складывает интерфейс и логику автоматизаций: один переключатель, один датчик температуры, одна кнопка сценария. Программа не умеет «включить розетку» как единое действие — она включает конкретную сущность switch.rozetka_kuhnya, которая просто физически живёт внутри устройства «Розетка кухня».

Почему одно устройство даёт несколько сущностей

Умная розетка с измерением энергопотребления — типичный пример: одно устройство отдаёт как минимум три сущности — переключатель (включена или выключена нагрузка), датчик текущей мощности в ваттах и датчик накопленной энергии в киловатт-часах. У Zigbee-датчика движения может быть отдельная сущность для самого движения, отдельная для освещённости, если в него встроен люксметр, и отдельная для заряда батареи. Это не избыточность интерфейса — просто каждая измеримая или переключаемая величина требует своей сущности, потому что состояние и история хранятся отдельно для каждой.

Состояние и атрибуты

У каждой сущности есть одно основное состояние — строка вроде on, off, 23.5, home — и произвольный набор атрибутов при нём: дополнительные данные, которые не являются главным значением, но полезны. У сущности освещения состояние — on или off, а яркость и цветовая температура лежат в атрибутах. У сущности климат-контроля состояние — обычно текущий режим работы (heat, cool, off), а целевая и измеренная температура — атрибуты при этом состоянии. Автоматизации чаще всего реагируют на смену состояния, а атрибуты используют как дополнительное условие или значение для подстановки в действие.

Область

Область группирует устройства и сущности по помещению или зоне — «кухня», «коридор», «улица». Это позволяет писать не «включить свет.кухня_1, свет.кухня_2, свет.кухня_потолок», а обращаться сразу к области целиком, и так же работают панели интерфейса: один блок «Кухня» показывает все относящиеся к ней сущности, даже если физически они от разных производителей и разных протоколов.

Где это видно в интерфейсе

В разделе «Устройства и службы» → «Устройства» — список физических объектов; открыв конкретное устройство, вы увидите список его сущностей и можно назначить ему область. В «Инструментах разработчика» → «Состояния» — плоская таблица всех сущностей системы: идентификатор, текущее состояние, атрибуты в исходном виде. Это самое быстрое место, чтобы проверить, как именно называется нужная сущность и что она сейчас показывает, прежде чем ссылаться на неё в автоматизации.