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

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

Однако процесс подключения часто вызывает вопросы: где взять token, почему пылесос не отображается в интерфейсе, как обойти региональные ограничения Mi Home? В этом руководстве мы разберём все актуальные способы интеграции (включая обход облачных ограничений через локальный протокол), проанализируем типичные ошибки и покажем, как выжать максимум из вашего Mi Robot Vacuum, Viomi или Dreame в экосистеме Home Assistant. Особое внимание уделим моделям с поддержкой LDS-лазера (например, Xiaomi Mi Robot Vacuum-Mop 2 Pro), где доступны расширенные функции зонирования и картографии.

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

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

  • 📱 Смартфон с установленным приложением Mi Home (версия не ниже 6.0.100). Важно: учётная запись должна быть привязана к тому же региону, что и пылесос (обычно Mainland China, Europe или Russia).
  • 🖥️ Рабочий сервер Home Assistant (версия 2023.12 или новее). Подойдёт как установка на Raspberry Pi, так и контейнер в Docker.
  • 🔑 Token устройства — уникальный идентификатор для доступа к API. Его можно получить несколькими способами (разберём ниже).
  • 🌐 Стабильное интернет-соединение (для облачного метода) или локальная сеть (для прямого подключения).

Если вы используете пылесос Xiaomi старше 2019 года (например, Mi Robot Vacuum 1S), проверьте поддержку протокола MiIO в официальной документации Home Assistant. Некоторые бюджетные модели (например, Viomi V2) могут требовать ручной настройки device_id.

⚠️ Внимание: Пылесосы Dreame (например, Dreame D9) используют отдельный протокол DreameVacuum. Для них потребуется другая интеграция — dreame_vacuum в Home Assistant.

Для упрощения процесса рекомендуем заранее:

  • 🔄 Обновить прошивку пылесоса до последней версии через Mi Home.
  • 📡 Подключить пылесос и сервер Home Assistant к одной локальной сети (желательно по Wi-Fi 5 ГГц для стабильности).
  • 📝 Записать MAC-адрес пылесоса (можно найти в настройках роутера или в Mi Home в разделе Устройство → Настройки → Об устройстве).
📊 Какой пылесос Xiaomi у вас?
Mi Robot Vacuum-Mop 2 Pro
Viomi V3
Dreame D9
Другая модель
Ещё не купил

2. Получение токена устройства: 3 рабочих метода

Token — это ключ доступа к API пылесоса, без которого Home Assistant не сможет отправлять команды. Существует несколько способов его получения, различающихся по сложности и надёжности. Рассмотрим их от самого простого к самому техническому.

Метод 1: Через приложение Mi Home (для новичков)

Самый простой способ, но работает не для всех регионов. Подходит, если ваш аккаунт привязан к серверам Mainland China:

  1. Откройте Mi Home и перейдите в настройки пылесоса.
  2. Нажмите на три точки в правом верхнем углу → О программе.
  3. Тапните 5–7 раз по версии прошивки, пока не появится меню Debug.
  4. Выберите Get Token — система сгенерирует токен и скопирует его в буфер обмена.

Метод 2: Через Python-скрипт (универсально)

Если первый метод не сработал, используйте скрипт miio-cli. Этот способ подходит для любых регионов, но требует минимальных знаний командной строки:

pip install python-miio

miio discover --handshake 0

miio inspect --ip <IP_пылесоса> --token <ваш_токен_аккаунта_Mi>

Где <IP_пылесоса> — локальный IP-адрес устройства, а <ваш_токен_аккаунта_Mi> можно получить через этот репозиторий (инструкция на английском).

Метод 3: Через HTTP-перехват (для опытных)

Альтернативный метод — перехват токена при авторизации в Mi Home через Fiddler или Charles Proxy. Подробная инструкция:

Как перехватить токен через Charles Proxy

1. Установите Charles Proxy и настройте его на перехват HTTPS (установите корневой сертификат на смартфон).

2. В настройках Wi-Fi смартфона укажите прокси-сервер (IP вашего ПК с Charles).

3. Авторизуйтесь в Mi Home и найдите в логах Charles запрос к api.io.mi.com с параметром ssecurity — это и есть ваш токен.

4. Скопируйте его и используйте в Home Assistant.

Метод Сложность Работает для регионов Требуется ПК
Через Mi Home (Debug) Только China Нет
Python-скрипт miio-cli ⭐⭐ Все Да
HTTP-перехват ⭐⭐⭐ Все Да
⚠️ Внимание: Токены, полученные через Mi Home Debug, могут сбрасываться после обновления прошивки. Для надёжности используйте метод с miio-cli.

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

Когда токен получен, переходим к добавлению пылесоса в Home Assistant. Существует два основных подхода: через облачный мост (проще, но зависит от серверов Xiaomi) и через локальное подключение (надёжнее, но требует дополнительных настроек).

Способ 1: Облачная интеграция (через Mi Home)

Если вы не хотите возиться с локальной сетью, используйте официальную интеграцию Xiaomi Miio:

  1. В Home Assistant перейдите в Настройки → Устройства и сервисы → Добавить интеграцию.
  2. Введите в поиске Xiaomi Miio и выберите её.
  3. Укажите IP-адрес пылесоса, token и выберите регион (например, cn для Китая).
  4. Нажмите Submit — устройство появится в списке.

Способ 2: Локальное подключение (рекомендуется)

Для стабильности лучше использовать локальный протокол MiIO. Это исключит зависимость от облака Xiaomi и ускорит реакцию на команды. Инструкция:

  1. Добавьте в файл configuration.yaml следующий код:
    vacuum:
    

    - platform: xiaomi_miio

    host: !secret vacuum_ip

    token: !secret vacuum_token

    name: "Xiaomi Vacuum"

    model: "roborock.vacuum.a10" # Укажите вашу модель (список ниже)

  2. В файл secrets.yaml добавьте:
    vacuum_ip: "192.168.1.100"  # Замените на IP вашего пылесоса
    

    vacuum_token: "ваш_токен_здесь"

  3. Перезагрузите Home Assistant.

Список популярных моделей для параметра model:

  • roborock.vacuum.s5Xiaomi Mi Robot Vacuum-Mop
  • viomi.vacuum.v7Viomi V7
  • dreame.vacuum.p2008Dreame D9
  • rockrobo.vacuum.v1Mi Robot Vacuum 1S

☑️ Проверка успешной интеграции

Выполнено: 0 / 4

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

Базовая интеграция позволяет только запускать и останавливать уборку. Но настоящая магия начинается, когда вы подключаете карты помещений и настраиваете зональную уборку. Для этого потребуется:

Подключение карт (для моделей с LDS)

Модели с лазерным сканером (Mi Robot Vacuum-Mop 2 Pro, Dreame Z10 Pro) поддерживают отображение карты в Home Assistant. Для этого:

  1. Установите дополнение Xiaomi Miio Map Extractor через HACS.
  2. Добавьте в configuration.yaml:
    camera:
    

    - platform: xiaomi_miio_map

    host: !secret vacuum_ip

    token: !secret vacuum_token

    name: "Vacuum Map"

    draw: ["charger", "path", "robot", "zones"]

    attributes:

    - calibrated

    - cleaning

  3. После перезагрузки в разделе Media появится карта с текущим местоположением пылесоса.

Настройка зон и виртуальных стен

Чтобы пылесос убирал только определённые комнаты, используйте zoned cleanup. Пример команды для уборки кухни (координаты берутся с карты):

service: vacuum.send_command

target:

entity_id: vacuum.xiaomi_vacuum

data:

command: app_zoned_clean

params: [[25000, 25000, 30000, 30000, 2]] # [x1, y1, x2, y2, повторений]

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

5. Типичные ошибки и их решения

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

Ошибка Причина Решение
Failed to connect при добавлении устройства Неверный IP или токен Проверьте IP через роутер, перегенерируйте токен
Пылесос не реагирует на команды Облачные серверы Xiaomi недоступны Перейдите на локальное подключение
Unsupported device Неверно указана модель в configuration.yaml Проверьте список поддерживаемых моделей в документации
Карта не обновляется Пылесос не в сети или прошивка устарела Обновите прошивку, проверьте подключение к Wi-Fi

Если вы видите в логах ошибку Device not found, но IP и токен верные, попробуйте:

  • 🔄 Перезагрузить пылесос (удерживайте кнопку питания 5 секунд).
  • 📡 Переподключить его к Wi-Fi.
  • 🔧 Временно отключить брандмауэр на роутере.
⚠️ Внимание: Пылесосы Xiaomi с прошивками новее 2023 года могут блокировать локальные подключения, если в Mi Home не включён режим разработчика. Чтобы его активировать, перейдите в Профиль → Настройки → Режим разработчика.

6. Автоматизации: примеры полезных сценариев

Теперь, когда пылесос подключён, можно создать автоматизации, которые сэкономят ваше время. Вот несколько готовых примеров для automations.yaml:

Автоматическая уборка по расписанию

Запуск уборки каждый день в 10:00, если никого нет дома:

alias: "Уборка по расписанию"

trigger:

- platform: time

at: "10:00:00"

condition:

- condition: state

entity_id: person.your_name

state: "not_home"

action:

- service: vacuum.start

target:

entity_id: vacuum.xiaomi_vacuum

Уборка при высокой концентрации пыли

Если у вас есть датчик качества воздуха (например, Xiaomi Air Purifier), можно запускать пылесос при превышении PM2.5:

alias: "Уборка при загрязнении"

trigger:

- platform: numeric_state

entity_id: sensor.air_quality_pm25

above: 50

action:

- service: vacuum.start

target:

entity_id: vacuum.xiaomi_vacuum

- delay: "00:30:00" # Уборка 30 минут

- service: vacuum.return_to_base

target:

entity_id: vacuum.xiaomi_vacuum

Голосовое управление через Алису

Чтобы управлять пылесосом голосом, интегрируйте Home Assistant с Яндекс Алисой через Yandex Smart Home:

  1. В configuration.yaml добавьте:
    yandex_smart_home:
    

    filter:

    include_entities:

    - vacuum.xiaomi_vacuum

    exclude_domains:

    - script

  2. В приложении Яндекс добавьте Home Assistant как устройство для управления.
  3. Теперь можно сказать: "Алиса, включи пылесос" или "Алиса, верни пылесос на базу".

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

Чтобы пылесос работал стабильно и прослужил дольше, следуйте этим рекомендациям:

  • 🔋 Зарядка: Не держите пылесос постоянно на базе. Оптимально — заряжать до 80% и разряжать до 20% (это продлевает жизнь аккумулятору). В Home Assistant можно настроить автоматизацию, которая будет отключать пылесос от базы после достижения 80%:
alias: "Ограничение заряда"

trigger:

- platform: numeric_state

entity_id: sensor.xiaomi_vacuum_battery

above: 80

action:

- service: vacuum.return_to_base

target:

entity_id: vacuum.xiaomi_vacuum

  • 📡 Wi-Fi: Пылесосы Xiaomi плохо работают с сетями 5 ГГц. Если у вас двухдиапазонный роутер, привяжите пылесос к сети 2.4 ГГц вручную.
  • 🗺️ Карты: Периодически (раз в 1–2 месяца) сбрасывайте карту в настройках пылесоса и заново обучайте его планировке. Это предотвращает ошибки навигации.
  • 🛠️ Обслуживание: Чистите датчики и щётки не реже 1 раза в неделю. Забитые сенсоры приводят к хаотичной уборке.

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

FAQ: Ответы на частые вопросы

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

Нет, токен обязателен для всех методов интеграции. Однако для некоторых моделей (например, Dreame) существуют альтернативные протоколы, где вместо токена используется логин/пароль от аккаунта Mi. Но этот метод менее надёжен и может перестать работать после обновлений.

Почему пылесос отключается от Home Assistant после обновления прошивки?

Xiaomi иногда сбрасывает токены при обновлении прошивки. Чтобы этого избежать, перед обновлением:

  1. Сохраните текущий токен в безопасное место.
  2. Отключите пылесос от интернета (чтобы прошивка не установилась автоматически).
  3. После ручного обновления проверьте работоспособность токена и при необходимости получите новый.
Как сделать так, чтобы пылесос убирал только определённые комнаты?

Для этого нужно:

  1. Активировать отображение карты в Home Assistant (как описано в разделе 4).
  2. Определить координаты зон на карте (можно использовать инструмент Map Editor в HACS).
  3. Создать автоматизацию с командой app_zoned_clean, указав координаты нужных комнат.

Пример для уборки коридора и кухни:

service: vacuum.send_command

data:

command: app_zoned_clean

params: [[20000, 20000, 35000, 35000, 1], [15000, 36000, 25000, 45000, 1]]

Можно ли управлять пылесосом Xiaomi через Home Assistant вне дома?

Да, но для этого нужно:

  1. Настроить удалённый доступ к Home Assistant (например, через Nabu Casa или Cloudflare Tunnel).
  2. Убедиться, что пылесос подключён к локальной интеграции (облачный метод может не работать вне домашней сети).
  3. В роутере пробросить порт для Home Assistant (если не используете облачный сервис).

Для надёжности рекомендуем локальное подключение + Nabu Casa (5$ в месяц).

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

Топ-5 моделей по совместимости:

  1. Xiaomi Mi Robot Vacuum-Mop 2 Pro — лучшее соотношение цена/функционал (LDS, зональная уборка, мокрое протирание).
  2. Dreame Z10 Pro — поддерживает 3D-карты и виртуальные стены.
  3. Viomi V3 — бюджетная модель с лазерной навигацией.
  4. Roborock S7 — премиальная модель с поддержкой multi-floor mapping.
  5. Xiaomi Mi Robot Vacuum-Mop P — оптимален для небольших квартир.

Избегайте моделей без LDS (например, Mi Robot Vacuum 1C) — они не поддерживают карты и зональную уборку.