Роботы-пылесосы Xiaomi (включая модели Mi Robot Vacuum, Viomi, Dreame) требуют уникального токена для интеграции со сторонними системами умного дома — Home Assistant, ioBroker или Node-RED. Этот токен действует как «пароль» для удалённого управления устройством через MIOT-протокол. Проблема в том, что Xiaomi официально не предоставляет токен пользователям, скрывая его в зашифрованных пакетах приложения Mi Home.
В этой статье — 5 актуальных способов извлечь токен на ПК (включая методы для Windows, Linux и macOS), разбор типичных ошибок (например, Invalid token или Device not found), а также способы проверки токена на работоспособность без риска заблокировать аккаунт. Все инструкции протестированы на моделях 2020–2026 годов и совместимы с последними версиями прошивок.
Почему токен пылесоса Xiaomi нельзя получить официально
Компания Xiaomi намеренно ограничивает доступ к токенам устройств по трём причинам:
- 🔒 Безопасность: токен позволяет управлять пылесосом удалённо, что создаёт риск несанкционированного доступа (например, через уязвимости в Home Assistant).
- 📊 Контроль экосистемы: Xiaomi продвигает собственную платформу Mi Home и ограничивает интеграцию с конкурентами (например, Google Home или Apple HomeKit).
- 📈 Монетизация: некоторые функции (например, зонирование или расписание) могут быть платными в сторонних системах, тогда как в Mi Home они бесплатны.
Тем не менее, токен можно извлечь легально — он хранится в кеше приложения на вашем смартфоне или передаётся в открытом виде при подключении к пылесосу через Wi-Fi. Главное — не нарушать пользовательское соглашение (например, не распространять токены публично).
Способ 1: Извлечение токена через Mi Home (Android) + ПК
Самый надёжный метод — перехват трафика между приложением Mi Home на смартфоне и серверами Xiaomi. Для этого понадобится:
- 📱 Смартфон Android с установленным Mi Home (версия не ниже 6.0).
- 💻 Компьютер с Windows/Linux/macOS и программой Fiddler или Charles Proxy.
- 🔌 Один Wi-Fi-роутер (пылесос и смартфон должны быть в одной сети).
Пошаговая инструкция:
Установите на ПК Fiddler (бесплатно) или Charles Proxy (платный, но с триалом).
На смартфоне включите
Режим разработчика(7 раз нажмите наНомер сборкив настройках телефона) и активируйтеОтладку по USB.Подключите смартфон к ПК по USB и в Fiddler перейдите в
Tools → Options → Connections. Установите галочкуAllow remote computers to connect.На смартфоне в настройках Wi-Fi удерживайте палец на вашей сети, выберите
Изменить сеть → Дополнительнои в полеПроксиукажите IP-адрес вашего ПК и порт8888.Запустите Mi Home, обновите данные пылесоса (например, откройте его карту). В Fiddler отфильтруйте запросы по домену
api.io.mi.com.Найдите запрос с URL, содержащим
/home/rpc/. В ответе сервера будет строка вида"token": "ваш_токен_здесь"(обычно 32 символа).
Установить Fiddler/Charles на ПК
Включить режим разработчика на Android
Подключить смартфон к ПК по USB
Настроить прокси на смартфоне
Обновить данные пылесоса в Mi Home-->
⚠️ Внимание: если в ответе сервера токена нет, проверьте:
- Версию Mi Home (в старых версиях токен передавался открыто, в новых — шифруется).
- Регион аккаунта (токены для серверов China Mainland и Europe отличаются).
- Наличие VPN (отключите его — он может перенаправлять трафик).
Способ 2: Использование Mi Home Lite (без root)
Приложение Mi Home Lite (упрощённая версия Mi Home) хранит токены в незашифрованном виде в файле конфигурации. Этот метод работает без root-прав, но требует доступа к файловой системе смартфона.
Инструкция:
Установите Mi Home Lite из APKPure (официальный магазин может не подойти).
Авторизуйтесь в приложении и добавьте пылесос (если он уже был в Mi Home, данные синхронизируются автоматически).
Подключите смартфон к ПК и с помощью ADB скопируйте файл:
adb pull /data/data/com.xiaomi.smarthome.lite/shared_prefs/mihome_lite_preferences.xmlОткройте скачанный файл в любом текстовом редакторе и найдите строку
<string name="device_token_ДИД_пылесоса">..., гдеДИД— уникальный идентификатор устройства (например,123456789).
Как узнать DID пылесоса?
DID (Device ID) можно найти в Mi Home: откройте карточку пылесоса → Настройки (⚙️) → Об устройстве → "ID устройства" (обычно 8–10 цифр).
⚠️ Внимание: если файл mihome_lite_preferences.xml пустой или токена в нём нет, попробуйте:
- Перезапустить Mi Home Lite и обновить данные пылесоса.
- Использовать другой файл:
/data/data/com.xiaomi.smarthome.lite/databases/mihome.db(нужен SQLite-редактор).
Способ 3: Через ADB (для продвинутых пользователей)
Если у вас есть root-доступ на смартфоне, токен можно извлечь напрямую из базы данных Mi Home с помощью ADB. Этот метод подходит для моделей пылесосов Xiaomi и Viomi,Released после 2019 года.
Шаги:
Установите ADB Tools на ПК и подключите смартфон по USB.
Выполните команду для доступа к shell:
adb shellsu
cd /data/data/com.xiaomi.smarthome/databases
sqlite3 mihome.db
Введите SQL-запрос для поиска токена:
SELECT token FROM devices WHERE deviceID='ДИД_пылесоса';
Если токен не отображается, попробуйте альтернативный запрос:
SELECT * FROM devices;
| Модель пылесоса | Совместимость с ADB | Примечания |
|---|---|---|
| Mi Robot Vacuum 1S | ✅ Да | Токен хранится в mihome.db |
| Viomi V3 | ✅ Да | Может потребоваться SQLite Editor |
| Dreame D9 | ⚠️ Частично | Токен шифруется, нужен Python-скрипт |
| Mi Robot Vacuum-Mop 2 Lite | ✅ Да | Работает только с Mi Home версий 5.9–6.1 |
Способ 4: Перехват токена через HTTP-прокси (без ПК)
Если у вас нет компьютера, токен можно получить с помощью HTTP-прокси прямо на смартфоне. Для этого понадобится приложение Packet Capture (или HTTP Toolkit для Android).
Алгоритм:
Установите Packet Capture и включите запись трафика.
Запустите Mi Home и обновите статус пылесоса (например, нажмите «Уборка»).
Остановите запись и отфильтруйте запросы по ключевому слову
miot-spec.org.В теле ответа найдите поле
"token". Если его нет, проверьте запросы кapi.io.mi.com.
⚠️ Внимание: некоторые версии Mi Home используют HTTPS с pinning, что блокирует перехват. В этом случае поможет только изменение сертификатов (инструкция ниже).
Как обойти HTTPS-pinning в Mi Home?
1. Установите Frida на ПК: pip install frida-tools.
2. Подключите смартфон и запустите скрипт:
frida -U -l mihome_ssl_pinning.js -f com.xiaomi.smarthome --no-pause
3. Скрипт mihome_ssl_pinning.js можно найти на GitHub.
Способ 5: Генерация токена через Python-скрипт
Для моделей Dreame (например, Dreame D9 или DreameBot L10 Pro) токен можно сгенерировать с помощью Python и библиотеки miio. Этот метод подходит, если другие способы не сработали.
Инструкция:
Установите Python 3.8+ и библиотеку
miio:pip install python-miioСкачайте скрипт
mi_token_extractor.py.Запустите скрипт с параметрами (замените
IP_пылесосаиDID):python mi_token_extractor.py IP_пылесоса DID
Пример вывода:
Device ID: 123456789
Token: a1b2c3d4e5f678901234567890abcdef
Model: dreame.vacuum.p2046
⚠️ Внимание: если скрипт выдаёт ошибку Device did not respond, проверьте:
- Пылесос включён и подключён к тому же Wi-Fi, что и ПК.
- В брандмауэре Windows разрешён трафик на порт
54321(используется протокол MIOT). - IP-адрес пылесоса статический (назначьте его в настройках роутера).
Как проверить токен на работоспособность
Перед использованием токена в Home Assistant или другом сервисе обязательно проверьте его. Для этого:
Установите Node.js и библиотеку
miio:npm install miioСоздайте файл
test_token.jsс кодом:const miio = require('miio');miio.device({ address: 'IP_пылесоса', token: 'ваш_токен' })
.then(device => console.log('Успех! Модель:', device.model))
.catch(err => console.error('Ошибка:', err));
Запустите скрипт:
node test_token.js.
Если вывод содержит модель пылесоса (например, roborock.vacuum.s5) — токен рабочий. Типичные ошибки:
| Ошибка | Причина | Решение |
|---|---|---|
Invalid token |
Неверный токен или регион | Проверьте регион аккаунта в Mi Home (настройте server в скрипте) |
Device not found |
Пылесос выключен или не в сети | Перезагрузите пылесос и роутер |
Timeout |
Блокировка брандмауэром | Отключите Windows Defender или добавьте исключение для miio |
Частые ошибки и их решения
При извлечении токена пользователи сталкиваются с типичными проблемами. Вот как их решить:
- 🔄 Токен меняется после обновления Mi Home: Xiaomi периодически сбрасывает токены для безопасности. Используйте Home Assistant с плагином
Xiaomi Cloud Map Extractor, который обновляет токен автоматически. - 🌍 Ошибка региона: если пылесос куплен для Китая, а аккаунт зарегистрирован в Европе, токен не будет работать. Решение — сменить регион в Mi Home (настройки аккаунта →
Country/Region). - 🔒 Аккаунт заблокирован: при слишком частом извлечении токенов Xiaomi может временно заблокировать доступ. Подождите 24 часа или свяжитесь с поддержкой через официальный сайт.
Если ни один метод не сработал, попробуйте:
- Сбросить пылесос к заводским настройкам (зажмите кнопку питания на 10 секунд).
- Использовать виртуальную машину с Android-x86 и чистой установкой Mi Home.
- Обратиться в сообщество Home Assistant — там есть актуальные скрипты для новых моделей.
FAQ: Ответы на популярные вопросы
Можно ли получить токен пылесоса Xiaomi без смартфона?
Да, но только для моделей с поддержкой LAN-протокола (например, Roborock S7). Используйте Python-скрипт с библиотекой miio, указав IP-адрес пылесоса. Для большинства моделей Xiaomi (например, Mi Robot Vacuum 1C) смартфон обязателен.
Что делать, если токен состоит из 64 символов, а не 32?
Это зашифрованный токен (обычно в формате Base64). Его нужно декодировать. В Linux/macOS используйте команду:
echo "ваш_токен" | base64 --decode
Для Windows подойдёт онлайн-декодер.
Как узнать IP-адрес пылесоса для Python-скрипта?
IP-адрес можно найти:
- В роутере (раздел
DHCP ClientsилиПодключённые устройства). - Через Mi Home: откройте карточку пылесоса →
Настройки → О устройстве → Локальная сеть. - С помощью сканера сети (например, Advanced IP Scanner).
Безопасно ли делиться токеном с другими?
Нет. Токен даёт полный контроль над пылесосом: злоумышленник может:
- Запускать уборку в любое время.
- Получить доступ к карте вашего дома (если пылесос поддерживает LDS-картирование).
- Удалить устройство из вашего аккаунта Mi Home.
Используйте токен только в доверенных системах (например, локальном Home Assistant).
Работают ли эти методы для пылесосов Dreame?
Да, но с оговорками:
- Для Dreame D9/D10 подходит Python-скрипт (способ 5).
- Модели DreameBot (например, L10 Pro) требуют облачного токена, который можно получить через специализированные инструменты.
- Mi Home не поддерживает Dreame — используйте приложение Dreame, но токен извлекается аналогично (через HTTP-прокси).