Роботы-пылесосы Xiaomi и Roborock требуют специального токена авторизации для интеграции со сторонними системами умного дома — от Home Assistant до Alice или Google Home. Без этого 64-значного кода подключение к альтернативным платформам невозможно. Проблема в том, что компания Xiaomi активно скрывает токены в последних версиях приложения Mi Home, а официальных способов их получения не существует.
На Android ситуация осложняется ограничениями операционной системы: unlike iOS, где токен можно извлечь через HTTP-прокси, здесь требуются более сложные манипуляции. В этой статье мы разберём 5 актуальных методов (включая обход защиты 2026 года), их плюсы/минусы, а также дадим чек-лист для безопасного извлечения токена без блокировки аккаунта. Важно: некоторые способы требуют технических навыков — если вы никогда не работали с ADB или MITM-прокси, начните с самых простых вариантов.
Что такое токен робота-пылесоса и зачем он нужен
Токен — это уникальный идентификатор сессии, который приложение Mi Home получает от серверов Xiaomi после авторизации. Он действует от 30 дней до 1 года (зависит от типа аккаунта) и используется для отправки команд устройству через облако. Без токена сторонние системы не могут:
- 📍 Управлять пылесосом по расписанию (например, через Home Assistant)
- 🔄 Получать статус (заряд, ошибки, карту уборки)
- 🛠️ Интегрироваться с голосовыми помощниками (Алиса, Google Assistant)
- 📊 Создавать автоматизации (например, запуск уборки при уходе из дома)
Официально Xiaomi разрешает управлять пылесосами только через своё приложение, но энтузиасты нашли обходные пути. Главная сложность — токен не хранится в открытом виде в памяти телефона. Его нужно либо перехватить при передаче, либо извлечь из зашифрованных данных приложения.
⚠️ Внимание: Некоторые методы (например, с использованием Packet Capture) могут вызвать подозрения в безопасности аккаунта. Если вы используете один аккаунт Mi Account для нескольких устройств, создайте отдельный аккаунт специально для пылесоса — это снизит риски блокировки.
Способ 1: Извлечение токена через Mi Home (без рута, для старых версий)
Этот метод работал до середины 2023 года и подходит для версий Mi Home 6.. и ниже. В новых версиях (7.0+) токен шифруется, поэтому способ может не сработать. Проверьте версию приложения в Настройки → О программе.
Инструкция:
- Установите на телефон Termux (или используйте
ADBс ПК). - Подключите телефон к ПК и выполните команду для дампа памяти Mi Home:
adb shell dumpsys package com.xiaomi.smarthome - В выводе найдите строку
token:— это и есть ваш токен. Если строки нет, переходите к следующему способу.
Если терминал возвращает ошибку permission denied, значит, на устройстве включена защита MIUI от чтения данных приложений. В этом случае поможет только рут или альтернативные методы.
Способ 2: Перехват токена через HTTP-прокси (MITM)
Этот метод работает на любых версиях Mi Home, но требует настройки прокси-сервера. Мы будем использовать Packet Capture (Android) или Fiddler (ПК) для перехвата трафика.
Пошаговая инструкция:
- Установите Packet Capture и включите
SSL-перехватв настройках. - Запустите запись трафика и откройте Mi Home.
- Перейдите в раздел с вашим пылесосом и дождитесь загрузки данных (5–10 секунд).
- Остановите запись и найдите в логах запросы к домену
api.io.mi.com. - В теле ответа ищите поле
"token": "..."— это и есть нужный токен.
| Инструмент | Плюсы | Минусы |
|---|---|---|
| Packet Capture (Android) | Не нужен ПК, работает на телефоне | Может не показать токен в новых версиях Mi Home |
| Fiddler (ПК) | Более надёжный перехват | Требует настройки сертификата на телефоне |
| Charles Proxy | Поддерживает расшифровку HTTPS | Платная лицензия после пробного периода |
⚠️ Внимание: При использовании прокси Xiaomi может заблокировать ваш аккаунт за "подозрительную активность". Чтобы уменьшить риски, не перехватывайте трафик дольше 2–3 минут и не используйте этот метод чаще 1 раза в месяц.
☑️ Подготовка к перехвату токена
Способ 3: Использование утилиты miio extractor (для ПК)
Если предыдущие методы не сработали, попробуйте специализированную утилиту miio extractor. Она анализирует трафик между телефоном и серверами Xiaomi, автоматически извлекая токены.
Алгоритм действий:
- Скачайте и установите miio extractor на ПК (требуется Python 3.8+).
- Подключите телефон к ПК по USB и включите
Отладку по USB(Настройки → О телефоне → Версия MIUI(нажмите 7 раз) →Дополнительно → Для разработчиков). - Запустите утилиту командой:
python miio_extractor.py - На телефоне откройте Mi Home и дождитесь, пока пылесос загрузит данные.
- Утилита автоматически выведет токен в консоль.
Преимущество этого метода — автоматизация: не нужно вручную искать токен в логах. Однако он требует навыков работы с командной строкой и может не сработать на последних версиях Mi Home (из-за изменённого протокола шифрования).
Способ 4: Получение токена через аккаунт Mi Account (облачный метод)
Этот способ не требует доступа к телефону, но подходит только если вы знаете логин/пароль от аккаунта Mi Account, привязанного к пылесосу. Мы будем использовать неофициальный API для извлечения токена.
Инструкция:
- Перейдите на сайт account.xiaomi.com и авторизуйтесь.
- Скопируйте
cookieиз браузера (используйте расширение EditThisCookie для Chrome). - Отправьте POST-запрос на
https://account.xiaomi.com/pass/serviceLoginAuth2с параметрами:{"user": "ваш_логин",
"hash": "md5_пароля",
"clientSign": "cookie_из_шага_2"
}
- В ответе будет поле
ssecurity— это временный токен, который можно конвертировать в постоянный через Python-скрипт.
Для автоматизации процесса используйте скрипт mi_token_extractor. Он преобразует временный токен в постоянный, пригодный для Home Assistant.
⚠️ Внимание: Этот метод нарушает пользовательское соглашение Xiaomi. Если вы используете его слишком часто, аккаунт может быть заблокирован за "несанкционированный доступ". Рекомендуем создавать резервные копии токена и обновлять его не чаще 1 раза в 2 месяца.
Способ 5: Извлечение токена с рут-правами (100% рабочий)
Если у вашего телефона есть рут-доступ, токен можно извлечь напрямую из базы данных Mi Home. Этот метод работает на всех версиях приложения, включая последние.
Пошаговая инструкция:
- Установите Root Browser или любой другой файловый менеджер с поддержкой рута.
- Перейдите по пути:
/data/data/com.xiaomi.smarthome/databases - Скопируйте файл
miio_device.dbна ПК. - Откройте его с помощью DB Browser for SQLite.
- В таблице
devicesнайдите строку с вашим пылесосом — токен будет в колонкеtoken.
Если колонки token нет, значит, данные зашифрованы. В этом случае используйте скрипт mihome_decrypt, который расшифровывает базу с учетом ключа устройства.
Что делать, если токен не найден в базе?
Если в таблице devices нет токена, проверьте таблицу miio_devices или device_record. В новых версиях Mi Home токен может храниться в зашифрованном виде в колонке extra. Для расшифровки потребуется ключ, который можно извлечь из /data/data/com.xiaomi.smarthome/shared_prefs/miio_prefs.xml (параметр device_key).
Как проверить работоспособность токена
Перед тем как использовать токен в сторонних системах, проверьте его валидность. Для этого:
- Установите DeCONZ или Home Assistant.
- Добавьте пылесос как устройство Xiaomi Miio, введя IP-адрес и токен.
- Если соединение установлено — токен действующий. Если возникает ошибка
Invalid token, повторите процедуру извлечения.
Также можно проверить токен через Python:
from miio import Vacuum
vacuum = Vacuum(ip="192.168.1.100", token="YOUR_TOKEN")
print(vacuum.status())
Если скрипт возвращает данные о пылесосе (заряд, статус) — токен корректен. Ошибка miio.exceptions.AuthenticationError означает, что токен неверный или просрочен.
Частые ошибки и их решения
При извлечении токена пользователи сталкиваются с типичными проблемами. Вот самые распространённые и способы их решения:
| Ошибка | Причина | Решение |
|---|---|---|
Token not found в логах |
Новая версия Mi Home шифрует трафик | Используйте miio extractor или рут-метод |
| Аккаунт заблокирован после извлечения | Слишком частые запросы к API | Напишите в поддержку Xiaomi с объяснением ("тестировал интеграцию") |
| Токен работает 1–2 дня, затем перестаёт | Временный токен (не постоянный) | Используйте скрипт для конвертации в постоянный |
Unable to connect to vacuum |
Пылесос и телефон в разных сетях | Подключите оба устройства к одной Wi-Fi |
Если ни один из методов не сработал, проверьте:
- 🔌 Подключен ли пылесос к той же сети Wi-Fi, что и телефон.
- 📱 Обновлено ли приложение Mi Home до последней версии (иногда откат помогает).
- 🔒 Не включена ли двухфакторная аутентификация в аккаунте Mi Account.
- 🛡️ Не блокирует ли антивирус/фаервол трафик (отключите их на время извлечения).
FAQ: Ответы на популярные вопросы
Можно ли получить токен без root и ПК?
Да, но только на старых версиях Mi Home (до 6.x) через ADB или Packet Capture. В новых версиях без рута или прокси обойти защиту невозможно.
Как часто нужно обновлять токен?
Стандартный срок действия — 90 дней, но некоторые токены работают до года. Если пылесос перестал отвечать на команды, первым делом обновите токен.
Будет ли работать токен после сброса пылесоса?
Нет. Сброс к заводским настройкам аннулирует текущий токен. После сброса нужно заново привязать пылесос к аккаунту и извлечь новый токен.
Можно ли использовать один токен для нескольких пылесосов?
Нет. Каждый пылесос имеет уникальный токен, даже если они привязаны к одному аккаунту Mi Account.
Что делать, если Xiaomi заблокировал аккаунт после извлечения токена?
Напишите в поддержку на английском с текстом: "My account was blocked after testing Mi Home API integration. Please unblock it as I’m the legitimate owner." Обычно разблокировка занимает 1–3 дня.