Модуль 4. MQTT и Home Assistant · Урок 8 из 12
Урок 8. Home Assistant MQTT Discovery: сущности, unique_id, birth/will
Устройство в Zigbee2MQTT присутствует, но в Home Assistant его нет: что проверять.
Чему вы научитесь
Понимать жизненный цикл MQTT discovery и отличать отсутствие сущности от отсутствия Zigbee-связи.
Discovery добавляет сущность, а не меняет радиосеть
Интеграция MQTT в Home Assistant может автоматически создавать устройства и сущности, когда получает корректные discovery-публикации. Конфигурация содержит тип компонента, нужные топики и при поддержке уникальный идентификатор. Если датчик отвечает в Zigbee2MQTT, но не появляется в Home Assistant, это может быть проблема discovery, MQTT broker, настройки интеграции или уникального ID, а вовсе не поломка Zigbee маршрутизаторов.
Сначала разделите три факта: существует ли Zigbee-событие, дошла ли публикация до брокера и видит ли Home Assistant корректную discovery-конфигурацию. Пример нельзя считать выполненным только потому, что на стенде нарисована зелёная линия между блоками: нужен подтверждённый обмен на каждом уровне.
Birth and Will, retained и перезапуски
Home Assistant публикует событие запуска MQTT-интеграции в системный статусный топик, часто homeassistant/status. Система-публикатор может использовать этот сигнал для повторной публикации discovery-конфигурации. Альтернативой являются retained discovery-сообщения, которые новый подписчик получает после подключения. При отсутствующем unique_id некоторые MQTT-объекты могут не восстановиться так, как ожидает пользователь; детали зависят от действующей версии интеграции.
Если после перезапуска Home Assistant исчезли сущности, сначала проверяют состояние брокера и сообщения discovery, а не сбрасывают физические устройства к заводским настройкам. Сброс оборудования может создать гораздо больше проблем, включая потерю binding и родителя в Zigbee Mesh.
Не путать Device, Entity и Availability
Один многоканальный прибор Zigbee может соответствовать нескольким Home Assistant entities: реле, измерение потребления, температура, уровень батареи. Наличие объекта device не гарантирует наличие всех нужных сущностей. Иногда свойство отключено в expose, не поддерживается firmware, отсутствует или скрыто в интерфейсе HA. К тому же availability MQTT определяет отдельный индикатор состояния доступности, не всегда равный реальному времени последнего радиоответа.
Успешный тест discovery требует показать, что нужная сущность существует и её state обновился после соответствующего события. Курс учит объяснять ограничения: иногда для восстановления достаточно конфигурации MQTT и повторного discovery, но конкретные действия должны соответствовать текущей версии программ и сохранённой резервной копии.
Практическая работа
Для датчика с температурой и влажностью объясните отличие device от двух сущностей. Как это проверить без доступа к чужим учётным данным?
Составьте последовательность после перезапуска HA: брокер, системный статус, discovery-конфигурация, сущность, состояние.
Самопроверка: сформулируйте результат своими словами, а затем пройдите вопросы ниже. Если устройство или программа не доступны, выполните задание на бумаге или в учебном тренажёре.
Проверьте себя
Контрольные вопросы
Ответьте на все вопросы. При ошибке изучите пояснение и попробуйте ещё раз. Все задания бесплатны.
Наличие устройства в мосте и сущности HA — разные ступени.
Retain позволяет получать последнее опубликованное значение при подписке.
Home Assistant использует идентификаторы для управления объектами.
Правильных ответов: 0 из 3
Урок завершён?
Повторите ключевые идеи и убедитесь, что выполнили практическое задание.
Чтобы закончить урок, правильно ответьте на контрольный вопрос.