Робот-пылесос может убирать, пока дом пуст, но одного условия «кто-то вышел» мало. Если запускать его при каждом выходе, второй уход за день может отправить его убирать снова. Если датчик присутствия обновился с задержкой, робот способен стартовать рядом с человеком. Надёжный сценарий сначала проверяет всех жильцов, время и отметку о предыдущем запуске, а затем вызывает только ту команду, которую действительно поддерживает интеграция пылесоса.
Home Assistant предоставляет такую логику автоматизаций, но не подключает конкретный робот автоматически. Сначала выясните, какая интеграция создала сущность vacuum, какие действия доступны именно ей и как она сообщает состояние. В этой статье описана схема; работу физического пылесоса и совместимость отдельных моделей мы не тестировали.
Главное
Событие ухода или выбранное время → проверка, что все жители not_home → проверка разрешённого окна и даты последнего запуска → проверка состояния робота → команда запуска → подтверждение состояния → запись даты.
В сценарии есть две отдельные части: триггер сообщает, когда нужно проверить условия, а условия отвечают, можно ли запускать робот именно сейчас. Триггером может быть переход группы жильцов в состояние «вне дома» или выбранное время. Проверять только факт ухода одного человека нельзя: в квартире может остаться кто-то ещё. Условия желательно повторно проверить после короткой паузы, выбранной с учётом задержек ваших трекеров.
В Home Assistant триггер срабатывает в конкретный момент, а условия проверяются после него. Если в момент выхода не все отслеживаемые люди ещё имеют состояние not_home, действие не выполнится. Поэтому добавьте триггеры на состояние каждого жильца или на проверенную группу, а затем отдельное условие «все ушли». Если уборка должна запускаться в определённый час даже тогда, когда семья уехала раньше, добавьте также триггер времени. Одно состояние «все ушли» само по себе не создаёт новый запуск каждый час.
Сначала проверьте сущность пылесоса
Интеграция Vacuum в Home Assistant — общий строительный блок, который получает сущности и команды от других интеграций. Он сам по себе не подключает робот. Найдите в Настройки → Устройства и службы точную интеграцию пылесоса, затем откройте его сущности и действия. Для стандартной сущности документация описывает vacuum.start, который начинает или возобновляет уборку, и отдельное действие vacuum.clean_area для уборки выбранных областей, если их предоставляет конкретная связка.
Проверьте, доступна ли сущность после перезапуска HA, меняется ли её состояние во время работы и появляется ли ожидаемое действие в визуальном редакторе. Типовые состояния включают cleaning, docked, idle, paused, returning и error, но фактическая поддержка и обновление состояния зависят от интеграции. Не используйте vacuum.send_command с чужими параметрами: документация прямо отмечает его как платформенно-зависимую команду.
Если робот уже запущен, возвращается на базу, приостановлен или сообщает об ошибке, автоматике нужна отдельная ветка поведения. Например, можно не отправлять второй старт, а оставить уведомление человеку. Не делайте состояние unknown или unavailable эквивалентом готовности: при неизвестном состоянии безопаснее остановить автоматический запуск и посмотреть, что передаёт интеграция.
Для Xiaomi и других производителей путь зависит от модели, региона и выбранной интеграции. Общая статья о подключении Xiaomi к Home Assistant помогает разобраться с вариантами подключения, но не подтверждает наличие нужного действия у каждого робота. Сверьте модель, доступные сущности и ограничения интеграции до того, как включать уборку по расписанию.
Как понять, что дома никого нет
Для каждого члена семьи заведите сущность Person и назначьте один или несколько device tracker. Home Assistant определяет состояние человека по связанным трекерам; при нескольких источниках важны тип трекера и последнее обновление. Поэтому GPS может уже показывать, что человек уехал, а трекер Wi-Fi или Bluetooth ещё некоторое время считать его дома. Это штатная причина задержки, а не основание немедленно запускать робот.
Выберите, кого именно сценарий считает жильцом: постоянных членов семьи, но не гостей на короткое время; решите отдельно, как обрабатывать ребёнка без телефона, временный телефон или недоступный трекер. В разработчике состояний проверьте каждый person.*: после выхода он должен перейти в not_home, а при возвращении — в home. Состояние unknown или unavailable не доказывает отсутствие человека, поэтому условие должно блокировать запуск, пока присутствие неясно.
Если используете группу Person, сначала проверьте её смысл. В документации Person-состояние home сопоставлено с on, а not_home — с off. Для старой группы all: false (значение по умолчанию) означает on, когда дома есть хотя бы один участник, и off, когда все участники не дома. При all: true группа будет off, даже если дома кто-то есть, но не все, поэтому для проверки «все ушли» такая логика не подходит. Сверьте это вручную после ухода и возвращения каждого жильца; если не уверены в типе группы, добавьте отдельное условие not_home для каждой Person.
Чтобы не реагировать на краткий обрыв геолокации или задержку роутера, подождите выбранный интервал, а затем заново проверьте всех людей. Не копируйте чужую длительность задержки без проверки своих трекеров. Сценарий запускается только при явном подтверждении, что все нужные Person находятся вне дома; ошибка связи не должна превращаться в «дом пуст».
Отметка «попытка уже была сегодня»
Одной проверки присутствия недостаточно: люди могут вернуться и снова уйти в тот же день. Тогда событие ухода повторится. Чтобы ограничить автоматический запуск одной попыткой за местный календарный день, храните дату последней попытки.
Для этого подойдёт помощник Date and/or time с датой без времени, например input_datetime.vacuum_last_attempt. Перед запуском сравните сохранённую дату с сегодняшней датой в настройках часового пояса Home Assistant и продолжайте только если они различаются. Затем сначала запишите сегодняшнюю дату через input_datetime.set_datetime, а после этого вызывайте пылесос. По умолчанию помощник восстанавливает сохранённое состояние после остановки HA. Если создаёте его в YAML, не задавайте постоянное initial значение: оно заменит восстановление начальным значением и может нарушить дневную отметку. Так перезапуск HA сразу после отправки команды не позволит сценарию отправить второй запрос в тот же день.
Такой маркер естественно становится новым в следующий день и сохраняется между перезапусками HA. Это удобнее простого input_boolean, который надо отдельной автоматизацией сбрасывать каждый день. Если всё же выбираете переключатель, сбрасывайте его в заранее выбранное время вне разрешённого окна уборки и не настраивайте на безусловное выключение при старте Home Assistant: иначе перезапуск может разрешить второй запуск в тот же день. После простоя в момент сброса проверьте trace и состояние отметки.
Это ограничивает число запросов, а не гарантирует завершённую уборку. После вызова проверьте, сменилось ли состояние на cleaning или появился другой предусмотренный интеграцией сигнал старта. Если подтверждения нет, отправьте уведомление и оставьте дату попытки: сначала выясните причину в trace, затем человек может явно очистить отметку для повтора. Автоматический повтор вслепую способен отправить роботу дублирующую команду. Не используйте input_boolean.toggle: повторное выполнение такого действия может вернуть переключатель в исходное состояние.
Условия и порядок запуска
Соберите автоматизацию в визуальном редакторе Настройки → Автоматизации и сцены. Вместо универсальной готовой YAML-конфигурации проверьте смысл каждого условия и выберите конкретные сущности своей установки.
| Шаг | Что проверить | Если проверка не прошла |
|---|---|---|
| Триггер | Последний жилец вышел или наступило заданное время | Ничего не запускать |
| Присутствие | Все выбранные Person явно not_home после задержки |
Остановить запуск, если кто-то дома или статус неизвестен |
| Окно | Сейчас разрешённое для уборки время и день недели | Пропустить этот запуск |
| Отметка | Дата последней попытки не совпадает с сегодняшней | Сначала сохранить дату, затем разрешить один запрос за день |
| Пылесос | Сущность доступна, не сообщает об ошибке и не убирается | Уведомить или ждать ручного решения |
| Действие | Точная интеграция показывает подходящий vacuum.start либо другой поддерживаемый вызов |
Не отправлять платформенно-зависимую команду наугад |
| Подтверждение | Состояние изменилось на cleaning или сработал доступный сигнал старта |
Не считать задачу выполненной, изучить trace |
Окно — бытовое ограничение, а не техническая гарантия: учитывайте, когда в доме обычно тишина, когда кто-то может вернуться и когда нужна свободная зона для уборки. В официальном примере Home Assistant робот запускается по времени только после окончания двух тихих расписаний; к нему можно добавить проверку Person и дату попытки. Если важна уборка комнаты, а не всего дома, сначала проверьте, что интеграция действительно предоставляет сегменты или clean_area; карта робота в приложении производителя не означает, что те же комнаты управляются через Home Assistant.
Для повторного события выберите режим автоматизации осознанно. Single не запускает параллельно вторую копию той же автоматизации; это обычно подходит сценарию с ожиданием или повторной проверкой. Но режим не заменяет отметку дня: он защищает от параллельных выполнений, а не от нового события через несколько часов.
Ручной запуск из панели или Telegram
На панели Home Assistant можно добавить кнопку или карточку с действием для сущности пылесоса. В стандартной модели действие vacuum.start начинает или продолжает уборку, если его поддерживает интеграция. Если ежедневное ограничение должно действовать и для ручного запуска, кнопка должна вести в тот же сценарий с проверками и записью даты: карточка, которая напрямую вызывает vacuum.start, обходит эту отметку. Для диагностики полезна и команда Run actions в редакторе автоматизаций, но ручной запуск действий не проверяет, что триггер, присутствие, окно и отметка сработали как задумано. Проверяйте их отдельно в trace.
Для старта из Telegram в Home Assistant есть отдельная интеграция Telegram bot: настроенный бот получает команду и создаёт событие telegram_command с chat_id, user_id и текстом команды. Это не встроенное свойство любого пылесоса и не обещание готовой Telegram-команды в каждой установке. Настройте бота, разрешите нужный chat ID, а в автоматизации сверяйте ожидаемые user_id, chat_id и конкретную команду. Не запускайте робот по любому входящему сообщению.
Лучше направить кнопку или разрешённую Telegram-команду в тот же сценарий с проверками и общей отметкой дня, либо явно показывать, какая проверка остановила запуск. Если ручная команда должна обходить условие «все ушли», обозначьте это отдельным подтверждённым действием; случайная команда из группы не должна отменять защиту от уборки рядом с человеком. Ответ в Telegram полезно разделить на «команда принята», «уборка началась» и «не запустилось»: отправка запроса сама по себе не подтверждает, что робот начал работу.
Как проверить логику и trace
До включения физического пылесоса пройдите условия с тестовой сущностью или вручную меняя только виртуальный маркер, если такая проверка предусмотрена вашей установкой. Не считайте это тестом устройства. Затем выберите безопасный момент и отдельно проверьте один реальный запуск без повторяющихся триггеров; здесь такая проверка не проводилась.
В trace автоматизации откройте Настройки → Автоматизации и сцены → нужная автоматизация → Traces. Проверьте: какой триггер начал запуск, каким было состояние каждой Person, почему прошла или не прошла дата, что сообщил пылесос до и после действия. Если запрос был, но состояния cleaning нет, изучите доступность сущности, журнал интеграции и поддерживаемое действие. Если запустилось повторно, проверьте все триггеры, сброс даты и параллельный путь ручного запуска.
У документации Home Assistant есть отдельный разбор ошибок автоматизаций: trace — первый способ увидеть остановленный шаг. После смены интеграции или обновления повторно проверьте доступные действия и фактические состояния; не считайте старую схему совместимой с новым способом подключения.
Что сценарий не может гарантировать
Автоматизация не знает, что человек вышел, если его трекер не обновился, и не может восстановить возможности, которые интеграция пылесоса не предоставляет. Состояние not_home — вывод по настроенным источникам присутствия; неверная геозона, потеря телефона или зависший трекер могут дать ложное решение. Поэтому используйте только проверенные сущности, блокируйте unknown и unavailable, оставьте физическое управление и способ отключить автоматизацию.
Уборка может быть нежелательной, если кто-то забыл вещь на полу, пришёл курьер, дома гость или участник семьи не отслеживается в HA. Добавьте подходящие бытовые исключения до старта: например, помощник «не запускать сегодня» или ручная блокировка на панели. Не придумывайте фиксированную поддержку комнат, карт, док-станции или статусов для всех Xiaomi и других брендов.
Примечание редакции: материал подготовлен с использованием AI и сверен с официальными документами Home Assistant версии 2026.10.4 по состоянию на 26 октября 2026 года. Конкретный робот, присутствие жильцов, Telegram-команда и физический запуск не тестировались.
Часто задаваемые вопросы
Как не отправить вторую команду после возвращения домой?
Записывайте дату попытки до вызова пылесоса и разрешайте новый автоматический запуск только если сохранённая дата отличается от сегодняшней. При возврате и повторном уходе условие даты уже остановит повторную команду.
Можно запускать только в будни?
Да. Добавьте проверку дня недели или недельное расписание как условие. Если расписание меняется, проверьте в trace, что автоматизация использует именно текущее состояние.
Можно нажать «запустить» в Telegram?
Официальная интеграция Telegram Bot может принимать команды и передавать их в Home Assistant. Для этого потребуется настроить бота и разрешённый чат; автоматизацию нужно ограничить ID пользователя и чата, а затем проверить команду и условия. В статье не предполагается, что такая связка уже включена.
Почему робот не виден в действиях Home Assistant?
Сущность vacuum создаёт другая интеграция. Проверьте статус подключения, модель и доступные сущности или действия. Не все производители и модели показывают одинаковый набор возможностей.
Источники
- Vacuum: состояния, действия и примеры автоматизаций
- Person: device tracker и состояние присутствия
- Group: группы Person и смысл состояний
- Input Datetime: хранение даты последнего запуска
- Input Boolean: виртуальный переключатель и восстановление состояния
- Schedule: недельный график для условий автоматизации
- Триггеры и проверка условий в автоматизации
- Режимы автоматизаций
- Trace и диагностика автоматизаций
- Telegram Bot: входящие команды и разрешённые чаты
Если хотите настроить такой сценарий в русскоязычной системе Habab Home на базе Home Assistant, напишите в чате, когда нужна уборка и что должно её отменять. Сначала обсудим логику проверки; модель пылесоса и доступные команды уточним отдельно.