Интеграция робота-пылесоса Xiaomi в Home Assistant: от токена до автоматизаций

Роботы-пылесосы Xiaomi и Roborock давно стали неотъемлемой частью экосистемы умного дома, но их настоящий потенциал раскрывается только при интеграции с Home Assistant. В отличие от стандартного приложения Mi Home, где функционал ограничен базовыми командами, подключение к HA позволяет создать сложные автоматизации: уборка по расписанию с учётом датчиков движения, зонирование помещений по времени суток или даже синхронизация с другими устройствами (например, запуск пылесоса после закрытия окон).

Однако процесс интеграции часто вызывает вопросы: где взять token для авторизации, как настроить отображение карты в реальном времени или почему пылесос не отвечает на команды через HA? Эта статья покрывает все этапы — от подготовки устройства до тонкой настройки, включая решения типичных проблем. Мы рассмотрим как официальные методы через Xiaomi Miio, так и альтернативные способы для старых моделей, где стандартная интеграция не работает.

1. Подготовка: проверка совместимости и требования

Прежде чем приступать к настройке, убедитесь, что ваша модель пылесоса поддерживается Home Assistant. Большинство устройств Xiaomi/Roborock выпуска после 2018 года совместимы, но есть исключения:

  • Поддерживаются: Roborock S5/S6/S7/S8, Xiaomi Mi Robot Vacuum 1S/2/Pro, Dreame D9/F9 и новее.
  • ⚠️ Ограниченная поддержка: Xiaomi Mi Robot Vacuum 1 (первое поколение) — требует ручного получения токена.
  • Не поддерживаются: некоторые OEM-модели для китайского рынка (например, Viomi без глобальной прошивки).

Также проверьте версию прошивки пылесоса: для корректной работы с HA рекомендуется обновить её до последней через официальное приложение Mi Home или Roborock. Устаревшие версии (ниже 3.5.8 для Roborock S5) могут не поддерживать API-команды.

Модель пылесоса Минимальная версия прошивки Требуется ли ручной токен? Поддержка карт в HA
Roborock S7 4.1.0 Нет (автоматический) Да
Xiaomi Mi Robot Vacuum 2 Pro 3.3.9 Да Частично
Dreame D10 Plus 1.5.4 Нет Да
Roborock S5 Max 3.6.6 Нет Да

Требования к Home Assistant:

  • ⚡ Версия HA 2023.12 или новее (для полной поддержки Miio Protocol v2).
  • 🌐 Стабильное подключение пылесоса и сервера HA к одной сети (Wi-Fi 2.4 ГГц).
  • 🔑 Аккаунт Xiaomi с привязанным пылесосом (для автоматического получения токена).
⚠️ Внимание: Если пылесос подключён к сети через 5 ГГц, переведите его на 2.4 ГГц — многие модели не поддерживают двухдиапазонный Wi-Fi при интеграции с HA.

2. Получение токена авторизации

Токен (token) — это уникальный ключ, который позволяет Home Assistant отправлять команды пылесосу. Есть два способа его получить:

Способ 1: Автоматическое получение через Mi Home (рекомендуется)

Если ваша модель поддерживает автоматическую интеграцию (см. таблицу выше), выполните следующие шаги:

  1. Установите официальное приложение Mi Home (или Roborock для соответствующих моделей).
  2. Авторизуйтесь в аккаунте, к которому привязан пылесос.
  3. В Home Assistant перейдите в Настройки → Устройства и сервисы → Добавить интеграцию → Xiaomi Miio.
  4. Выберите регион сервера (China, Europe или Russia — зависит от версии приложения).
  5. Введите логин и пароль от аккаунта Xiaomi — HA автоматически получит токен.

Преимущество: не требует ручных манипуляций с файлами конфигурации. Недостаток: при смене пароля в аккаунте Xiaomi токен сбросится, и интеграцию придётся настраивать заново.

Способ 2: Ручное извлечение токена (для старых моделей)

Если автоматический метод не работает (например, для Mi Robot Vacuum 1), используйте этот способ:

Установите приложение Packet Capture (Android) или HTTP Toolkit (PC)

Подключите телефон/ПК к той же сети, что и пылесос

Авторизуйтесь в Mi Home и запустите захват трафика

Найдите запрос к api.io.mi.com с параметром token

-->

Детальная инструкция:

  1. Скачайте утилиту MiHome Token Extractor (для Android) или используйте Fiddler/Wireshark на ПК.
  2. Запустите захват трафика и откройте приложение Mi Home.
  3. Найдите в логах запрос к домену api.io.mi.com с методом POST и параметром "token": "...".
  4. Скопируйте значение токена (32 символа) — это и есть ваш ключ.
⚠️ Внимание: Не делитесь токеном с третьими лицами! Он предоставляет полный доступ к управлению пылесосом. Если токен попал в чужие руки, сбросьте его через приложение Mi Home (разлогиньтесь и войдите заново).

Автоматический через HA

Ручной через захват трафика

Ещё не пробовал

Другой вариант-->

3. Настройка интеграции в Home Assistant

После получения токена добавьте пылесос в HA:

  1. Откройте configuration.yaml (через Файловый редактор или по пути /config/configuration.yaml).
  2. Добавьте следующий блок (замените IP_АДРЕС и ВАШ_ТОКЕН на реальные значения):
    vacuum:
    

    - platform: xiaomi_miio

    host: IP_АДРЕС

    token: ВАШ_ТОКЕН

    name: "Робот-пылесос Xiaomi"

  3. Сохраните файл и перезагрузите Home Assistant.

Если используете YAML-мод, после перезагрузки пылесос появится в разделе Устройства. Для пользователей UI-мода (без редактирования configuration.yaml):

  1. Перейдите в Настройки → Устройства и сервисы → Добавить интеграцию.
  2. Выберите Xiaomi Miio.
  3. Введите IP-адрес пылесоса и токен, затем нажмите Отправить.

Проверка подключения: после добавления откройте вкладку Разработчики → Состояния и найдите сущность vacuum.xiaomi_vacuum. Если она отображает статус (idle, cleaning и т.д.), интеграция прошла успешно.

4. Расширенные настройки: карты, зоны и автоматизации

Базовая интеграция позволяет только отправлять команды (start, pause, return_to_base). Чтобы раскрыть полный потенциал, настройте:

Отображение карты в реальном времени

Для моделей с поддержкой картографирования (Roborock S6/S7, Dreame D10 и др.):

  1. Установите дополнение Xiaomi Miio Map через HACS (Home Assistant Community Store).
  2. Добавьте в configuration.yaml:
    xiaomi_miio_map:
    

    vacuums:

    - host: IP_АДРЕС

    token: ВАШ_ТОКЕН

    name: "xiaomi_vacuum"

    draw: ['all']

    attributes:

    - calibration_points

  3. Перезагрузите HA и добавьте карту на дашборд через виджет Picture Entity, указав сущность camera.xiaomi_vacuum_map.

Карты обновляются с задержкой 2-5 секунд — это нормально для большинства моделей. Если карта не отображается, проверьте, включена ли опция "Сохранять карту" в настройках пылесоса (через официальное приложение).

Настройка зон уборки

Чтобы запускать уборку в конкретных зонах (например, только на кухне):

  1. В официальном приложении Mi Home или Roborock создайте виртуальные стены и зоны.
  2. Экспортируйте координаты зон через Developer Tools → Services в HA, вызвав сервис xiaomi_miio.vacuum_clean_zone.
  3. Сохраните координаты в скрипт или автоматизацию. Пример команды для уборки зоны:
    service: xiaomi_miio.vacuum_clean_zone
    

    data:

    entity_id: vacuum.xiaomi_vacuum

    zone: [[25000, 25000, 30000, 30000]] # Координаты: [x1, y1, x2, y2]

    repeats: 2

Как получить координаты зон?

1. Запустите уборку всей площади через HA.

2. Откройте Developer Tools → States и найдите атрибут cleaned_area у сущности пылесоса.

3. Координаты зон указываются в миллиметрах от базовой станции (0,0). Для точности используйте приложение Valetudo (альтернативная прошивка) или рулетку в официальном приложении.

Примеры автоматизаций

  • 🕒 Уборка по расписанию: запуск пылесоса в 10:00, если никого нет дома (датчик присутствия).
  • 🚪 Синхронизация с окнами: при закрытии последнего окна (датчик binary_sensor.window) запускается уборка.
  • 🐕 Режим "Домашние животные": если датчик движения в коридоре срабатывает чаще 5 раз за час, пылесос убирает только зону возле миски.

5. Решение типичных проблем

Даже при правильной настройке могут возникать ошибки. Вот самые распространённые и способы их устранения:

Проблема Возможная причина Решение
Пылесос не отвечает на команды Неверный IP или токен Проверьте IP через роутер, перегенерируйте токен
Карта не обновляется Устаревшая прошивка пылесоса Обновите прошивку через официальное приложение
Ошибка Unable to connect Блокировка портов фаерволом Откройте порты 54321 и 80 для локального IP пылесоса
Команды выполняются с задержкой Перегрузка сети или сервера HA Уменьшите количество опросов в configuration.yaml (scan_interval: 30)

Если пылесос отключается от Wi-Fi:

  • Проверьте силу сигнала роутера в месте расположения док-станции (должно быть ≥ -60 dBm).
  • Настройте статический IP для пылесоса в роутере (по MAC-адресу).
  • Отключите энергосберегающий режим Wi-Fi на пылесосе (в некоторых прошивках он есть).
⚠️ Внимание: Если после обновления прошивки пылесоса он перестал отвечать на команды через HA, сбросьте токен и настройте интеграцию заново. Производитель иногда меняет протокол авторизации.

6. Альтернативные методы интеграции

Если стандартная интеграция Xiaomi Miio не работает, рассмотрите альтернативные варианты:

1. Прошивка Valetudo

Valetudo — это открытая альтернатива стандартной прошивке, которая предоставляет полный локальный контроль над пылесосом без облака Xiaomi.

Преимущества:

  • 🔒 Нет зависимости от серверов Xiaomi (работает даже при отключении интернета).
  • 🗺️ Поддержка расширенных карт и зон.
  • 🛠️ Возможность установки кастомных скриптов.

Недостатки: требует ручного прошивания (риск потерять гарантию), не все модели поддерживаются.

Инструкция по установке:

  1. Скачайте Valetudo с официального сайта.
  2. Подключитесь к пылесосу по SSH (инструкции для каждой модели отличаются).
  3. Загрузите прошивку через scp или веб-интерфейс.
  4. Настройте интеграцию с HA через REST API или MQTT.

2. Интеграция через MQTT

Если ваш пылесос поддерживает MQTT (например, через Valetudo или кастомную прошивку), настройте обмен сообщениями:

  1. Установите MQTT-брокер (например, Mosquitto) в HA.
  2. В конфигурации пылесоса укажите адрес брокера и темы для команд (vacuum/command) и состояний (vacuum/state).
  3. Создайте автоматизации в HA, публикующие сообщения в эти темы.

Пример команды для запуска уборки через MQTT:

topic: vacuum/command

payload: '{"command": "start"}'

3. Облачный мост (для удалённого доступа)

Если нужно управлять пылесосом извне домашней сети:

  • Настройте Nabu Casa Cloud или DuckDNS для удалённого доступа к HA.
  • Используйте Telegram-бот или Google Assistant для отправки команд.

7. Оптимизация и советы по эксплуатации

Чтобы пылесос работал эффективнее:

  • 📡 Размещение док-станции: установите её в центре квартиры, на расстоянии не менее 0.5 м от стен и мебели. Избегайте мест с прямыми солнечными лучами (может перегреваться датчик).
  • 🔋 Уход за батареей: если пылесос не используется более недели, извлеките аккумулятор или храните его с зарядом 40-60%.
  • 🧹 Чистка датчиков: ежемесячно протирайте оптические сенсоры (особенно у моделей с LDS-лидаром) ватной палочкой, смоченной в спирте.
  • 📱 Обновления HA: после обновления Home Assistant проверяйте совместимость интеграции Xiaomi Miio в официальном репозитории.

Совет по автоматизациям: чтобы уменьшить износ пылесоса, настройте условие запуска уборки только при уровне заряда батареи > 50%. Пример условия в автоматизации:

condition:

- condition: numeric_state

entity_id: sensor.xiaomi_vacuum_battery

above: 50

Для моделей с поддержкой мокрой уборки (Roborock S7, Dreame W10):

  • Используйте дистиллированную воду для продления срока службы помпы.
  • После каждой уборки промывайте резервуар для воды и протирайте тканевую насадку.
  • В автоматизации добавьте задержку delay: "00:02:00" между сухой и мокрой уборкой — это снизит нагрузку на двигатель.

FAQ: Частые вопросы

Можно ли подключить пылесос Xiaomi к Home Assistant без токена?

Нет, токен обязателен для авторизации. Однако для некоторых моделей (например, Roborock S5 с прошивкой Valetudo) можно использовать локальный API без облачного токена. В этом случае интеграция настраивается через RESTful Command или MQTT.

Почему пылесос не возвращается на базу после уборки?

Причины могут быть следующие:

  • Док-станция находится в "слепой зоне" (проверьте карту в HA).
  • Низкий заряд батареи (менее 20%) — пылесос пытается добраться до базы, но не успевает.
  • Механическая блокировка (застрял под мебелью).

Решение: вручную верните пылесос на базу и перезапустите уборку. Если проблема повторяется, проверьте датчики столкновения (sensor.xiaomi_vacuum_collision в HA).

Как сбросить токен, если я забыл его или он перестал работать?

Сбросить токен можно двумя способами:

  1. Через официальное приложение:
    1. Откройте Mi Home или Roborock.
    2. Перейдите в настройки пылесоса → "Отвязать устройство".
    3. Заново привяжите пылесос к аккаунту — будет сгенерирован новый токен.
  2. Через сброс пылесоса к заводским настройкам:
    1. Зажмите кнопки Домой и Питание на 5 секунд.
    2. После сброса настройте пылесос как новое устройство.

После сброса токена обновите его в конфигурации Home Assistant.

Можно ли управлять пылесосом через Home Assistant, если он подключён к другой сети (например, на даче)?

Да, но для этого потребуется:

  1. Настроить удалённый доступ к Home Assistant (Nabu Casa Cloud, Tailscale или проброс портов).
  2. Убедиться, что пылесос подключён к интернету и его IP-адрес не меняется (настройте статический IP на роутере).
  3. Использовать MQTT или REST API для отправки команд через облако.

Учтите, что при таком подходе возможны задержки до 2-3 секунд из-за облачной маршрутизации.

Какие модели Xiaomi/Roborock лучше всего интегрируются с Home Assistant?

По отзывам пользователей и тестам, лучшие модели для интеграции:

  1. Roborock S7 Pro Ultra — полная поддержка карт, зон и мокрой уборки.
  2. Dreame D10 Plus — стабильное API, низкая цена.
  3. Xiaomi Mi Robot Vacuum-Mop 2 Pro — оптимальное соотношение цена/функционал.

Для бюджетного варианта подойдёт Roborock S5 Max, но у него нет поддержки Miio Protocol v2, что может вызывать лаги при управлении через HA.